domingo, 1 de agosto de 2010

Videos sobre la exposición: Administración del Procesador

Debido a que no se podia cargar el video entero en youtube, el video se ah dividido en 3 partes.










sábado, 17 de julio de 2010

Tecnologia 4G

Si se comparara los dispositivos electronico de ahora con los de antes, los de ahora parecieran como si fueran imposibles de crear, y es la verdad y todavia falta mas, la tecnologia 4G no es mas que acceso a la red en fracciones de segundos super minimas, tanto es el ejemplo que podrias estar viendo un juego de pelota, descargando musica y todo seguiria normal en el movil.

Para saber como trabja 4G, la respuesta es simple OFDM (la multiplexación de división de frecuencia ortogonal.) Traducción: la señal es dividida en corrientes de datos paralelas transfirió subcanales de radio situados juntos, para ser vuelto a montar en el otro extremo. El acercamiento ya es usado en las ciertas clases de WiMAX y sistemas Wi-Fi, que le dejan conectarse a la red en lugares publicos a una velocidad razonable.

¿Qué tan rápido es 4G? Por lo general la velocidad máxima es como 100 megabits por segundo downstream y 50 megabytees por segundo upstream. Por la comparación, una señal de HDTV consume aproximadamente 25 megabits por segundo.

Pero 100 megabits y 50 megabits por segundo son números puramente teóricos, advierte Fred Campbell, presidente de la Asociación de Comunicaciones Inalámbrica Internacional (WCAI) en Washington DC. " En el verdadero mundo usted no alcanza velocidades máximas, porque en el verdadero mundo usted tiene árboles y edificios y se distancia la atenuación y receptores móviles y limitaciones de amplitud de banda, ".

Lo cierte es que se dice que al menos en Estado Unidos se vendria introduciendo de lleno la tecnologia 4G a finales de este año y a comienzos del proximo, cuando esto pase habra acceso a la red a una velocidad que habra que usarla para saber como se siente.

(Nota: uno de los unicos celulares con 4G hasta ahora es el HTC Android de Sprint)




Sustraido del texto de Lamont Wood de Tech News Daily
http://www.technewsdaily.com/how-4g-works-100128-0121/

ALGUNOS DE LOS PRINCIPALES SISTEMAS OPERATIVOS

Mac OS

Mac OS es el nombre del sistema operativo creado por Apple para su línea de computadoras Macintosh. Es conocido por haber sido el primer sistema dirigido al gran público en contar con una interfaz gráfica compuesta por la interacción del mouse con ventanas, Icono y menús.

Apple quitó importancia de forma deliberada a la existencia del sistema operativo en los primeros años de su línea Macintosh procurando que la máquina resultara más agradable al usuario, diferenciándolo de otros sistemas contemporáneos, como MS-DOS, que eran un desafío técnico. El equipo de desarrollo del Mac OS original incluía a Bill Atkinson, Jef Raskin y Andy Hertzfeld.

Esta fue la base del Mac OS clásico, desarrollado íntegramente por Apple, cuya primera versión vio la luz en 1984. Su desarrollo se extendería en un modelo progresivo hasta la versión 9 del sistema, lanzada en 1999. A partir de Mac OS X, el sistema es un derivado de Unix que mantiene en su interfaz gráfica muchos elementos de las versiones anteriores.

Hay una gran variedad de puntos de vista sobre cómo fue desarrollado el Mac OS original y dónde se originaron las ideas subyacentes. Mientras la conexión entre el proyecto Macintosh y el proyecto Alto de Xerox PARC ha sido establecido por documentos históricos, las contribuciones iniciales del Sketchpad de Ivan Sutherland y el On-Line System de Doug Engelbart también fueron significativa.

Microsoft Windows

Es una serie de sistemas operativos desarrollados por Microsoft desde 1981, año en que el proyecto se denominaba "Interface Manager".

Anunciado en 1983, Microsoft comercializó por primera vez el entorno operativo denominado Windows en noviembre de 1985 como complemento para MS-DOS, en respuesta al creciente interés del mercado en una interfaz gráfica de usuario (GUI). Microsoft Windows llegó a dominar el mercado de ordenadores personales del mundo, superando a Mac OS, el cual había sido introducido previamente a Windows. En octubre de 2009, Windows tenía aproximadamente el 91% de la cuota de mercado de sistemas operativos en equipos cliente que acceden a Internet. La versiones más recientes de Windows son Windows 7 para equipos de escritorio, Windows Server 2008 R2 para servidores y Windows Mobile 6.5 para dispositivo móviles.

GNU/Linux

GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a Unix denominado Linux, que es usado con herramientas de sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU) y otra serie de licencias libres.

A pesar de que Linux (núcleo) es, en sentido estricto, el sistema operativo, parte fundamental de la interacción entre el núcleo y el usuario (o los programas de aplicación) se maneja usualmente con las herramientas del proyecto GNU o de otros proyectos como GNOME. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos.

Unix

Unix (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy.

Hasta 2009, el propietario de la marca UNIX® fue The Open Group, un consorcio de normalización industrial. A partir de marzo de 2010 y tras una larga batalla legal, esta ha pasado nuevamente a ser propiedad de Novell, Inc. Sólo los sistemas totalmente compatibles y que se encuentran certificados por la especificación Single UNIX Specification pueden ser denominados "UNIX®" (otros reciben la denominación "similar a un sistema Unix" o "similar a Unix"). En ocasiones, suele usarse el término "Unix tradicional" para referirse a Unix o a un sistema operativo que cuenta con las características de UNIX Versión 7 o UNIX System V.

Ubuntu

Ubuntu es una distribución Linux basada en Debian GNU/Linux que proporciona un sistema operativo actualizado y estable para el usuario medio, con un fuerte enfoque en la facilidad de uso y de instalación del sistema. Al igual que otras distribuciones se compone de múltiples paquetes de software normalmente distribuidos bajo una licencia libre o de código abierto.

Está patrocinado por Canonical Ltd., una compañía británica propiedad del empresario sudafricano Mark Shuttleworth que en vez de vender la distribución con fines lucrativos, se financia por medio de servicios vinculados al sistema operativo y vendiendo soporte técnico. Además, al mantenerlo libre y gratuito, la empresa es capaz de aprovechar los desarrolladores de la comunidad en mejorar los componentes de su sistema operativo. Canonical también apoya y proporciona soporte para cuatro derivaciones de Ubuntu: Kubuntu, Xubuntu, Edubuntu y la versión de Ubuntu orientada a servidores ("Ubuntu Server Edition").

Cada seis meses se publica una nueva versión de Ubuntu la cual recibe soporte por parte de Canonical, durante dieciocho meses, por medio de actualizaciones de seguridad, parches para bugs críticos y actualizaciones menores de programas. Las versiones LTS (Long Term Support), que se liberan cada dos años, reciben soporte durante tres años en los sistemas de escritorio y cinco para la edición orientada a servidores.

SISTEMAS DE ARCHIVOS

(File System). En computación, un sistema de archivos es un método para el almacenamiento y organización de archivos de computadora y los datos que estos contienen, para hacer más fácil la tarea encontrarlos y accederlos. Los sistemas de archivos son usados en dispositivos de almacenamiento como discos duros y CD-ROM e involucran el mantenimiento de la localización física de los archivos.

Más formalmente, un sistema de archivos es un conjunto de tipo de datos abstractos que son implementados para el almacenamiento, la organización jerárquica, la manipulación, el acceso, el direccionamiento y la recuperación de datos. Los sistemas de archivos comparten mucho en común con la tecnología de las bases de datos.

En general, los sistemas operativos tienen su propio sistema de archivos. En ellos, los sistemas de archivos pueden ser representados de forma textual (ej.: el shell de DOS) o gráficamente (ej.: Explorador de archivos en Windows) utilizando un gestor de archivos.

El software del sistema de archivos se encarga de organizar los archivos (que suelen estar segmentados físicamente en pequeños bloques de pocos bytes) y directorios, manteniendo un registro de qué bloques pertenecen a qué archivos, qué bloques no se han utilizado y las direcciones físicas de cada bloque.

Los sistemas de archivos pueden ser clasificados en tres categorías: sistemas de archivo de disco, sistemas de archivos de red y sistemas de archivos de propósito especial.

Ejemplos de sistemas de archivos son: FAT, UMSDOS, NTFS, UDF, ext2, ext3, ext4, ReiserFS, XFS, etc.

martes, 6 de julio de 2010

MAS INFO. *

Sección crítica

Se denomina sección crítica, en programación concurrente, a la porción de código de un programa de computador en la cual se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un hilo en ejecución. La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período determinado de tiempo para entrar. Se necesita un mecanismo de sincronización en la entrada y salida de la sección crítica para asegurar la utilización en exclusiva del recurso, por ejemplo un semáforo.

Sincronización y Comunicación entre procesos

La comunicación entre procesos: necesaria si se desea que varios procesos puedan colaborar para realizar una misma tarea. Sincronización funcionamiento coordinado en la resolución de una tarea encomendada.

El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes. Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas transferidas para su labor coordinada.
Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados. Es decir, la comunicación es algo puntual.

Código abierto (Open Source)

Código abierto es el término con el que se conoce al software distribuido y desarrollado libremente. El código abierto tiene un punto de vista más orientado a los beneficios prácticos de compartir el código que a las cuestiones morales y/o filosóficas las cuales destacan en el llamado software libre.

Su uso nació por primera vez en 1998 de la mano de algunos usuarios de la comunidad del software libre, tratando de usarlo como reemplazo al ambiguo nombre original en inglés del software libre (free software). Free en inglés significa dos cosas distintas dependiendo del contexto: gratuidad y libertad. Lo cual implica, para el caso que nos ocupa, "software que podemos leer, modificar y redistribuir gratuitamente" (software gratuito) y, además, software libre, según la acepción española de libertad.

Sobre BSC (Centro Nacional de Supercomputación)

A principios de 2004 el Ministerio de educación y ciencias (el Gobierno español), Generalitat de Catalunya (el Gobierno local catalán) y la Universidad Técnica de Cataluña (UPC) tomó la iniciativa de crear un Centro de Supercomputing Nacional en Barcelona. BSC-CNS (Barcelona Supercomputing el Centro - Centro Nacional de Supercomputación) es la Facilidad Nacional Supercomputing en España y oficialmente fue constituido en abril de 2005.

BSC-CNS maneja MareNostrum, uno de los superordenadores más poderosos en Europa, localizada en el Torre Girona la capilla. La misión de BSC-CNS es de investigar, desarrollar y manejar la tecnología de la información para facilitar el progreso científico. Con este objetivo, la dedicación especial ha sido aficionada áreas como Ciencias Computacionales, Ciencias de Vida y Tierra Ciencias.

Todas estas actividades son complementarias el uno al otro y muy fuerte relacionadas. De este modo, un lazo multidisciplinar es instalado: nuestra exposición a industrial y prácticas de académico de ciencia de no ordenador mejora nuestra comprensión de las necesidades y nos ayuda enfocando nuestra investigación fundamental hacia el mejoramiento de aquellas prácticas.

El resultado es muy positivo ambos para nuestro trabajo de investigación así como para mejorar el modo que atendemos nuestra sociedad.

sábado, 3 de julio de 2010

INTERBLOQUEOS

Definiciones Previas

Cuando un proceso de un sistema de multiprogramación espera en balde a que se presente un evento específico, se dice que se encuentra en un estado de interbloqueo o bloqueo mutuo. Los procesos que pueden encontrase en esta situación pueden ser uno o varios.
En los sistemas de multiprogramación, compartir recursos es uno de los principales objetivos del sistema operativo. Cuando se comparten recursos entre una población de usuarios o procesos, cada uno de los cuales mantiene un control exclusivo sobre ciertos recursos asignados a él, es posible que se produzcan bloqueos mutuos que impedirán la terminación de algunos de los procesos del sistema.

Un problema Al fin: el aplazamiento indefinido

En cualquier sistema que mantenga los procesos en espera mientras se les asigna un recurso o se toman decisiones de planificación, la programación de un proceso puede postergarse indefinidamente mientras otro recibe la atención del sistema. Tal situación se conoce con varios nombres, entre los que se incluyen aplazamiento indefinido, bloqueo indefinido e inanición, y puede resultar tan peligrosa como el interbloqueo.

Casos de Interbloqueos

El caso más simple de interbloqueo sería el de un sólo proceso que espera la ocurrencia de un evento y, sin embargo, el sistema no incluye la posibilidad de señalar dicha ocurrencia. Es muy difícil detectar los bloqueos mutuos de esta naturaleza. La mayor parte de los bloqueos mutuos implican una competencia entre varios procesos por varios recursos.

Condiciones Necesarias para Producir un Interbloqueo

Coffman, Elphick y Shoshani establecen que deben darse las siguientes cuatro condiciones necesarias para que ocurra un bloqueo mutuo.

• Condición de exclusión mutua : los procesos exigen un control exclusivo de los recursos que necesitan.

• Condición de espera : los procesos mantienen la posesión de los recursos ya asignados a ellos mientras esperan recursos adicionales.

• Condición de no apropiación : los recursos no pueden arrebatarse a los procesos a los cuales están asignados hasta que termine su utilización.

• Condición de espera circular : existe una cadena circular de procesos en la que cada proceso tiene uno o más recursos que son requeridos por el siguiente proceso en la cadena.

Como dichas condiciones son necesarias para que se presente un interbloqueo, la existencia de un bloqueo mutuo implica que se han dado todas y cada una de las cuatro condiciones. Como se verá más adelante, tener en mente semejante observación será de gran ayuda para desarrollar esquemas que eviten los interbloqueos.

Estrategias para Resolver Interbloqueos

Los resultados de la investigación sobre el bloqueo mutuo han sido satisfactorios en cuanto a que se han encontrado métodos limpios y rápidos para manejar la mayoría de los problemas más comunes. Existen cuatro áreas de interés relacionadas con los interbloqueos que pueden resumirse como prevención, técnicas para evitarlos, detección y recuperación de los mismos.

Prevención de Interbloqueos

La estrategia empleada con más frecuencia por los diseñadores para tratar el bloqueo mutuo es la prevención. En esta sección se examinan los métodos de prevención, junto con los efectos que tienen sobre los usuarios y los sistemas, sobre todo desde la perspectiva del rendimiento. Havender llegó a la conclusión de que si falta alguna de las cuatro condiciones necesarias no puede haber un interbloqueo. Este autor sugiere las siguientes estrategias para negar varias de esas condiciones :

• Cada proceso deberá pedir todos sus recursos al mismo tiempo y no podrá seguir la ejecución hasta haberlos recibido todos.

• Si a un proceso que tiene recursos se le niegan los demás, ese proceso deberá liberar sus recursos y, en caso necesario, pedirlos de nuevo junto con los recursos adicionales.

• Se impondrá un ordenamiento lineal de los tipos de recursos en todos los procesos ; es decir, si a un proceso le han sido asignados recursos de un tipo específico, en lo sucesivo sólo podrá pedir aquellos recursos que siguen en el ordenamiento.

Evitación de Interbloqueos

Aún presentándose las condiciones para un interbloqueo, todavía es posible evitarlo mediante una asignación cuidadosa de los recursos. Tal vez el algoritmo más famoso para evitar el interbloqueo sea el algoritmo del banquero de Dijkstra, cuyo interesante nombre se debe a que atañe a un banquero que otorga préstamos y recibe pagos a partir de una determinada fuente de capital.

Detección y Recuperación de Interbloqueos

La detección del bloqueo mutuo es el proceso de determinar si realmente existe un interbloqueo e identificar los procesos y recursos implicados en él. Los algoritmos de detección determinan por lo general si existe una espera circular.
El empleo de algoritmos de detección del interbloqueo implica cierto gasto extra durante la ejecución. Así pues, se presenta de nuevo la cuestión de costeabilidad, tan habitual en los sistemas operativos, ¿el gasto extra debido a los algoritmos de detección del bloqueo mutuo se justifica con los ahorros potenciales debidos a la localización y solución de los interbloqueos?

MEMORIA

La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.

Para poder lograrlo, la operación principal que realiza es la de trasladar la información que deberá ser ejecutada por el procesador, a la memoria principal. Actualmente esta administración se conoce como Memoria Virtual ya que no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensa teniendo la misma memoria real, con lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.

Las técnicas que existen para la carga de programas en la memoria son: partición fija, que es la división de la memoria libre en varias partes (de igual o distinto tamaño) y la partición dinámica, que son las particiones de la memoria en tamaños que pueden ser variables, según la cantidad de memoria que necesita cada proceso.

Entre las principales operaciones que desarrolla la administración de memoria se encuentran la reubicación, que consiste en trasladar procesos activos dentro y fuera e la memoria principal para maximizar la utilización del procesador; la protección, mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; uso compartido de códigos y datos, con lo que el mecanismo de protección permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en común.

SINCRONIZACIÓN ENTRE PROCESOS

Un proceso es cooperativo si puede afectar o ser afectado por los otros procesos que se están ejecutando en el sistema.

La cooperación entre procesos requiere: la ejecución concurrente de los mismos, mecanismos de comunicación y mecanismos de sincronización. Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia de los datos.

Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedará con valores incorrectos. Para resolver problemas como este se ideó la sección crítica, que es el segmento de código que accede a los recursos. Sólo puede haber una sección crítica en ejecución por vez, así nos aseguramos que los datos quedan consistentes.

La sección crítica

El problema de la seción crítica consiste en diseñar un protocolo que los procesos puedan usar para cooperar de esta forma. Cualquier solución al problema de la sección crítica deberá satisfacer los tres requisitos siguiente:

• Exclusión mutua.- Si el proceso Pi está ejecutándose en su sección crítica, los demás procesos no pueden estar ejecutando sus secciones críticas.

• Progreso.- Si ningún proceso está ejecutando su sección crítica, y algunos procesos desean entrar en sus correspondientes secciones críticas, sólo aquellos procesos que no estén ejecutando sus secciones restantes pueden participar en la decisión de cuál será el siguiente que entre en su sección crítica, y esta selección no se puede posponer indefinidamente.

• Espera limitada.- Existe un límite en el número de veces que se permite que otros procesos entren en sus secciones críticas después de que un proceso haya hecho una solicitud para entrar en su sección crítica y antes de que la misma haya sido concedida.

Se usan dos métodos generales para gestionar las secciones críticas en los sistemas operativos:

1. Kernels apropiativos.- Permite que un proceso sea desalojado mientras se está ejecutando en modo kernel.

2. Kernels no apropiativos.- No apropiativo no permite que un proceso que se esté ejecutando en modo kernel sea desalojado.

Hardware de sincronización

En sistemas de un procesador, el problema de las secciones críticas podría ser resuelto simplemente si pudiéramos deshabilitar las interrupciones mientras una variable compartida está siendo actualizada.

Esta solución no es factible para un sistema con varios procesadores debido a la demora que implica el pasaje de mensajes.

En muchos sistemas existen instrucciones de hardware que pueden ser usadas para resolver el problema de las secciones críticas.

Estas instrucciones permiten ejecutar atómicamente las operaciones de:

• chequear y modificar el contenido de una palabra, o

• intercambiar el contenido de dos palabras

Semáforos

Las soluciones por hardware presentadas no son fáciles de generalizar a problemas más complejos.

Esta dificultad se puede superar usando una herramienta de sincronización llamada semáforo.

Un semáforo S es una variable entera que solo es accedida a través de dos operaciones atómicas: wait y signal.

wait(S): while S <= 0 do no-op

S := S - 1;

signal(S): S := S +1;

Problemas clásicos de sincronización

Buffer finito

Lectores y escritores

Filósofos comensales

Buffer finito

Buffer de tamaño N

Semáforo mutex inicializado en 1

Semáforo full inicializado en 0

Semáforo empty inicializado en N

Lectores y escritores

Una zona de memoria es compartida por varios procesos concurrentes

Lectores – sólo lee datos; no efectúan actualizaciones de datos

Escritores – puede leer y escribir

Problema – permitir a múltiples lectores leer simultáneamente; sólo un escritor puede acceder a
los datos en forma simultánea.

Recursos Compartidos

Datos

Semáforo mutex inicializado en 1.

Semáforo wrt inicializado en 1.

Entero readcount inicializado en 0.

Problema de los Lectores

3 variantes:

(1) Los lectores tienen prioridad
Muerte por inanición de los escritores

(2) Los escritores tienen prioridad
Muerte por inanición de los lectores

(3) Lectores y Escritores tienen la misma Prioridad
No hay problemas de inanición

El problema de los filósofos comensales

Recursos compartidos

Fuente de arroz (datos)

Semáforos chopstick [5] inicializados en 1

Monitores

Son mecanismos de sincronización de nivel más alto que semáforos. La construcción se realiza a nivel de lenguaje de programación que controla el acceso a datos compartidos.

Un tipo monitor tiene un conjunto de operaciones definidas por el programador que gozan de la característica de exclusión mutua dentro del monitor.
2009 Rodriguez Time - Powered by Blogger
Blogger Templates by Deluxe Templates
Wordpress theme by Dirty Blue