domingo, 25 de noviembre de 2012

5.4 Sistemas distribuidos y la sociedad


El impacto en los sistemas de información y telecomunicación ya es, y será, muy importante. Éstas son algunas de las características y tendencias que marcan estos cambios en la sociedad.

La idea de comunicar e intercambiar dinámicamente servicios e información dio origen a los sistemas distribuidos. Esta noción indica que las necesidades de un mundo real, los servicios deben adherirse o quitarse según sean requeridos. Los sistemas distribuidos permiten la existencia de una multiplicidad de estaciones de trabajo, las cuales ofrecen los recursos a los usuarios mediante un modelo de red.

El usuario (sociedad) no sabe concretamente la maquina que ofrece servicio ni su dirección o ubicación geográfica; únicamente conoce su nombre o identificador y en muchos caso ni siquiera este ultimo.

El objetivo es accesar aun recurso a distancia como seria en una aplicación local sin conectarse en ningún caso con la maquina propietaria.

5.3 Tendencias de investigación


Las razones para construir sistemas distribuidos son las siguientes:
Computación más rápida: si un cálculo dado se puede subdividir en varios subcalculos susceptibles de ejecución concurrente, un sistema distribuido podría permitirlo distribuir el cálculo entre los distintos sitios, y ejecutándolo de forma concurrente.
Confiabilidad: si en un sitio de un sistema distribuido falla, los sitios restantes podrían seguir funcionando.
Comunicación: hay muchos casos en los que los programas necesitan intercambiar datos con otros programas del mismo sistema Si muchos sitios están conectados a través de una red de comunicaciones, los procesos de diferentes sitios tienen la oportunidad de intercambiar información. Los usuarios podrían iniciar transferencia de archivo o comunicarse entre sí por correo electrónico.

5.2 Estándares de administación en sistemas distribuidos


Los estándares son aquellas normas usuales, los propósitos, los objetivos, a alcanzar, las metas a alcanzar y aquellos índices que integran los planes, y todo dato o cifra que pueda emplearse como medida para cumplirlas, son considerados como estándares.

Estas medidas son indispensables para el control, ya que indican la manera en que deseas que se ejecute una actividad. En la práctica, son los objetivos declarados y definidos de la organización y por esa razón los estándares deben abarcar las funciones básicas y áreas clave de los resultados logrados.

Un estándar muy utilizado en los sistemas distribuidos es el CORBA, en el cual nos basaremos para explicar este tema.

CORBA es el actual estandar en los sitemas distribuidos

5.1.2 Configuración de SOD


Instalación Tipica


  • Soporte de instalación del Sistema Operativo (CD con auto-arranque)
  • Información del hardware disponible en la máquina destino
  • Drivers de los dispositivos hardware para el sistema operativo elegido (mínimo la tarjeta gráfica, aunque es muy aconsejable disponer de conexión a internet)
De forma general, la instalación se compone de los siguientes pasos:

  1. Configuración del dispositivo de arranque en la BIOS
  2. Creación de las particiones en el disco duro
  3. Creación del sistema de ficheros
  4. Selección de paquetes
  5. Configuración
  6. Instalación y configuración de aplicaciones
En el caso concreto de a práctica, se se va a instalar un sistema operativo Microsoft Windows. El instalador se subdivide en dos partes fundamentales:

  1. Instalación modo texto: Se encarga de detectar y cargar los controladores necesarios. Permite crear las particiones y sistema de ficheros y finaliza realizando la copia de los ficheros imprescindibles.
  2. Instalación gráfica: encargada de realizar la copia de los ficheros del sistema y aplicaciones del sistema operativo y permite configurar las opciones de internacionalización y de red.

5.1.1 Instalacion de Sistemas Operativos Distribuidos


El instalar un sistema operativo no es solo instalar un CD y ejecutarlo, ya que debe configurarse para blindarlo de amenazas y ofrecer mayor seguridad.
Una vez instalado el sistema operativo se deben realizar las siguientes acciones:

  1. Verificar que el firewall esté habilitado y habilitarlo en caso contrario..
  2. Actualizar a las últimas versiones del producto.
  3. Verificar las actualizaciones automáticas
  4. Habilitar la protección antivirus
  5. Crear un usuario con permisos no-administrativos y dejar el usuario “administrador” sólo para tareas de instalación y mantenimiento
  6. Deshabilitar algunos servicios si es Windows XP
La distribución de sistemas operativos se ha vuelto una tarea común en las empresas

sábado, 17 de noviembre de 2012

4.5 MCD en base a objetos


Nace como respuesta a la creciente popularización de los lenguajes orientados por objetos. Los datos se organizan y son transportados en unidades de objetos, no unidades de páginas. Es un modelo de programación de DSM de alto nivel.

Una alternativa al uso de páginas es tomar el objeto como base de la transferencia de memoria. Aunque el control de la memoria resulta más complejo, el resultado es al mismo tiempo modular y flexible, y la sincronización y el acceso se pueden integrar limpiamente. Otra de las restricciones de este modelo es que todos los accesos a los objetos compartidos han de realizarse mediante llamadas a los métodos de los objetos, con lo que no se admiten programas no modulares y se consideran incompatibles.
Un ejemplo de un sistema de MCD que utiliza una granularidad a nivel de variable compartida es Munin, una de las primeras implementaciones de MCD. Munin permite la ubicación de variables individuales en páginas diferentes, de modo que se pueda utilizar el hardware de paginación para identificar los accesos a las variables compartidas.

4.4 MCD en base a variables


Munin:

  •       Consistencia de liberación.
  •       Protocolos múltiples.
  •       Directorios.
  •       Sincronización.


Midway:

  •       Consistencia de entrada.
  •       Implantación.

La compartición falsa se produce cuando dos procesos se pelean el acceso a la misma página de memoria, ya que contiene variables que requieren los dos, pero estas no son las mismas. Esto pasa por un mal diseño del tamaño de las páginas y por la poca relación existente entre variables de la misma página.

En los MCD basados en variables se busca evitar la compartición falsa ejecutando un programa en cada CPU que se comunica con una central, la que le provee de variables compartidas, administrando este cualquier tipo de variable, poniendo variables grandes en varias páginas o en la misma página muchas variables del mismo tipo, en este protocolo es muy importante declarar las variables compartidas.

En los MCD basados en objetos se busca el acceso a datos por medio de la encapsulación de la información. Y repartida a través de la red, estos objetos serán definidos por el Programador y las CPU´s cambiaran los estados según procedan con los accesos.

MCD basada en variables compartidas

El problema del false sharing puede eliminarse si se utiliza una granularidad más tan fin tan fina, como las entidades que usualmente se comparten en los programas paralelos:
Las variables. De ser así, el problema ahora consiste en cómo mantener registro de las variables replicadas.  Además, es probable que sea más conveniente utilizar una política de actualización y no de invalidación, puesto que en la implementación debe ser posible identificar escrituras a variables individuales.

4.3 MCD en base de paginas


Cada CPU cuenta con su propia memoria y no pueden referenciar memoria remota directamente. Cuando dirección CPU se encuentra en una página que reside en una máquina remota:

  • Se notifica al sistema operativo
  • Sistema solicita dicha página con un mensaje.

Tanto ubicación como acceso son realizados a nivel software.

Ejemplos: IVY y Mirage

El esquema de MCD propone un espacio de direcciones de memoria virtual que integre la memoria de todas las computadoras del sistema, y su uso mediante paginación. Las páginas quedan restringidas a estar necesariamente en un único ordenador. Cuando un programa intenta acceder a una posición virtual de memoria, se comprueba si esa página se encuentra de forma local. Si no se encuentra, se provoca un fallo de página, y el sistema operativo solicita la página al resto de computadoras.

El sistema funciona de forma análoga al sistema de memoria virtual tradicional, pero en este caso los fallos de página se propagan al resto de ordenadores, hasta que la petición llega al ordenador que tiene la página virtual solicitada en su memoria local. A primera vista este sistema parece más eficiente que el acceso a la memoria virtual en disco, pero en la realidad ha mostrado ser un sistema demasiado lento en ciertas aplicaciones, ya que provoca un tráfico de páginas excesivo.

Una mejora dirigida a mejorar el rendimiento sugiere dividir el espacio de direcciones en una zona local y privada y una zona de memoria compartida, que se usará únicamente por procesos que necesiten compartir datos. Esta abstracción se acerca a la idea de programación mediante la declaración explícita de datos públicos y privados, y minimiza el envío de información, ya que sólo se enviarán los datos que realmente vayan a compartirse.

Diseño, replica, granularidad y consistencia

Hay dos razones principales para la replicación de datos:

Confiabilidad
Continuidad de trabajo ante caída de la réplica, mayor cantidad de copias mejor protección contra la corrupción de datos.

Rendimiento
El SD escala en número
Escala en área geográfica (disminuye el tiempo de acceso al dato) Consulta simultánea de los mismos datos.

Granularidad

Se refiere a la especificidad a la que se define un nivel de detalle en una tabla, es decir, si hablamos de una jerarquía la granularidad empieza por la parte más alta de la jerarquía, siendo la granularidad mínima, el nivel más bajo.

Modelos de consistencia

Es esencialmente un contrato entre procesos y el almacenamiento de datos.
Es decir: si los procesos acuerdan obedecer ciertas reglas, el almacenamiento promete trabajar correctamente.

Normalmente un proceso que realiza una operación de lectura espera que esa operación devuelva un valor que refleje el resultado de la última operación de escritura sobre el dato.
Los modelos de consistencia se presentan divididos en dos conjuntos:

  •       Modelos de consistencia centrados en los datos
  •       Modelos de consistencia centrados en el cliente

4.2 Modelos de consistencia


Un modelo de consistencia de memoria especifica las garantías de consistencia que un sistema MCD realiza sobre los valores que los procesos leen desde los objetos, dado que en realidad acceden sobre una réplica de cada objeto y que múltiples procesos pueden actualizar los objetos.

La duplicidad de los bloques compartidos aumenta el rendimiento, pero produce un problema de consistencia entre las diferentes copias de la página en caso de una escritura.

Si cada escritura es necesario actualizar todas las copias el envió de las paginas por red provoca que el tiempo de espera aumente demasiado convirtiendo el método en impracticable.

Características de consistencia

  • Mantener consistencia no es algo simple.
  • Un simple acceso a memoria puede requerir un gran número de paquetes a ser enviados.

Estricta, casual, secuencial, débil y de liberación

Consistencia estricta: El modelo de consistencia más restrictivo es llamado consistencia estricta y es definido por la siguiente condición cualquier lectura sobre un ítem de dato X retorna un valor correspondiente con la más reciente escritura sobre X.

Consistencia casual: Es un debilitamiento de la consistencia secuencial. Se hace una diferenciación entre eventos que están potencialmente relacionados en forma casual y aquellos que no.
La condición a cumplir para que unos datos sean casualmente consistentes es:
Escrituras que están potencialmente relacionados en forma casual deben ser vistas por todos los procesos en el mismo orden.
Esta secuencia es permitida con un almacenamiento casualmente consistente o con un almacenamiento consistente en forma estricta.
El modelo de consistencia causal (Hutto and Ahamad, 1990) es un debilitamiento de la consistencia secuencial. Se hace una diferenciación entre eventos que están potencialmente relacionados en forma causal y aquellos que no. Las operaciones que no están causalmente relacionadas se dicen concurrentes.
La condición a cumplir para que unos datos sean causalmente consistentes es:
Escrituras que están potencialmente relacionadas en forma causal deben ser vistas por todos los procesos en el mismo orden. Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes máquinas.
Esta secuencia es permitida con un almacenamiento causalmente consistente, pero no con un almacenamiento secuencialmente consistente o con un almacenamiento consistente en forma estricta.

Consistencia secuencial: La consistencia secuencial es una forma ligeramente más débil de la consistencia estricta. Satisface la siguiente condición:
El resultado de una ejecución es el mismo si las operaciones (lectura y escritura) de todos los procesos sobre el dato fueron ejecutadas en algún orden secuencial y las operaciones de cada proceso individual aparecen en esta operaciones de cada proceso individual aparecen en esta secuencia en el orden especificado por su programa

  1. Un dato almacenado secuencialmente consistente.
  2. Un dato almacenado que no es secuencialmente consistente.

Consistencia débil: Los accesos a variables de sincronización asociadas con los datos almacenados son secuencialmente consistentes.

Propiedades:

  • No se permite operación sobre una variable de sincronización hasta que todas las escrituras previas de hayan completado.
  • No se permiten operaciones de escritura o lectura sobre ítems de datos hasta que no se hayan completado operaciones previas sobre variables de sincronización.


Consistencia liberación: El modelo de consistencia release, RC, se basa en el supuesto de que los accesos a variables compartidas se protegen en secciones críticas empleando primitivas de sincronización, como por ejemplo locks. En tal caso, todo acceso esta precedido por una operación adquiere y seguido por una operación release. Es responsabilidad del programador que esta propiedad se cumpla en todos los programas.
Puesto que ningún otro proceso, ni local ni remoto, puede acceder a las variables que han sido modificadas mientras se encuentren protegidas en la sección critica, la actualización de cualquier modificación puede postergarse hasta el momento en que se lleva a cabo la operación reléase.
La operación release no se da por completada hasta que la actualización haya sido propagada a todos aquellos procesadores en donde haya replicas. Con RC, la propagación de un conjunto de modificaciones a memoria compartida se lleva a cabo con un costo fijo.
Propagación de Actualizaciones bajo RC y LRC de código sin proteger. En consecuencia obtuvo un valor inconsistente para la variable leída.

4.1 Memoria compartida y distribuida


Computación paralela


Un computador paralelo es un conjunto de procesadores capaces de cooperar en la solución de un problema.
El problema se divide en partes. Cada parte se compone de un conjunto de instrucciones. Las instrucciones de cada parte se ejecutan simultáneamente en diferentes CPUs. Técnicas computacionales que descomponen un problema en sus tareas y pistas que pueden ser computadas en diferentes máquinas o elementos de proceso al mismo tiempo.

La computación paralela a eficientado los procesos al compartir los recursos sin utilizar de dos o mas CPUs

¿Por qué utilizar computación paralela?

  • Reducir el tiempo de procesamiento
  • Resolver problemas de gran embergadura.
  • Proveer concurrencia.
  • Utilizar recursos remotos de cómputo cuando los locales son escasos.
  • Reducción de costos usando múltiples recursos”baratos” en lugar de costosas supercomputadoras.
  • Ampliar los límites de memoria para resolver problemas grandes.


El mayor problema de la computación paralela radica en la complejidad de sincronizar unas tareas con otras, ya sea mediante secciones críticas, semáforos o paso de mensajes, para garantizar la exclusión mutua en las zonas del código en las que sea necesario.
La computación paralela está penetrando en todos los niveles de la computación, desde computadoras masivamente paralelas usados en las ciencias de larga escala computacional, hasta servidores múltiples procesadores que soportan procesamiento de transacciones. Los principales problemas originados en cada uno de las áreas básicas de la informática (por ejemplo, algoritmos, sistemas, lenguajes, arquitecturas, etc.) se vuelven aún más complejos dentro del contexto de computación paralela.

De circuitos, basados en bus, anillo o con conmutador

Existen varias formas de implantar físicamente memoria compartida distribuida, a continuación se describen cada una de ellas.

Las diferentes arquitecturas nos permiten aprovechar al máximo el rendimiento de la red dependiendo de la aplicacion


  • Memoria basada en circuitos: Existe una única área de memoria y cada micro tiene su propio bus de datos y direcciones (en caso de no tenerlo se vuelve un esquema centralizado)
  • MCD basada en bus: En este esquema los micros comparten un bus de datos y direcciones por lo que es más barato de implementar, se necesita tener una memoria caché grande y sumamente rápida.
    • Multiprocesadores tipo bus
      • Conexión entre CPU y memoria se hace a través de cables paralelos:
        • algunos transmiten las direcciones y datos que el CPU quiere leer o escribir
        • otros envían o reciben datos
        • el resto para controlar las transferencias.
      • Dicha colección de cables se conoce con el nombre de bus.
      • Buses pueden ser parte del chip, pero en la mayoría de los sistemas los buses son externos y son usados para conectar circuitos impresos.
      • Una forma simple de construir multiprocesadores es conectarlos en un bus con más de un CPU
  • MCD basada en anillos: Es más tolerante a fallos, no hay coordinador central y se privilegia el uso de la memoria más cercana.
    • Multiprocesadores basados en anillo.
      • Ejemplo Memnet: un espacio de direcciones se divide en una parte privada y otra compartida.
        • La parte privada: se divide en regiones cada máquina cuenta con memoria para su pila, datos y códigos no compartidos.
        • Parte compartida: común a todas las máquinas y se guarda de forma consistente mediante un protocolo de hardware parecido a los de bus se divide en bloques de 32 bytes, (unidad transferencia)
  • MCD basada en conmutador: Varios micros se conectan entre sí en forma de bus formando un grupo, los grupos están interconectados entre sí a través de un conmutador. Cuando se realiza una operación de memoria se intenta realizar dentro del grupo, de lo contrario pasa al conmutador para que lo redirecciones a otro grupo.
    • Multiprocesadores con conmutador.
      • En anillo o bus, el hecho de añadir un CPU satura el ancho de banda del bus o anillo
      • Dos métodos para solucionar el problema:
        1. Reducir la cantidad de comunicación
        2. Incrementar la capacidad de comunicación
      • Una forma de reducir la cantidad de comunicación es el ocultamiento trabajo adicional en esta área:
        • mejorar protocolo de ocultamiento
        • optimizar el tamaño del bloque
        • incrementar la localidad de las referencias a memoria.
      • Sin embargo siempre se querrá añadir más CPUs y no habrá más ancho de banda en el bus.

sábado, 20 de octubre de 2012

3.7 Sistemas distribuidos de tiempo real (SDTR)


Características:

  1. Se activan por evento o por tiempo.
  2. Su comportamiento debe ser predecible.
  3. Debe ser tolerante a fallas.
  4. La comunicación en los sistemas distribuidos de tiempo real debe de ser de alto desempeño.

Clasificacion:

  • Sistema de tiempo real suave: significa que no existe problema si se rebasa un tiempo.
  • Sistema de tiempo real duro: es aquel en el que un tiempo límite no cumplido puede resultar catastrófico.

3.6 Tolerancia a fallos


La tolerancia a fallos es un aspecto crítico para aplicaciones a gran escala, ya que aquellas simulaciones que pueden tardar del orden de varios días o semanas para ofrecer resultados deben tener la posibilidad de manejar cierto tipo de fallos del sistema o de alguna tarea de la aplicación.

Por lo general, el termino tolerancia a fallos está asociado al almacenamiento en RAID. Los RAID utilizan la técnica Mirroring (en espejo) que permite la escritura simultánea de los datos en más de un disco del array.

3.5 Coplanificacion


Toma en cuenta los patrones de comunicación entre los procesos durante la planificación

Cada procesador debe utilizar un algoritmo de planificación ROUND ROBIN.

Todos los miembros de un grupo se deben colocar en el mismo numero de espacio de tiempo pero en procesadores distintos.

3.4 Asignación de procesadores



En dedicar un grupo de procesadores a una aplicación mientras dure esta aplicación, de manera que cada hilo de la aplicación se le asigna un procesador.

Una desventaja es que si un hilo de una aplicación se bloquea en espera de una E/S o por sincronización de otro hilo, el procesador de dicho hilo quedara desocupado: no hay multiprogramación de procesadores.

Modelos y algoritmos con sus aspectos de diseño e implementación


  • Algoritmos deterministas vs. Heurísticos.
  • Algoritmos centralizados vs. Distribuidos.
  • Algoritmos óptimos vs. Subóptimos.
  • Algoritmos locales vs. Globales.
  • Algoritmos iniciados por el emisor vs. Iniciados por el receptor.

3.3 Modelo de procesadores


La historia de los microprocesadores comienza en el año 1971, con el desarrollo por parte de Intel del procesador 4004, para facilitar el diseño de una calculadora.
La época de los PC (Personal Computer), podemos decir que comienza en el año 1978, con la salida al mercado del procesador Intel 8086.

Estación de trabajo

La PC revoluciono el mercado de las microcomputadoras

Los usuarios tienen:

  • Una cantidad fija de poder de cómputo exclusiva.
  • Un alto grado de autonomía para asignar los recursos de su estación de trabajo.
  • Uso de los discos en las estaciones de trabajo:

Sin disco

  • Bajo costo
  • Fácil mantenimiento del hardware y del software
  • Simetría
  • Flexibilidad

Con disco

  • Disco para paginación y archivos de tipo borrador
  • Reduce la carga de la red respecto del caso anterior
  • Alto costo debido al gran número de discos necesarios

Modelo de pila de procesadores

Este modelo basa su funcionamiento en la teoría de colas.
En general este modelo puede reducir significativamente el tiempo de espera al tener una sola cola de procesadores a repartir.
La capacidad de cómputo se puede gestionar de mejor forma si se tiene micros con mayores capacidades.

Híbrido

Los sistemas híbridos combinan una variedad de buses de instrumentación y plataformas en un sistema.
Los sistemas híbridos proporcionan una mayor flexibilidad y una longevidad extendida para el sistema de prueba a un menor costo al permitirle combinar software y hardware existente con nuevas tecnologías.

3.2 Métodos de distribución de cargas (Hilos, Tareas, Procesos)



  • Threads llamados procesos ligeros o contextos de ejecución.
  • Típicamente, cada thread controla un único aspecto dentro de un programa.
  • Todos los threads comparten los mismos recursos, al contrario que los procesos en donde cada uno tiene su propia copia de código y datos (separados unos de otros).


Los sistemas operativos generalmente implementan hilos de dos maneras:

Multihilo apropiativo

Permite al sistema operativo determinar cuándo debe haber un cambio de contexto.
La desventaja de esto es que el sistema puede hacer un cambio de contexto en un momento inadecuado, causando un fenómeno conocido como inversión de prioridades y otros problemas.

 Multihilo cooperativo

Depende del mismo hilo abandonar el control cuando llega a un punto de detención, lo cual puede traer problemas cuando el hilo espera la disponibilidad de un recurso.

3.1 Procesos y procesadores conceptos basicos



Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador

 Los procesadores distribuidos se pueden organizar de varias formas:

  • Modelo de estación de trabajo.
  • Modelo de la pila de procesadores.
  • Modelo híbrido.
Múltiples procesos forman el SO


2.2 Sincronización: relojes físicos, relojes lógicos, usos de la sincronización.


Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeño y de la consistencia de los datos, además de mantener seguras todas estas operaciones. La sincronización de procesos en los sistemas distribuidos resulta más compleja que en los centralizados, debido a que la información y el procesamiento se mantienen en diferentes nodos.
Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos y de cómputo. Tales vistas pueden ser provistas por los mecanismos de sincronización.

El término sincronización se define como la forma de forzar un orden parcial o total en cualquier conjunto de eventos, y es usado para hacer referencia a tres problemas distintos pero relacionados entre sí:

  1. La sincronización entre el emisor y el receptor.
  2. La especificación y control de la actividad común entre procesos cooperativos.
  3. La serialización de accesos concurrentes a objetos compartidos por múltiples procesos.

Haciendo referencia a los métodos utilizados en un sistema centralizado, el cual hace uso de semáforos y monitores; en un sistema distribuido se utilizan algoritmos distribuidos para sincronizar el trabajo común entre los procesos y estos algoritmos.


Actualmente se encuentran disponibles muchos servicios de sincronización atrevez de "la nube"

Relojes fijos

Los relojes físicos son relojes que: Deben ser iguales (estar sincronizados).
No deben desviarse del tiempo real más allá de cierta magnitud.
En ciertos sistemas es importante la hora real del reloj:
  • Se precisan relojes físicos externos (más de uno).
  • Se deben sincronizar: Con los relojes del mundo real.

Relojes logicos

El software del reloj lógico

El software para el reloj toma generalmente la forma de unmanejador de dispositivo, aunque no es un dispositivo de bloque.
La principales funciones del software manejador del reloj son:
  • Mantener la hora del día o tiempo real
  • Evitar que los procesos se ejecuten durante más tiempo del permitido.

Usos de la sincronizacion manejo de cache, comunicacion en grupo exclusion mutua eleccion transacciones atomicas e interbloqueo

Sincronización



La sincronización es la coordinación de procesos que se ejecutan simultáneamente para completar una tarea, con el fin de obtener un orden de ejecución correcto y evitar así estados inesperados.
Comunicación en los sistemas operativos distribuidosMemoria Caché


En los sistemas de archivos convencionales, el fundamento para la memoria caché es la reducción de la E/S de disco (lo que aumenta el rendimiento), en un SAD el objetivo es reducir el tráfico en la red.

La copia de memoria caché


Conservar allí los bloques de disco de acceso más reciente, para así manejar localmente los accesos repetidos a la misma información y no aumentar el tráfico de la red. La caché es un área de memoria utilizada para agilizar los procesos de lectura-escritura.


Exclusión mutua


La condición de exclusión mutua se aplica a los os que no pueden ser compartidos. Por ejemplo, varios procesos no pueden compartir simultáneamente una impresora.

Los archivos de sólo lectura son un buen ejemplo de recurso que puede compartirse. Si varios procesos intentan abrir un archivo de sólo lectura al mismo tiempo, puede concedérseles acceso al archivo de forma simultánea. Un proceso no necesita esperar nunca para acceder a un recurso compartible.

La exclusión mutua permite compartir un recurso con varios procesos

Algoritmos de Elección


Son los algoritmos para la elección de un proceso coordinador, iniciador, secuenciador. El objetivo de un algoritmo de elección es garantizar que iniciada una elección ésta concluya con el acuerdo de todos los procesos con respecto a la identidad del nuevo coordinador.

Transacción atómica, transacción o acción atómica


La principal propiedad de la transacción atómica es el “todo o nada”: O se hace todo lo que se tenía que hacer como una unidad o no se hace nada.
Un esquema para garantizar la adecuada sincronización de la información en sistemas centralizados como distribuidos es el uso de transacciones.
Las transacciones manejan 4 propiedades básicas: atómicas, consistentes, aisladas y durables (ACID por sus siglas en inglés).

2.1 Comunicacion: comunicación con cliente - servidor, comunicación con llamada a procedimiento remoto, comunicación en grupo, tolerancia a fallos.


La tecnología Cliente/Servidor es el procesamiento cooperativo de la información por medio de un conjunto de procesadores, en el cual múltiples clientes, distribuidos geográficamente, solicitan requerimientos a uno o más servidores centrales.

Desde el punto de vista funcional, se puede definir la computación Cliente/Servidor como una arquitectura distribuida que permite a los usuarios finales obtener acceso a la información de forma transparente aún en entornos multiplataforma. Se trata pues, de la arquitectura más extendida en la realización de Sistemas Distribuidos.

Un sistema Cliente/Servidor es un Sistema de Información distribuido basado en las siguientes características:


  • Servicio: unidad básica de diseño. El servidor los proporciona y el cliente los utiliza.
  • Recursos compartidos: Muchos clientes utilizan los mismos servidores y, a través de ellos, comparten tanto recursos lógicos como físicos.
  • Protocolos asimétricos: Los clientes inician “conversaciones”. Los servidores esperan su establecimiento pasivamente.
  • Transparencia de localización física de los servidores y clientes: El cliente no tiene por qué saber dónde se encuentra situado el recurso que desea utilizar.
  • Independencia de la plataforma HW y SW que se emplee.
  • Sistemas débilmente acoplados. Interacción basada en envío de mensajes.
  • Encapsulamiento de servicios. Los detalles de la implementación de un servicio son transparentes al cliente.
  • Escalabilidad horizontal (añadir clientes) y vertical (ampliar potencia de los servidores).
  • Integridad: Datos y programas centralizados en servidores facilitan su integridad y mantenimiento.


El modelo cliente servidor es muy conveniente para compartir recursos e información entre diferentes clientes y diferentes sistemas operativos

En el modelo usual Cliente/Servidor, un servidor, se activa y espera las solicitudes de los clientes. Habitualmente, programas cliente múltiples comparten los servicios de un programa servidor común. Tanto los programas cliente como los servidores son con frecuencia parte de un programa o aplicación mayores.

El Esquema de funcionamiento de un Sistema Cliente/Servidor sería:


  • El cliente solicita una información al servidor.
  • El servidor recibe la petición del cliente.
  • El servidor procesa dicha solicitud.
  • El servidor envía el resultado obtenido al cliente.
  • El cliente recibe el resultado y lo procesa.

2.3 Nominacion caracteristicas y estructuras

La nominación es una correspondencia entre objetos de datos lógicos y físicos. Por ejemplo, los usuarios tratan con objetos de datos lógicos representados por nombre de archivos, mientras que el sistema manipula bloques de datos físicos almacenados en las pistas de los discos. Generalmente un usuario se refiere a un archivo utilizando un nombre , el cual se transforma en un identificador numérico de bajo nivel, que a su vez se corresponde con bloques en disco. Esta correspondencia multinivel ofrece a los usuarios la abstracción de un archivo, que oculta los detalles de cómo y donde se almacena el archivo en disco.


En un SAD transparente se agrega una nueva dimensión de abstracción: La ocultación de la ubicación de los archivos de la red. En un sistema de archivos convencionales la función de nominación produce como resultado un intervalo de direcciones en disco, en un SAD este intervalo crece para incluir la máquina especifica en cuyo disco se almacena el archivo. Si se extiende un poco mas el tratamiento de los archivos como abstracciones, llegamos a la posibilidad de replicas de archivos. Dado un nombre de archivo, la correspondencia devuelve un conjunto de posiciones de las replicas de este archivo. En esta abstracción se ocultan tanto la experiencia de copias como su ubicación.

Estructuras de Nominación

Existen dos conceptos que hay que distinguir en relación con al correspondencia de nombres en un SAD.
Transparencia de Nominación, El nombre de archivo no revela ningún indicio sobre de la ubicación del almacenamiento físico del archivo.

Independencia de Ubicación, No es necesario modificar el nombre de un archivo cuando cambia su ubicación en el almacenamiento físico.

Esquema de Nominación


Hay tres enfoques principales para los esquemas de nominación en un SAD. En el enfoque mas sencillo, los archivos se nombran con una combinación del nombre de su anfitrión y su nombre local , lo que garantiza un nombre único dentro de todo el sistema. Por ejemplo, en Ibis, un archivo se identifica de manera única con el Nombre Anfitrión Local, donde nombre local es una ruta semejante a las de UNIX.

El segundo enfoque popularizado por el sistema de archivos de red (NFS, Network File System) de sun, ofrece una forma de unir directorios remotos a directorios locales, lo que da la apariencia a un árbol de directorios coherentes.

El tercer enfoque es la estructura mas compleja y difícil de mantener en la NFS, ya que cualquier directorio se puede unir a cualquier árbol de direcciones locales y la jerarquía resultante puede estar poco estructurada.


Servidores y agentes de nombres


La ICANN está formalmente organizada como una corporación sin fines de lucro y de utilidad pública.
En la actualidad, la ICANN está formalmente organizada como una corporación sin fines de lucro y de utilidad pública. Está administrada por una Junta de Directores, que está compuesta por seis representantes de las organizaciones de apoyo, sub-grupos que se ocupan de las secciones específicas de las políticas de ICANN en virtud de la competencia, ocho representantes independientes del interés público general, seleccionados a través de un Comité de nominaciones que representan a todas las circunscripciones de la ICANN, y el Presidente y Director Ejecutivo, nombrado por el resto de la Junta.

En la actualidad hay tres organizaciones de apoyo: la GNSO (Generic Names Supporting Organization) se ocupa de la formulación de políticas sobre dominios genéricos de nivel superior, ccNSO (Country Code Names Supporting Organization) se ocupa de la elaboración de políticas relativas a códigos de países en dominios de nivel superior, la ASO (Address Supporting Organization) se ocupa de la formulación de políticas en direcciones IP.


ICANN también se basa en algunos comités consultivos para recibir asesoramiento sobre los intereses y necesidades de los interesados que no participen directamente en las organizaciones de apoyo. Entre ellos figuran el Comité Asesor Gubernamental (GAC), que está integrado por representantes de un gran número de gobiernos nacionales de todo el mundo; el ALAC (At-Large Advisory Comité), que está integrado por representantes de organizaciones de los distintos usuarios de Internet de todo el mundo; el sistema DNS y TLG (Technical Liaison Group) compuesto por representantes de otras organizaciones técnicas internacionales de Internet.


Mapeo de direcciones


El mapeo de direcciones corresponde en la relación de equivalencia entre un tipo de nombre a otro tipo de nombre; por ejemplo, de un nombre de usuario a un nombre de sistema.

Mapeo de rutas

El mapeo de rutas consiste en la relación de equivalencia entre un tipo de ruta u otro tipo.
Recordar que las rutas consiste en la serie de ubicaciones para poder acceder a un recurso.
Otro nombre que recibe el mapeo de rutas es el de encaminamiento.

Modelo de Terry


El problema principal de cualquier sistema de nombre reside en encontrar de manera fácil,
sencilla y rápida cualquier recurso a través del identificador (nombre) dado.
Para solucionar este problema, Terry y otros propusieron un modelo de facilidades que
debe de poseer todo sistema de nombres, dichas características son las siguientes:

  • Facilidad centralizada de nombramiento
  • Facilidad replegada de nombramiento
  • Facilidad descentralizada de nombramiento
  • Facilidad distribuida de nombramiento
  • Facilidad jerárquica de nombramiento



miércoles, 29 de agosto de 2012

Tabla de Sistemas Operativos

A continuación se muestra una tabla muy completa con diferentes sistemas operativos y sus características.


1.3 Características de un sistema operativo moderno


Funciones de los sistemas operativos modernos.

  • Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario, para que este último se pueda comunicar con la computadora. Interfaz de línea de comando: tú introduces palabras y símbolos desde el teclado de la computadora, ejemplo, el MS-DOS. Interfaz gráfica del Usuario (GUI), seleccionas las acciones mediante el uso de un Mouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los menús.
  • Administrar los dispositivos de hardware en la computadora. Cuando corren los programas, necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida (impresoras, módems, etc.). El SO sirve de intermediario entre los programas y el hardware.
  • Administrar y mantener los sistemas de archivo de disco. Los SO agrupan la información dentro de compartimientos lógicos para almacenarlos en el disco. Estos grupos de información son llamados archivos. Los archivos pueden contener instrucciones de programas o información creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos.
  • Apoyar a otros programas. Otra de las funciones importantes del SO es proporcionar servicios a otros programas. Estos servicios son similares a aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc. Cuando los programadores escriben programas de computadora, incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son conocidas como "llamadas del sistema"
Algunas caracteristicas de los SO son tan comunes que hoy en día son impresindibles

Características de los sistemas operativos modernos.


En general, se puede decir que un Sistema Operativo tiene las siguientes características:

  • Conveniencia: Un Sistema Operativo hace más conveniente el uso de una computadora.
  • Eficiencia: Un Sistema Operativo permite que los recursos de la computadora se usen de la manera más eficiente posible.
  • Habilidad para evolucionar: Un Sistema Operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.
  • Encargado de administrar el hardware: El Sistema Operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.
  • Relacionar dispositivos: El Sistema Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
  • Organizar datos para acceso rápido y seguro.
  • Manejar las comunicaciones en red: El Sistema Operativo permite al usuario manejar con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
  • Procesamiento por bytes de flujo a través del bus de datos.
  • Facilitar las entradas y salidas: Un Sistema Operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de Entrada/Salida de la computadora.

1.2.3 Proceso Asíncrono



Es una señal generada por un proceso que requiere atención por parte de otro proceso independientemente de lo que estén haciendo.

Desde hace algún tiempo se ha descubierto que los procesos asíncronos son muy adecuados en muchas circunstancias de procesamiento. A medida que se van encontrando situaciones reales para las cuales este tipo de procesamiento es adecuado, se descubren nuevas ventajas y nuevas desventajas.


Una de las desventajas más importantes consiste en que los procesos asíncronos, a diferencia de los procesos sincrónicos necesitan dejar un rastro de ejecución y además una interfaz administrativa para consultar y tomar decisiones.

Esta administración adicional hace menos factible el uso de procesamiento asíncrono, pero muchas veces esta funcionalidad adicional ofrece una mayor flexibilidad, facilita el monitoreo y permite conocer el estado o la evolución del servicio.

El procesamiento asíncrono es una buena alternativa para ciertas soluciones, como todo, debe aplicarse donde realmente tenga sentido, si no es así puede tener un efecto no deseado como ejemplos puede ser el complicar la interacción en el usuario y el sistema, demorar un proceso que requiere información en línea y agregar complejidad administrativa.

1.2.2 Concurrencia




La concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.


Los temas fundamentales del diseño de sistemas operativos están relacionados con la gestión de procesos e hilos:

  • Multiprogramación: consiste en la gestión de varios procesos dentro de un sistema mono-procesador.
  • Multiprocesamiento: consiste en la gestión de varios procesos, dentro de un sistema multiprocesador.
  • Procesamiento distribuido: consiste en la gestión de varios procesos, ejecutándose en sistemas de computadores múltiples y distribuidos. La reciente proliferación de las agrupaciones es el principal ejemplo de este tipo de sistemas.

La concurrencia es fundamental en todas estas áreas y para el diseño sistemas operativos. La concurrencia comprende un gran número de cuestiones de diseño, incluida la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos.

Gracias a la concurrencia podemos realizar varias tareas al mismo tiempo en un SO

Labores del sistema operativo


Elementos de gestión y diseño que surgen por causa de la concurrencia:
  1. El sistema operativo debe seguir a los distintos procesos activos
  2. El sistema operativo debe asignar y retirar los distintos recursos a cada proceso activo, entre estos se incluyen:
  • Tiempo de procesador
  • Memoria
  • Archivos
  • Dispositivos de E/S
  1. El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos.

1.2.1 Comunicación en red


1.2.1 Comunicación en red


El crecimiento de las redes locales a mediados de los años ochenta hizo que cambiase nuestra forma de comunicarnos con las computadoras y la forma en que las computadoras se comunicaban entre sí. La importancia de las LAN reside en que en un principio se puede conectar un número pequeño de computadoras que puede ser ampliado a medida que crecen las necesidades.
Uno de los primeros SO ampliamente distribuidos con capacidad para trabajar en red fue Windows 3.11 for Worgroups

Medios de comunicación

El cable par trenzado


Lo que se denomina cable de Par Trenzado consiste en dos alambres de cobre aislados, que se trenzan de forma helicoidal, igual que una molécula de DNA. De esta forma el par trenzado constituye un circuito que puede transmitir datos.

Esto se hace porque dos alambres paralelos constituyen una antena simple. Cuando se trenzan los alambres, las ondas de diferentes vueltas se cancelan, por lo que la radiación del cable es menos efectiva. Así la forma trenzada permite reducir la interferencia eléctrica tanto exterior como de pares cercanos.

Un cable de par trenzado está formado por un grupo de pares trenzados, normalmente cuatro, recubiertos por un material aislante.




El cable coaxial


El cable coaxial tenía una gran utilidad en sus inicios por su propiedad idónea de transmisión de voz, audio y video, además de textos e imágenes.Se usa normalmente en la conexión de redes con topología de Bus como Ethernet y ArcNet, se llama así porque su construcción es de forma coaxial. La construcción del cable debe de ser firme y uniforme, porque si no es así, no se tiene un funcionamiento adecuado.

Elementos del cable coaxial

Fibra Óptica


La fibra óptica es el material que constituye la base de las modernas redes de telecomunicaciones de alta capacidad. Una fibra óptica no es más que un larguísimo filamento de vidrio, tan fino que es perfectamente flexible, debidamente protegido por una camisa plástica. A traves de estos haces se transmiten, mediante un láser acoplado, señales luminosas que se detectan en el destino.

Pero evidentenente, para tener una gran capacidad de transmisión a larga distancia, la fibra debe tener unas características muy particulares. La fabricación de fibra óptica es un proceso de alta tecnología. Tengamos en cuenta que el grosor estándar de la fibra es 125 micras (aproximadamente el doble que un cabello humano) y el núcleo es de unas 8 micras (en fibras monomodo, que son las usadas para comunicaciones a larga distancia). Y evidentemente, es crítico mantener la pureza y la regularidad del núcleo.

Todo ello convierte la fabricación de fibra en un proceso complicado. Sin embargo, el fundamento es sencillo (y es una idea brillante). Se trata de construir grandes tubos de vidrio que reproducen a escala macroscópica la estructura de la fibra. Estos tubos se llaman preformas. Posteriormente, la preforma se va fundiendo y estirando hasta que obtenemos un filamento alargado cuyo fino diámetro reproduce a escala microscópica la preforma original.

El proceso de fabricación de las preformas no es en absoluto sencillo ya que evidentemente no estamos hablando de simple vidrio, sino de unas características muy concretas y una extrema pureza. Un modo de fabricación de preformas es el que mostramos en el siguiente vídeo del Discovery Channel (hay un grave error de doblaje, cuando dice ‘silicona’ en realidad quiere decir ‘sílice’, en inglés silica).



1.2 Características de desarrollo en aplicaciones modernas


Continuando con los conceptos básicos podemos encontrar algunos tipos de aplicaciones modernas que incluyen:
  • Base de datos
  • Win/Web
  • Internet/Intranet/Extranet
  • Web services
  • SOA
  • BMP
  • BI
  • Multiplataforma (incluyendo nuevos aparatos)
  • Dispositivos Móviles
  • Funcionamiento conectado o desconectado
  • Usuarios no entrenados

Las aplicaciones modernas del la computación empiezan desde, aproximadamente, el año 1960 con la creación del disco flexible, el código ASCII y el sistema DOS. Sin embargo estas solo son las bases para la comunicación actual; ya que estos eran solo el principio para lo que ahora utilizamos frecuentemente, como los sistemas de almacenamiento información, lo que ahora son las unidades USB, celulares, etc., anotaciones hechas en Word, Excel, Word Pad, etc., búsqueda que se realizan en foros, encartas, paginas de búsqueda como Wikipedia, etc.) y con ello complementar nuestras tareas cotidianas como lo son las investigaciones, proyectos, e incluso los pasatiempos. También esta sección se remonta del clásico juego llamado "pacman" que ha evolucionado ahora con los juegos on line o algunas consolas, tales como el X-Box, Play Station y Nintendo. Actualmente también se utiliza la computación como un medio de comunicación con el Chat, el correo electrónico, foros y otros medios más. Y aun existen incontables medios más profesionales que ayudan a lo que ahora son los profesionistas como en el caso de la arquitectura e ingeniería el Archicad, Autocad y programas más complejos.


Hoy en día fácilmente podemos reconocer las marcas mas importantes que dominan el mercado del software

1.1 Conceptos Básicos


A continuación se definirán algunos conceptos básicos que se utilizaran durante las siguientes unidades.

Sistema Operativo


Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema.


El objetivo es mantener al usuario alejado de los componentes mas complicados, en este caso el hardware

En una definición informal es un sistema que consiste en ofrecer una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos.
A pesar de que todos nosotros usamos sistemas operativos casi a diario, es difícil definir qué es un sistema operativo. En parte, esto se debe a que los sistemas operativos realizan dos funciones diferentes.

Proveer una máquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente, protegiéndolo de los detalles y complejidades del hardware. Administrar eficientemente los recursos del computador.
Los sitemas operativos mas usados son MacOSX, Linux y Windows

Multitarea


Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.

Monousuario

Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.

Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.

Multiusuario


Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.

En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

Multiproceso


Las computadoras que tienen más de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de las computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción, el otro procesador queda liberado para procesar otras instrucciones simultáneamente.Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja.

Los sistemas operativos modernos permiten utilizar varios CPU simultaneamente para optimizar el rendimiento y trabajar como una sola unidad

Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como:

  • Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella.
  • Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los Sistema Operativo tienen que ser rediseñados o diseñados desde el principio para trabajar en un ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles.

Temario


Temario


Unidad I

Tema: Introducción
1.1 Conceptos basicos
1.2 Características de desarrollo en aplicaciones modernas o Base de datos
1.3 Características de un sistema operativo moderno

Unidad II

Tema: Comunicación en los sistemas operativos distribuidos.
2.1 Comunicacion: comunicación con cliente - servidor, comunicación con llamada a procedimiento remoto, comunicación en grupo, tolerancia a fallos.
2.2 Sincronización: relojes físicos, relojes lógicos, usos de la sincronización.
2.3 Nominación: características y estructuras, tipos de nombres, resolución y distribución, servidores y agentes de nombre, mapeo de direcciones, mapeo de rutas, modelo de Terry.
2.4 Comunicación de procesos a través del paso de mensajes en sistemas distribuidos.

Unidad III

Tema: Procesos y procesadores en sistemas operativos distribuidos.
3.1 Conceptos básicos de procesos y procesadores.
3.2 Métodos de distribución de carga(hilos, tareas, procesos).
3.3 Modelos de procesadores: de estación de trabajo, de pila de procesadores, híbrido.
3.4 Asignación de procesadores: modelo y algoritmos con sus aspectos de diseño e implantación.
3.5 Coplanificación.
3.6 Tolerancia a fallos: nivel proceso, nivel almacenamiento.
3.7 Esquemas de seguridad en sistemas distribuidos.
3.8 Sistemas operativos distribuidos en tiempo real.
3.9 Balanceo de carga en sistemas distribuidos.

Unidad IV

Tema: Memoria compartida distribuida(MCD).
4.1 Configuraciónes de memoria compartida distribuida: de circuitos, basada en bus, anillo o con conmutador.
4.2 Modelos de consistencia: estricta, casual, secuencia, débil, de liberación, y de entrada.
4.3 Memoria compartida distribuida en base a paginas: diseño, replica, granulada, consustencia, propietario, y copias.
4.4 Memoria compartida distribuida en base a variables.
4.5 Memoria compartida distribuida en base a objetos.
4.6 Administradores memorias en clusters.

Unidad V

Tema: Usos y tendencias de los sistemas operativos distribuidos.
5.1 Administración de  sistemas operativos distribuidos: instalación, configuración y control.
5.2 Instalación de clusters.
5.3 Estándares de administración en sistemas operativos distribuidos.
5.4 Computo de alto rendimiento a bajo costo.
5.5 Súper computo basado en clustering como solución a la necesidad de alto procesamiento en la nueva  era.
5.6 Tendencias de la investigación.
5.7 Sistemas distribuidos como infraestructura para el soporte de las empresas en las TI.