sábado, 17 de noviembre de 2012

4 Memoria Compartida Distribuida.


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



4.1 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.
Circuitos Basados en Bus, anillo o con conmutador.
Arquitecturas de MCD 
Existen varias formas de implantar físicamente memoria compartida distribuida, a continuación se describen cada una de ellas. 
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. 

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 


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. 

4.2 Modelos de Consistencia.
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 con cada escritura es necesario actualizar todas las copias, el envío de las páginas por la red provoca que el tiempo de espera aumente demasiado, convirtiendo este método en impracticable. Para solucionar este problema se proponen diferentes modelos de consistencia, que establezcan. 
Nombramos algunos modelos de consistencia, del más fuerte al más débil: consistencia estricta, secuencial, causal, PRAM, del procesador, débil, de liberación y de entrada.
Estricta Causal Secuencial Débil, de liberación y de entrada.


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 item de dato x retorna un valor correspondiente con la más reciente escritura sobre x 
Consistencia Causal
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. 
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.
Consistencia liberación (Reléase)
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.


4.3 Memoria Compartida Distribuida EN BASE A PAGINAS

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.

DISEÑO, REPLICA, GRANULARIDAD, CONSISTENCIA, PROPIETARIO Y COPIAS.
El sistema operativo, y en el caso del protocolo de consistencia de entrada, por acciones de sincronización explícitas dentro del código del usuario. El hecho que la especificación se encuentre dispersa dificulta tanto la incorporación de nuevos protocolos de consistencia como la modificación de los ya existentes, debido a que los componentes tienen además de su funcionalidad básica responsabilidades que no les corresponden.

4.4 Memoria Compartida Distribuida EN BASE A VARIABLES


La comparticion falsa se produce cuando dos procesos se pelean el acceso a la misma pagina 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 paginas y por la poca relación existente entre variables de la misma pagina.
En los MCD basados en variables se busca evitar la comparticion 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 paginas o en la misma pagina muchas variables del mismo tipo, en este protocolo es muy importante declarar las variables comparitdas. 

4.5 Memoria Compartida Distribuida EN BASE A OBJETOS. 

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.

4.6 Administradores de memorias en clusters



Un cluster debe comportarse como una sóla máquina Ambientes de gestión de recursos (PBS, SGE) y otro tipo de enfoques como Mosix, cumplen con este propósito desde el punto de vista de utilización
Las herramientas de instalación también facilitan la construcción del cluster. Sin embargo, la administración aún se realiza nodo a nodo.


El administrador de un cluster debe tomar en cuenta algunos aspectos, una vez que se ha completado la instalación de los recursos básicos de hardware y software. Estos aspectos incluyen la configuración e instalación de un sistema de archivos universal, la configuración y administración de recursos mediante herramientas implementadas en software; el monitoreo de sus actividades y el registro de cada uno de los eventos generados por la ejecución de cálculos computacionales.
Varios de los sistemas más importantes para la instalación automática de clusters, incluyen herramientas de monitoreo, administración y registro de eventos mediante paquetes de distribución para sistemas Windows y Linux. Entre estos sistemas están OSCAR y Rocks NPACI; ambos sistemas permiten el uso de herramientas de software que tienen propósitos específicos tales como:
• Definición y administración de nodos.
• Administración de colas por lotes (Batch Queue Management).
• Administración de recursos: grupos NIS (Network Information Service), cuotas de disco y CPU.
• Administración de servicios de resolución de nombres : DNS (Domain Name System para clusters)..
• Registro de usuarios para clusters de dimensiones superiores a los 100 nodos.
• Monitoreo de carga.
La administración de clusters, implica tomar medidas preventivas y planificar tareas. La administración implica los siguientes aspectos:
• Registro de eventos.
• Monitoreo o medida del estado de los recursos del cluster.
• Recuperación ante fallos de hardware, software, incluyendo el sistema de archivos.
• Administración del registro de usuarios y grupos de usuarios, de los servicios del cluster (accounting).
• Planificación de tareas y balanceo de carga.


No hay comentarios:

Publicar un comentario