domingo, 6 de mayo de 2012

UNIDAD 4. MEMORIA COMPARTIDA DISTRIBUIDA


Los sistemas MCD son sistemas que, mediante software emulan semántica de manera compartida sobre hardware que ofrece soporte solo para comunicación mediante paso de mensajes a RPC.

4.1 CONFIGURACIONES MCD

  • Configuración paralela:
Es un conjunto de procesadores capaces de cooperar en la solución de un problema.
El problema se divide en partes.Cada parte de compone de un conjunto de instrucciones.Las instrucciones de cada parte se ejecutan simultáneamente en diferentes CP´S.


4.1.1 DE CIRCUITOS BASADOS EN BUS,ANILLO O CONMUTADOR.


Arquitecturas de MCD

Existen varias formas de implantar físicamente MCD, a continuación se describe cada una de ellas.
  • Memoria basada en circuitos: Existe una única área de memoria y cada micro tiene si propio bus de datos y direcciones (en caso de no tenerlo se vuelve un esquema centralizado).
  • MCD basada en bus: En este esquema las micros comparten un bus de datos y direcciones por lo que es mas barato de implementar, se necesita tener una memoria caché y simultáneamente rápida.
  • MCD basada en anillos: Es mas tolerante a fallos,no hay coordinador central y se privilegia el uso de la memoria mas cercana.
  • MCD basado en conmutador: Varios micros, se conectan entre si en forma de bus formando un grupo, los grupos están interconectados entre si a través de un conmutador.

Procesos y procesadores en sistemas distribuidos

3.1 PROCESOS Y PROCESADORES





A continuación se numeran diferentes conceptos con lo que se conoce a un proceso:


Proceso:



  • Programa en ejecución
  • Ocupa un ligar en memoria,variable,pila,registro de maquina
  • Actividad con estados
  • Entidad planificacble con instrucciones y datos, estados y atributos
  • Concurrencia en memoria
  • Centro de control de un proceso en ejecución
  • Una entidad en PCB

Procesador:




La unidad central de procesamientoUCP o CPU, o simplemente el procesador o microprocesador, es el componente del computador y otros dispositivos programables, que interpreta las instrucciones contenidas en los programas y procesa los datos. También es conocido como el cerebro de la computadora.

Proporcionan la característica fundamental de la computadora digital (la programabilidad) y son uno de los componentes necesarios encontrados en las computadoras de cualquier tiempo, junto con el almacenamiento primario y los dispositivos de entrada y salida.


                            




3.2 HILOS Y MULTIHILOS


 Un hilo es una secuencia de código en ejecución dentro del contexto de un proceso.

Los hilos no pueden ejecutarse ellos solos; requieren la supervisión de un proceso padre para correr. Dentro de cada proceso hay varios hilos ejecutándose. Por ejemplo, Word puede tener un hilo en background chequeando automáticamente la gramática de lo que estoy escribiendo, mientras otro hilo puede estar salvando automáticamente los cambios del documento en el que estoy trabajando.
Los hilos a menudo son conocidos o llamados procesos ligeros. Un hilo, en efecto, es muy similar a un proceso pero con la diferencia de que un hilo siempre corre dentro del contexto de otro programa. Por el contrario, los procesos mantienen su propio espacio de direcciones y entorno de operaciones. Los hilos dependen de un programa padre en lo que se refiere a recursos de ejecución.

Los multihilos proporcionan un mecanismo para agrupar varios hilos en un único objeto con el fin de poder manipularlos todos de una vez; por ejemplo, poder interrumpir un grupo de hilos invocando una sola vez al método interrupt. A su vez, un grupo de hilos también puede pertenecer a otro grupo, formando una estructura en árbol. Desde el punto de vista de esta estructura, un hilo sólo tiene acceso a la información acerca de su grupo, no a la de su grupo padre o de cualquier otro grupo.





3.3 MODELOS DE PROCESADORES


En un sistema distribuido, con varios procesadores, un aspecto fundamental del diseño es el cómo se utiliza.

3.3.1 De estación de trabajo

El sistema consta de estaciones de trabajo (PC) dispersas conectadas entre sí mediante una red de área local (LAN).
Pueden contar o no con disco rígido en cada una de ellas.
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 y flexibilidad.
    • Gran uso de la red, los servidores de archivos se pueden convertir en cuellos de botella.
  • 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.
  • Disco para paginación, archivos de tipo borrador y archivos binarios (ejecutables):
    • Reduce aún más la carga sobre la red.
    • Alto costo y complejidad adicional para actualizar los binarios.
  • Disco para paginación, borrador, binarios y ocultamiento de archivos:
    • Reduce aún más la carga de red y de los servidores de archivos.
    • Alto costo.
    • Problemas de consistencia del caché.
  • Sistema local de archivos completo:
    • Escasa carga en la red.
    • Elimina la necesidad de los servidores de archivos.
    • Pérdida de transparencia

3.3.2 De pila de procesadores


Se dispone de un conjunto de cpu que se pueden asignar dinámicamente a los usuarios según la demanda.
Los usuarios no disponen de estaciones de trabajo sino de terminales gráficas de alto rendimiento.
No existe el concepto de propiedad de los procesadores, los que pertenecen a todos y se utilizan compartidamente.
El principal argumento para la centralización del poder de cómputo como una pila de procesadores proviene de la teoría de colas:
  • Llamamos “l” a la tasa de entradas totales de solicitudes por segundo de todos los usuarios combinados.
  • Llamamos “m” a la tasa de procesamiento de solicitudes por parte del servidor.
  • Para una operación estable debe darse que “m > l”:
    • Se pueden permitir pequeños lapsos de tiempo en los que la tasa de entrada exceda a la de servicio.
  • Llamamos “T” al promedio de tiempo entre la emisión de una solicitud y la obtención de una respuesta completa:
    • T = 1 / ( m - l ).
    • Cuando “ l ” tiende a “0”, “T” no tiende a “0”.
  • Supongamos que tenemos “n” multiprocesadores personales, cada uno con cierto número de cpu y con su propio sistema de colas con tasas “ l ” y “ m ” y tiempo “T”:
    • Si reunimos todas las cpu y formamos una sola pila de procesadores tendremos un solo sistema de colas en vez de “n” colas ejecutándose en paralelo.
    • La tasa de entrada será “n  l”, la tasa de servicio será “n m” y el tiempo promedio de respuesta será:
      • T1 = 1 / (n m - n  l) = 1 / n ( m -   l) = T / n.
    • Conclusión: si reemplazamos “n” pequeños recursos por uno grande que sea “n” veces más poderoso:
      • Podemos reducir el tiempo promedio de respuesta “n” veces.

3.3.3 Híbrido

Consta de estaciones de trabajo y una pila de procesadores.



3.4 ASIGNACIÓN DE PROCESADORES


Son necesarios algoritmos para decidir cuál proceso hay que ejecutar y en qué máquina.
Para el modelo de estaciones de trabajo:
  • Decidir cuándo ejecutar el proceso de manera local y cuándo buscar una estación inactiva.
Para el modelo de la pila de procesadores:
  • Decidir dónde ejecutar cada nuevo proceso.
3.4.1 Modelos y algoritmos con sus aspectos de diseño e implementación

Los principales aspectos son los siguientes:
  • 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.
Los algoritmos deterministas son adecuados cuando se sabe anticipadamente todo acerca del comportamiento de los procesos, pero esto generalmente no se da, aunque puede haber en ciertos casos aproximaciones estadísticas.Los algoritmos heurísticos son adecuados cuando la carga es impredecible.
Los diseños centralizados permiten reunir toda la información en un lugar y tomar una mejor decisión; la desventaja es que la máquina central se puede sobrecargar y se pierde robustez ante su posible falla.
Generalmente los algoritmos óptimos consumen más recursos que los subóptimos, además, en la mayoría de los sistemas reales se buscan soluciones subóptimas, heurísticas y distribuidas.
Cuando se va a crear un proceso se debe decidir si se ejecutará en la máquina que lo genera o en otra (política de transferencia):
  • La decisión se puede tomar “solo con información local” o “con información global”.
  • Los algoritmos locales son sencillos pero no óptimos.
  • Los algoritmos globales son mejores pero consumen muchos recursos.
Cuando una máquina se deshace de un proceso la política de localización debe decidir dónde enviarlo:
  • Necesita información de la carga en todas partes, obteniéndola de:
    • Un emisor sobrecargado que busca una máquina inactiva.
    • Un receptor desocupado que busca trabajo.

3.5 COPLANIFICACIÓN

Toma en cuenta los patrones de comunicacion entre los procesos durante la planificacion.
—Debe garantizar que todos los miembros del grupo se ejecuten al mismo tiempo.
—Se emplea una matriz conceptual donde:
  • las filas son espacios de tiempo.
  • las columnas son las tablas de procesos de los procesadores.
—Cada procesador debe utilizar un algoritmo de planificacion round robin:
  • todos los procesadores ejecutan el proceso en el espacio “0” durante un cierto periodo fijo.
  • todos los procesadores ejecutan el proceso en el espacio “1” durante un cierto periodo fijo, etc.
—Se deben mantener sincronizados los intervalos de tiempo.
—Todos los miembros de un grupo se deben colocar en la misma n° de espacio de tiempo pero en procesadores distintos.


3.6  TOLERANCIA A FALLOS


 El objetivo del diseño y construcción de sistemas tolerantes a fallas consiste
 en garantizar que el sistema continúe funcionando de manera correcta como
 un todo, incluso en presencia de fallas.

 Es necesario entonces, que el sistema sea capaz de recuperarse de las fallas, necesitamos deshacernos del estado de error del sistema, en otras palabras, la recuperación de un fallo, es un proceso que involucra la restauración de un estado erróneo a un estado libre de error.


3.7 SISTEMAS DISTRIBUIDOS EN TIEMPO REAL


Los sistemas de tiempo real son aquellos que interactúan con el mundo exterior donde el tiempo es un factor importante.

CARACTERÍSTICAS.

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

CLASIFICACIÓN.

Los sistemas de tiempo real se clasifican en general en dos tipos dependiendo de lo serio de sus tiempos límite y de las consecuencias de omitir uno de ellos. Estos son:

  1. Sistema de tiempo real suave.
  2. Sistema de tiempo real duro.


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

Ejemplo de sistema de tiempo real suave.

Conmutador telefónico.

Ejemplo de sistema de tiempo real duro.

Alarma sísmica.



UNIDAD 3.PROCESOS Y PROCESADORES EN SISTEMAS DISTRIBUIDOS

UNIDAD 3. Procesos y procesadores en Sistemas Distribuidos


 3.1 Procesos y procesadores, conceptos básicos

 3.2 Hilos y multihilos

 3.3 Modelos de procesadores
      3.3.1 De estación de trabajo
      3.3.2 De pila de procesadores
      3.3.3 Híbrido

 3.4 Asignación de procesadores
      3.4.1 Modelos y algoritmos con sus aspectos de diseño e implementación

 3.5 Coplanificación

 3.6 Tolerancia a fallos

 3.7 Sistemas distribuidos de tiempo real