![]() |
Memoria compartida distribuida |
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. Debido a esto, el concepto de memoria compartida distribuida es
reconocido como uno de los enfoques más atractivos para la creación de sistemas
escalables, de alto rendimiento de sistemas multiprocesador. es una abstracción
utilizada para compartir datos entre computadores que no comparten memoria
física, accesible para leer y actualizar, dentro de sus espacios de
direcciones, sobre lo que aparenta ser la memoria interna normal asignada a un
proceso. Sin embargo, existe un sistema subyacente en tiempo de ejecución que
asegura de forma transparente que procesos diferentes ejecutándose en
computadores diferentes observen las actualizaciones realizadas entre ellas. Es
como si 1os procesos accedieran a una única memoria compartida, pero de hecho
la memoria física está distribuida.
Principales características
- Ahorra al programador todo lo concerniente al paso de mensajes al escribir sus aplicaciones, cuestión que en otro sistema debería tenerse muy presente.
- Es fundamentalmente una herramienta para aplicaciones paralelas o para aplicaciones o grupos de aplicaciones distribuidas en las que se puede acceder directamente a datos individuales que ellas comparten.
- Es menos apropiado para sistemas cliente-servidor, ya que los clientes ven al servidor como un gestor de recursos en forma de datos abstractos que se acceden a través de peticiones (por razones de modularidad y protección).
Configuración de los MCD
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. Debido a esto, el concepto de memoria
compartida distribuida es reconocido como uno de los enfoques más atractivos para
la creación de sistemas escalables, de alto rendimiento de sistemas
multiprocesador.
Fustigamiento (THRASHING):
Un sistema Memoria Compartida Distribuida está en fustigamiento cuando realiza un
gasto desmesurado de tiempo en la invalidación y transferencia de datos compartidos
en comparación con el tiempo empleado por los procesos de aplicación en la
realización de trabajo útil.
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.
Es
un sistema
distribuido, tales como una mememoria compartida distribuida o almacenes de datos distribuido, tales como una base de datos, sistema de archivos,
caché web o sistemas
de replicación optimista, hay una serie de posibles modelos de consistencia de
datos. Se dice que un sistema soporta un determinado modelo, si las operaciones
en memoria siguen normas específicas. La consistencia de los datos es definida
entre el programador y el sistema, que garantiza que si el programador sigue
las reglas, la memoria será consistente y el resultado de las operaciones de
memoria será predecible.
Los lenguajes de alto nivel, tales como C, C++ y Java,
respetan parcialmente este modelo traduciendo operaciones de memoria en
operaciones de bajo nivel para preservar la memoria semántica. Para mantener el
modelo, los compiladores pueden reordenar algunas instrucciones de memoria, y
las llamadas a las bibliotecas como pthread_mutex_lock(), encapsular la
sincronización necesaria.
Los ejemplos incluyen:
Consistencia secuencial
Coherencia
Consistencia débil
Consistencia relajada
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.
¿Qué son los objetos?
Estructura de datos encapsulada definida por el
programador. Se componen de datos internos (estado) y operaciones o métodos.‡
Cumplen con la propiedad de ocultamiento dela información, por lo que
contribuyen con la modularidad.No existe una memoria lineal en bruto. La localización y administración de los objetos es
controlada por el sistema de tiempo de ejecución. Los objetos se pueden duplicar o no. En caso de
duplicarse, hay que decidir cómo se harán las actualizaciones. Evitan el
compartimiento falso. Sus principales desventajas son que no soportan programas
multiprocesadores antiguos y el costo adicional que genera el acceso indirecto
a los datos. 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.
No hay comentarios:
Publicar un comentario