Memoria Compartida Distribuida.
Definición.
Los sistemas de memoria compartida distribuida (DSM)
representan la creación hibrida de dos tipos de computación paralelos: la
memoria distribuida en sistemas multiprocesador y los sistemas distribuidos.
Ellos proveen la abstracción de memoria compartida en sistemas con memorias
distribuidas físicamente y consecuentemente combinan las mejores
características de ambos enfoques.
Modelos de Consistencia.
La cuestión de la consistencia
adquiere importancia en los sistemas DSM que replican el contenido de la
memoria compartida mediante su almacenamiento en las cachés de computadores
separados. Cada proceso tiene un gestor de réplicas local, el cual está
encargado de mantener copias en caché para los objetos. En la mayor parte de
las implementaciones, los datos se leen desde las réplicas locales por
cuestiones de eficiencia, pero las actualizaciones deben propagarse al resto de
gestores de réplica.
Memoria Compartida Distribuida con base en páginas.
El
esquema de DSM propone un espacio de direcciones de memoria virtual que integra
la memoria de todas las computadoras del sistema, y su uso se realiza mediante
paginación. Las páginas quedan restringidas a estar necesariamente en un único
nodo. 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 nodos. 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 nodo 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.
Memoria Compartida Distribuida con Variables.
Un método más estructurado
que la DSM con base a páginas consiste en compartir sólo ciertas variables y
estructuras de datos necesarias para más de un proceso. Ahora el problema pasa
a ser la forma de mantener una base de datos distribuida, en potencia
duplicada, consistente en las variables compartidas.
Mas Informacion
Memoria Compartida Distribuida basada en objetos.
Mas Informacion
Memoria Compartida Distribuida basada en 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.
Casos de estudio.
La memoria compartida
distribuida se implementa utilizando uno de los siguientes métodos o bien una
combinación de ellos, hardware especializado, memoria virtual paginada
convencional o middleware:
Hardware: las arquitecturas multiprocesador de memoria compartida basadas en
una arquitectura NUMA (por ejemplo, Dash [Lenoski y otros 1992] y PLUS
[Bisiani y Ravishankar 1990] se basan en hardware especializado para
proporcionar a los procesadores una visión consistente de la memoria
compartida. Gestionan las instrucciones de acceso a memoria LOAD y STORE de
forma que se comuniquen con la memoria remota y los módulos de caché según sea
necesario para almacenar y obtener datos. Esta comunicación se realiza sobre
sistemas de interconexión de alta velocidad similares a una red. El prototipo
del multiprocesador Dash tiene 64 nodos; conectados mediante una arquitectura
NUMA.
Memoria virtual paginada: muchos sistemas, incluyendo Ivy [Li y Hudak 1989], Munin [Carter y
otros 1991], Mirage [Fleisch y Popek 1989], Clouds [Dasgupta y otros 1991],
Choices [Sane y otros 1990], COOL (Lea y otros 1993] y Mether [Minnich y Farber
1989], implementan DSM como una región de memoria virtual que ocupa el mismo
rango de direcciones en el espacio de direcciones de cada proceso participante.
Este tipo de implementación normalmente sólo es factible sobre una colección de
computadores homogéneos con formatos de datos y de paginación comunes.
Middleware: algunos lenguajes del tipo de Orca [Bal y otros 1990] y middleware
como Linda [Carriero y Gelernter 1989] junto con sus derivados JavaSpaces y
TSpaces [Wyckoff y otros 1998] proporcionan DSM sin necesidad de soporte
hardware o de paginación, de una forma independiente de la plataforma.
Vídeos:
No hay comentarios:
Publicar un comentario