lunes, 21 de mayo de 2012

Configuraciones Memoria Compartida 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.
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.

UNIDAD 4 Memoria Compartida Distribuida MCD

Los sistemas de Memoria Compartida Distribuida (MCD) [50], [51] son sistemas que, mediante software, emulan semántica de memoria compartida sobre hardware que ofrece soporte solo para comunicación mediante paso de mensajes. 


Este modelo permite utilizar una red de estaciones de trabajo de bajo costo como una maquina paralela con grandes capacidades de procesamiento y amplia escalabilidad, siendo a la vez fácil de programar. 


El objetivo principal de estos sistemas es permitir que un multicomputador pueda ejecutar programas escritos para un multiprocesador con memoria compartida.

lunes, 7 de mayo de 2012

Sistemas Distribuidos Tiempo Real


  • La capacidad de procesamiento está distribuida entre varios computadores interconectados.
  • Las actividades del sistema tienen requisitos de tiempo.
  • Necesidad de sistemas distribuidos:
  • Requisitos de procesamiento.
  • Distribución física del sistema.
  • Fiabilidad: Tolerancia a fallos.
  • Los sistemas distribuidos de tiempo real (SDTR) son complicados de realizar.
  • Se consideran sistemas débilmente acoplados.
  • Comunicación mediante mensajes
  • El tiempo de comunicación es significativo.
  • Ej. Sistemas multimedia, SCADA, aviónica, fabricación integrada, robótica.
  • Distintos tipos de requisitos temporales
  • Se consideran, fundamentalmente, sistemas críticos

Coplanificacion


TOMA EN CUENTA LOS PATRONES DE COMUNICACION ENTRE LOS PROCESOS DURANTE LA PLANIFICACIÓN.
—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 EL MISMO N° DE ESPACIO DE TIEMPO PERO EN PROCESADORES DISTINTOS.

Modelos Algoritmos Diseño Implantació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.

Hibrido

Modelo Híbrido:
– Los trabajos interactivos se ejecutan en las estaciones de trabajo mientras que los no interactivos se ejecutan en la pila de procesadores.
• El Modelo de las Estaciones de trabajo suele coincidir en la actualidad con la mayoría de las organizaciones.
– Cuando se utiliza este modelo hay una serie de aspectos a tener en cuenta:
• La asignación de Procesos a los Procesadores.
• Los Algoritmos de Distribución de la Carga.
– • La Planificación de los Procesos en un Sistema Distribuido.


Asignación de Procesadores
Son necesarios algoritmos para decidir cuál proceso hay que ejecutar y en qué máquina [25, Tanenbaum].
Para el modelo de estaciones de trabajo:
  • Decidir cuándo ejecutar el proceso de manera local y cuándo es necesario buscar estaciónes inactivas o no locales que tienen una conexion a la misma red pero fuera de ella.
Para el modelo de la pila de procesadores:
  • Decidir dónde ejecutar cada nuevo proceso respecto de la misma maquina que es la tabla(lista) de los procesos que se crean dentro de la maquina.

El Modelo de la 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.
El modelo de pila es más eficiente que el modelo de búsqueda de estaciones inactivas.
También existe el modelo híbrido que consta de estaciones de trabajo y una pila de procesadores.