Vous êtes sur la page 1sur 38

Memoria Compartida Distribuida

Carina Giron Miguel Martnez

De qu se trata


La memoria compartida distribuida (DSM) es una abstraccin utilizada de compartir datos entre computadores que no comparten memoria fsica. Los procesos acceden a DSM 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 ejecucin que asegura de forma transparente que procesos diferentes ejecutndose en computadores diferentes observen las actualizaciones realizadas entre ellas. Es como si los procesos accedieran a una nica memoria compartida, pero de hecho la memoria fsica est distribuida. distribuida. Su principal objetivo es el procesamiento paralelo y la camparticin de datos.

Memoria Compartida Distribuida

Proceso accediendo a DSM

DSM se muestra como Memoria en el espacio de direcciones del Proceso

Memoria fsica

Memoria fsica

Memoria fsica

DSM utiliza:


Gestin de Replicas: cada computadora tiene una copia local de aquellos datos almacenados en DSM que se usaron recientemente para acelerar su acceso.  Pasaje de mensajes: no se elimina completamente pues se lo utiliza para enviar actualizaciones entre las computadoras.

DSM frente a pasaje de mensajes


 1.

2.

Son comparables por: Modelo de programacin: En pasaje de programacin: mensaje se utiliza el empaquetamiento y desempaquetamiento de datos para compartirlos. En DSM no es necesario. La sincronizacin es implicita en pasaje de mensaje y en DSM se utilizan ecanismos como bloques y semaforos. En DSM no es necesario la ejecucin solapada como en pasaje de mensaje. Eficiencia: Eficiencia: en pasaje de mensaje los accesos remotos son explcitos pero en DSM no pues no se sabe si se accede a un dato local al proceso o hay una comunicacin por medio.

Aproximaciones hacia la implementacin


DSM se implementa utilizando uno de los siguientes mtodos o bien una combinacin de ellos:  Hardware especializado  Memoria virtual paginada convencional  Middleware

Hardware especializado
 

Se basa en la arquitectura NUMA. Gestionan las instrucciones LOAD y STORE para que los procesos se comuniquen con la memoria remota y los mdulos de cach. Se comunican mediante interconexiones de alta velocidad similares a una red. Utilizan tcnicas de software de alto nivel para minimizar la cantidad de comunicaciones entre los componentes de una implementacin DSM.

Memoria virtual paginada


Utiliza memoria virtual que ocupa un mismo rango de direcciones en el espacio de direcciones de los procesos participantes.  Solo se puede utilizar entre computadoras homogneas con los formatos de datos y de paginas comunes.  Actualmente se implementan, mayoritariamente, a nivel de usuario por su flexibilidad.


Middleware


Se realiza mediante comunicacin entre niveles de soporte de usuario de los cliente y los servidores. Se realizan llamadas a este nivel para el acceso a datos en DSM. Capa instancia accede a los datos locales y se intercambian informacin para mantener la consistencia. Permite abstraccin de mayor nivel sobre los objetos compartidos, en lugar de hacerlo sobre posiciones de memoria compartida.

Diseo e implementacin
Aspectos que deben considerarse en el diseo de una DSM.  Estructura.  Modelo de sincronizacin.  Modelo de consistencia.  Opciones de actualizacin.  Granularidad.  Thrashing

Estructura del espacio de memoria compartida


 

  1.

2.

3.

La estructura define la abstraccin de la vista a los programadores de aplicaciones en un sistema DSM. Puede ser vista para unos como palabra y para otros como objetos. No estructurada: es un arreglo de palabras. Por tipo de datos: Orientado a byte: se usa como la memoria virtual ordinaria (Mether , Ivy). Se almacena cualquier tipo de estructura en la memoria compartida. Los objetos compartidos son direccionables. Solo se permite operaciones de LOAD y STORE. Orientado a objetos: se usa una estructura de pila o diccionario (Orca, Clouds). Los elementos de la memoria compartida se modifican solo mediante invocaciones sobre el objeto. Datos inmutable: es una coleccin de datos inmutables que los procesos pueden leer, sumar y eliminar (Agora, Linda). Por ejemplo las tuplas.

Modelo de sincronizacin


Las construcciones de sincronizacin se hace mediante pasaje de mensajes.  La instruccin TestAndSet se puede aplicar a sistemas DSM basados en paginas pero su implementacin puede ser ineficiente.  La sincronizacin es a nivel de aplicacin para reducir la cantidad de transmisiones de actualizacin.  Incluye la sincronizacin como componente integrado.

Modelos de consistencia


 1. 2.

Se utiliza en sistemas DSM con replicas de contenido. Cada proceso tiene un gestor de replicas local, que se encarga de tener copias en la cach de los objetos. La actualizacin de los objetos se propaga a los dems gestores de replicas. Principales modelos de consistencia: Consistencia secuencial. Consistencia dbil.

Consistencia secuencial


 

Lamport (1979) : Un sistema soporta consistencia secuencial si todos los procesos ven el mismo orden de todas las operaciones de acceso a memoria en la DSM. No importa el entrelazado de las operaciones. No garantiza que una lectura devuelve el valor mas recientemente escrito. Si un programa repite la corrida puede no producir los mismos resultados. Implementacin: asegurar que una operacin de memoria no comience hasta que todas las previas se hayan completado. Todos los procesos que comparten la memoria siempre ven el mismo contenido en ella.

Entrelazado bajo la consistencia secuencial


Proceso 1
br:= b; ar:= a; If (ar >= br) then printf(Bien);
Tiempo

Lee

Proceso 2
a:= a + 1; b:= b + 1;

Escribe

Coherencia


Cada proceso llega a acuerdos sobre el orden de las operaciones de escritura sobre la misma posicin, pero no acuerdan necesariamente el orden de las operaciones de escritura sobre posiciones diferentes Se la puede pensar como una forma de consistencia secuencial realizada posicin a posicin. Los sistemas DSM coherentes pueden implementarse mediante un protocolo para implementar la consistencia secuencial aplicada de forma separada a cada unidad de datos replicados (por ejemplo, a cada pgina). El ahorro se produce del hecho de que los accesos a dos pginas diferentes se hacen de forma independiente y no existe retardo entre ellos al aplicarse el protocolo de forma separada a ambos.

Consistencia dbil
 

   1.

2.

3.

Dubois et al 1988 Observaciones: No es necesario mostrar inmediatamente a otros procesos cambios en la memoria hechos por cada operacin de escritura. Los resultados de varias operaciones de escritura pueden ser combinados y enviados a otros procesos solo cuando ellos lo necesitan. Son raros los accesos aislados a variables compartidas. Implementacin: se usa una variable de sincronizacin. Para soportar la consistencia dbil se debe cumplir: Todos los accesos a las variables de sincronizacin deben obedecer a la semntica de consistencia secuencial. Deben completarse todas la operaciones previas de escritura, en todos lados, antes de permitir un acceso a las variables de sincronizacin. No se permite realizar un acceso a los datos (lectura o escritura) hasta completar todos los accesos anteriores a las variables de sincronizacin.

Opciones de actualizacin

Hay dos posibles opciones: Escritura actualizante Escritura invalidante

Escritura actualizante


Las actualizaciones se hacen localmente y se enva a todos los dems gestores de replicas una copia, los cuales modifican inmediatamente el dato ledo por los procesos locales. Normalmente son implementadas por hardware pero hay implementaciones por software que utilizan multicasting totalmente ordenado.
Actualiza el bloque
Nodo Cliente tiene una copia valida del bloque de datos despus de la operacin de escritura Nodos tienen copias validas de bloques de datos antes de la escritura

Requiere bloque Replica de bloque Actualiza el bloque Actualiza el bloque

Escritura invalidante
 

En un instante una posicin puede ser accedida para lectura por uno o ms procesos. Puede ser copiada a cualquier otro proceso. En la escritura solo un proceso puede acceder a la posicin. Para hacerlo debe enviar un mensaje a todas sus copias para invalidarlas y se espera una respuesta antes que la escritura tenga lugar. Si un proceso intenta acceder al dato se bloquea. Finalmente, el control se transfiere desde el proceso escritor, y se puedan realizar otros accesos una vez que la actualizacin haya sido enviada. El resultado es que se procesan todos los accesos al dato mediante una poltica del tipo FIFO. Se adaptan mejor a sistemas DSM basados en paginas.

Invalida bloque
Nodo Cliente tiene una copia valida del bloque de datos despus de la operacin de escritura

Requiere bloque Replica de bloque Invalida bloque Invalida bloque

Nodos tienen copias validas de bloques de datos antes de la escritura

Granularidad


1. 2. 3. 4.

La estructura y la granularidad est relacionadas. Problemas que se presentan con el tamao del bloque: Sobrecarga de paginado Tamao de directorio Thrashing Falso compartir

Falso compartir
 

Dos o ms procesos comparten zonas de una pgina, pero solo uno de ellos realmente accede a cada zona. En el protocolo de escritura invalidante puede derivar en invalidaciones innecesarias. En el protocolo de escritura actualizante puede ocurrir que las pginas sean sobrescritas con versiones antiguas.

El proceso P1 accede a datos de esta rea

P1

El proceso P2 accede a datos de esta rea

P2

Granularidad
Ventajas de usar un tamao de bloque igual a la pgina de memoria local:  Permite el uso de sistemas existentes de falta de pginas  Permite el control de derechos de acceso  Si las pginas pueden colocarse en un paquete no impone sobrecarga en la red  El tamao es adecuado con respecto a la contencin de memoria

Thrashing


Puede ocurrir cuando se utiliza invalidacin de escritura. Consiste en la transferencia repetida de datos entre procesos competidores a costa del progreso de la aplicacin. Este efecto puede ser reducido mediante la sincronizacin a nivel de aplicacin, permitiendo a las computadoras retener una pgina durante una mnima cantidad de tiempo, o mediante el etiquetado de los datos de forma que las lecturas y las escrituras sean concedidas conjuntamente.

Consistencia secuencial e Ivy


El modelo de sistema  Una coleccin de procesos comparten un segmento de DSM  El segmento se hace corresponder sobre el mismo rango de direcciones en cada proceso, de forma que sobre l se pueden almacenar valores de punteros significativos  Los procesos se ejecutan sobre memoria paginada con permiso de acceso. Asumiremos que nicamente hay un proceso que accede al segmento DSM en cada computadora.  Ante un fallo de pgina el ncleo lo redirige a un manejador especificado por el nivel de soporte en tiempo de ejecucin de DSM para cada proceso.  El manejador de fallos de pgina realiza un procesamiento especial del mencionado fallo de pgina..

Consistencia secuencial e Ivy


Memoria Compartida Distribuida

Proceso accediendo al segmento de pgina de DSM

Ncleo
El ncleo redirige los fallos de pgina al gestor de niveles de usuario

Consistencia secuencial e Ivy


El problema de la escritura actualizante  En sistemas DSM basados en pginas solo se la utiliza si la escritura se puede ser almacenada en buffers y la pagina tenga permiso de escritura despus de un fallo de pgina inicial y se permite hacer varias escrituras antes que la pagina sea propagada.

Invalidacin de escritura


Estos algoritmos utilizan proteccin de pgina para forzar la consistencia en la comparticin de datos. En la actualizacin de la pgina el proceso tiene localmente permiso lectura y escritura y el resto no tiene permiso de acceso a la pgina. Si uno o ms procesos leen de una pgina solo tiene permiso de lectura y el reto no tiene permiso de acceso. Proceso P: es el proceso que tiene la versin actualizada de la pagina. Es el propietario(P): Proceso C: son los procesos que tienen una copia de una pgina P. Conjuntocopia(P).

Invalidacin de escritura


1.

2. 3. 4. 5.

Si un proceso propietario Pw en una pgina donde no tiene acceso o tiene permiso de lectura se genera un fallo y el manejador sigue estos pasos: Si Pw no tiene copia actualizada de p se le transfiere. Se invalidad el resto de las copias. Conjuntocopia(p):= {Pw} Propietario(p):= Pw Sita la pgina en el espacio de direcciones de Pw y reinicia la instruccin que genero el fallo.

Invalidacin de escritura


1. 2.

3. 4.

Si un proceso Pr intenta leer una pgina sobre la que no tiene acceso se genera un fallo de pgina de lectura y el manejador sigue estos pasos: Se copia la pgina del propietario(p) a Pr. Si el propietario e un nico escrito entonces mantiene la propiedad y se coloca su permiso de acceso en solo lectura. Conjuntocopia(p):= conjuntocopia(p) U {Pr} Sita la pgina en el espacio de direcciones de Pr y reinicia la instruccin donde se produjo el fallo.

Protocolos de invalidacin.


Dos problemas importantes: 1. Cmo localizar el propietario de una pgina p. 2. Dnde almacenar conjuntocopia(p) Li y Hudak proponen tener un gestor para almacenar la direccin (a nivel de transporte) de propietario(p) para cada pgina p ms las direcciones de transporte de los miembros de conjuntocopia(p).

Protocolos de invalidacin.
1.

2.

3.

4.

Al producirse la falla de pgina el proceso local enva al gestor el numero de pgina y el tipo de acceso. El gestor busca la direccin de propietario(p) y le reenva la solicitud. Si el fallo es de escritura le gestor lo coloca como nuevo propietario de p. las siguientes solicitudes se encolan en el proceso. El anterior propietario enva la pagina. Si fue fallo por escritura enva tambin el conjunto de copias. Se auto invalida. El proceso realiza la invalidacin. Espera la confirmacin de la invalidacin.

Alternativas para el gestor


 

1.

2.

3.

4.

Gestiones de pginas distribuida fija: mltiples gestores que se dividen en forma esttica las pginas entre ellos Gestin distribuida basada en multidifusin: al producirse un fallo se enva una multidifusin con la solicitud de la pgina. Solo responde el propietario de la misma. Gestin distribuida dinmica: se divide la sobrecarga de localizacin de pginas entre las computadoras que los utilizan. Cada proceso tiene una marca del propietario actual de la pgina p (propietario portable de p). Procesos para la actualizacin de marcas: Al transferir la propiedad de p a otro proceso, este se agrega como propietarioPortable(p). En una solicitud de invalidacin se marca como propietarioProtable(p) al solicitante. En la solicitud de lectura se marca como propietarioPortable(p) al que la proporcion. Si no es el propietario de p, se reenva la solicitud al propietarioPortable(p) y se marca como nuevo al solicitante.

Thrashing. Como evitarlo




Mirage asocia a cada pgina un intervalo de tiempo. Una vez que ha accedido a una pgina retiene el acceso por ese intervalo. Cualquier otra solicitud durante des tiempo es rechazada. Es difcil determinar el intervalo (esttico o dinmico).

Liberacin de consistencia y Munin


 1. 2.

Accesos a memoria: Accesos competitivos Accesos no competitivos.

Acceso competitivo


 1. 2. 

Puede ocurrir en forma concurrente y uno de los procesos involucrados es de escritura. Accesos de sincronizacin: Acceso de adquisicin Acceso de liberacin Acceso de no sincronizacin

Realizacin de operaciones asincrnicas




1.

2. 3.

Operaciones para incrementar la velocidad a la que se ejecutan los proceosos: Las escrituras pueden ser asincrnicas. Bsqueda anticipada de valores. Ejecucin fuera de orden.

Otros modelos de consistencia




 1. 2. 3. 

1. 2. 3.

Los modelos de consistencia de memoria se pueden dividir entre modelos uniformes, caracterizados por no distinguir entre diferentes tipos de accesos a memoria y modelos hbridos, los cuales distinguen entre accesos ordinarios y de sincronizacin (al igual que otros tipos de accesos). Otros modelos de consistencia uniforme son: Consistencia causal Consistencia de procesador RAM encauzada Adems de la consistencia relajada, otros modelos hbridos son los siguientes Consistencia con admisin Consistencia de mbito Consistencia dbil

Vous aimerez peut-être aussi