Académique Documents
Professionnel Documents
Culture Documents
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 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.
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.
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.
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
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.
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
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
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
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.
P1
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.
Ncleo
El ncleo redirige los fallos de pgina al gestor de niveles de usuario
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.
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.
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).
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
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.
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