You are on page 1of 66

Memoria Compartida Distribuida

Efran Pinto Friedrich Gonzlez Miguel Ojea

Memoria Compartida Distribuida con Base en Pginas


Diseo Bsico Rplica Granularidad Obtencin de la Consistencia Secuencial

Bsqueda del Propietario Bsqueda de las Copias

Reemplazo de Pginas Sincronizacin

Introduccin
Sistemas clsicos (NORMA) Referencia a memoria local y remota. Primeras investigaciones orientadas a reusabilidad del cdigo Tratan de implementar consistencia secuencial

Consistencia Secuencial

El resultado de cualquier ejecucin es el mismo que si las operaciones de todos los procesadores fueran ejecutadas en algn orden secuencial, y las operaciones de cada procesador individual aparecen en esta secuencia en el orden especificado por su programa Todos los procesadores ven todas las referencias a memoria en el mismos orden Los resultados no son deterministas

Consistencia Secuencial

Dos ejecuciones del mismo programa podran no arrojar el mismo resultado a menos que se utilicen operaciones explicitas de sincronizacin

Diseo Bsico
Emulan cache monitor de los multiprocesadores mediante software Espacio de memoria dividido en pedazos repartidos entre las memorias de los CPUs El direccionamiento remoto implica traer el pedazo de memoria completo

Rplica
Incrementa el rendimiento Rplica de pedazos de solo lectura Rplica de pedazos de lectura-escritura Inconsistencia

Granularidad
Tamao del pedazo de memoria que se replica Fallo de pgina Traer pgina completa vs. Traer varias pginas Comparticin falsa Compiladores inteligentes

Obtencin de la Consistencia Secuencial


Problema: Rplicas de pginas de lecturaescritura Averiguar palabra a escribir y su valor Problema: Actualizaciones simultaneas Solucin: Esquema de invalidacin Protocolo de invalidacin Se garantiza consistencia

Obtencin de Consistencia Lectura - Caso 1

Se efecta la lectura

Obtencin de Consistencia Lectura - Caso 2

Se efecta la lectura

Obtencin de Consistencia Lectura - Caso 3

Se efecta la lectura

Obtencin de Consistencia Lectura - Caso 4

Se efecta la lectura

Obtencin de Consistencia Lectura - Caso 5


Se solicita una copia Se marca la pgina como R Se efecta la lectura

Obtencin de Consistencia Lectura - Caso 6


Se solicita una copia Se solicita la degradacin de la pgina a estado R Se efecta la lectura

Obtencin de Consistencia Escritura - Caso 1

Se efecta la escritura

Obtencin de Consistencia Escritura - Caso 2


Degradar pgina a estado W Se efecta la escritura

Obtencin de Consistencia Escritura - Caso 3


Solicitar invalidacin de copias Degradar pgina a estado W Se efecta la escritura

Obtencin de Consistencia Escritura - Caso 4


Solicitar invalidacin de las copias Solicitar propiedad Degrada la pgina a estado W Se efecta la escritura

Obtencin de Consistencia Escritura - Caso 5


Solicitar invalidacin Solicitar propiedad Solicitar copia Degrada la pgina a esatdo W Se efecta la escritura

Obtencin de Consistencia Escritura - Caso 6


Solicitar invalidacin Solicitar propiedad Solicitar copia Degrada la pgina a estado W Se efecta la escritura

Obtencin de la Consistencia Secuencial Bsqueda del Prop.


Buscar directamente al propietario Usar controlador de pginas Multiples controladores de pginas Registro de probables propietarios

Obtencin de la Consistencia Secuencial Bsqueda de Copias


Medio de transmisin no-confiable Lista del conjunto de copias Protocolo de invalidacin

Reemplazo de Pginas
Buscar pgina para sacar de memoria Pgina poseida por otro proceso Pgina duplicada del proceso saliente Pgina no duplicada Transmitir nmero de marcos libres Problema de comparticin activa

Sincronizacin
Enfoque tradicional puede causar un desastre en el desempeo Controlador de sincronizacin

Memoria Compartida Distribuida con Variables Compartidas

Munin:
Consistencia de liberacin. Protocolos mltiples. Directorios. Sincronizacin.

Midway:
Consistencia de entrada. Implantacin.

Introduccin MCDVC
Se comparten variables. Duplicacin. Duplicacin parcial o total. Algoritmo de actualizacin. No hay comparticin falsa.

Munin
Se basa en objetos del software (usa MMU). Declaraciones con shared. Una variable compartida por pgina (por defecto). Instrucciones normales de lectura y escritura. No hay mtodos de proteccin especiales.

Consistencia De Liberacin (Munin)


Regiones criticas. Adquisicin y liberacin. No hay garanta en regiones crticas. Clases de variables:

Variables ordinarias. Variables de datos compartidos. Variables de sincronizacin.

Consistencia De Liberacin (Munin)

Operacin bsica con variables ordinarias:


No se comparten. Solo son accedidas por el proceso que las creo.

Consistencia De Liberacin (Munin)

Operacin bsica con variables de datos compartidos:


Son declaradas como tales.

Consistencia De Liberacin (Munin)

Operacin bsica con variables de sincronizacin:


Son accedidas mediante procedimientos de acceso proporcionados por el sistema. Cerraduras: lock y unlock. Barreras: increment y wait.

Protocolos Mltiples (Munin)

Categoras de variables:
Exclusiva para lectura. Migratoria. De escritura compartida. Convencional.

Protocolos Mltiples (Munin)

Exclusiva para lectura:


Ocurre un fallo de pgina. Busca la variable en el directorio. Solicita la pgina al propietario. La pgina se duplica.

No hay modificacin. No hay inconsistencia. Protegidas por el MMU. (Provoca error fatal cualquier intento de escritura).

Protocolos Mltiples (Munin)

Migratoria:
Ocurre un fallo de pgina. Busca la variable en el directorio. Solicita la pgina al propietario. Se copia en la maquina que la va a usar. Se elimina la copia original. El propietario pasa a ser el proceso que la va a usar.

No hay duplicacin.

Protocolos Mltiples (Munin)

De escritura compartida:
Al principio se utilizan como exclusivas para lectura. Ocurre una escritura. Marca la pgina como sucia y crea una copia de la pgina. Termina la modificacin y enva las paginas que fueron modificadas. Se restablece la exclusividad para lectura.

Protocolos Mltiples (Munin)

De escritura compartida:

Protocolos Mltiples (Munin)

Actualizacin en el que recibe la modificacin:


Si no ha sido modificada localmente actualiza todo. Si ha sido modificada localmente compara palabra por palabra: la copia local, gemelo y pagina recibida.

Protocolos Mltiples (Munin)

Actualizacin:
Accin Se escribe la recibida Se escribe la recibida Error de tiempo de ejecucin

Palabra Local

Palabra Recibida No fue Fue o no fue modificada modificada. Fue modificada No fue modificada Fue modificada Fue modificada

Protocolos Mltiples (Munin)

Convencionales:
Solo se permite una copia de cada pagina que se pueda escribir. Se desplaza de un proceso a otro.

Directorios (Munin)

Contienen:
Categora. Propietario. Si existe copia local.

Directorios (Munin)
a) b) c)

Algoritmo para encontrar propietario. Despus que P1 y P2 solicitan. Despus que P3 y P4 solicitan. Despus que P1 solicita de nuevo.

Directorios (Munin)
Registro del conjunto de copias. No hay consistencia.

Sincronizacin (Munin)

Cerraduras centralizadas:
Se obtiene el propietario de la cerradura en el directorio.(Contiene un registro probable) Si el mismo es el propietario y esta libre se otorga el pedido. Si la cerradura no es local y esta libre se otorga el pedido. Si la cerradura no es local y no esta libre se agrega al final de la cola.

Sincronizacin (Munin)

Barreras con servidor central.


Se recibe la cantidad de procesos que estn esperndola. Cada proceso enva el mensaje al servidor de que ya termin su tarea. El servidor central enva el mensaje para que todos los procesos sean liberados.

Midway
Compartir estructuras de datos individuales. C, C++ o ML convencional con informacin adicional. Mantiene consistentes las variables compartidas de manera eficiente.

Consistencia De Entrada (Midway)


Cerraduras exclusivas y no exclusivas. Limitaciones al programador:

La comparticin de variables debe ser explcita. Cada variable debe estar asociada con una cerradura o barrera. Solo deben accesarse las variables compartidas dentro de las secciones crticas.

La actualizacin no es inmediata.

Implantacin (Midway)

La adquisicin de cerraduras exclusivas:


Utiliza la cadena distribuida de propietarios sucesivos para encontrar el proceso propietario. Si el proceso propietario no la esta usando la adquiere. Si el proceso propietario la esta usando el solicitante espera.

Implantacin (Midway)

La adquisicin de cerraduras no exclusivas:


Obtiene la copia de cualquier proceso que tenga la copia de la pgina.

Las barreras son centralizadas.

Implantacin (Midway)

Actualizacin:
Solo enva las actualizaciones necesarias Mantiene un registro de actualizacin indicando a que proceso actualiz y en que tiempo. Cada maquina mantiene un reloj lgico. Hay muy buen desempeo en comunicacin.

Introduccin a DSM basada en objetos


Nace como respuesta a la creciente popularizacin de los lenguajes orientados por objetos. Los datos se organizan y son transportados en unidades de objetos, no unidades de pginas. Es un modelo de programacin de DSM de alto nivel.

Qu son los objetos?


Estructura de datos encapsulada definida por el programador. Se componen de datos internos (estado) y operaciones o mtodos. Cumplen con la propiedad de ocultamiento de la informacin, por lo que contribuyen con la modularidad.

Sistemas DSM basados en objetos


Los procesos de varias mquinas comparten un espacio abstracto ocupado por objetos compartidos. No existe una memoria lineal en bruto. La localizacin y administracin de los objetos es controlada por el sistema de tiempo de ejecucin.

Sistemas DSM basados en objetos (II)


Los objetos se pueden duplicar o no. En caso de duplicarse, hay que decidir cmo se harn 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.

El Sistema Linda
El acceso a memoria se hace mediante un pequeo conjunto de primitivas que se agregan a los lenguajes existentes. Las ventajas son que no hay que aprender un nuevo lenguaje, es sencillo de implantar y es portable. Se basa en un espacio de n-adas global a todo el sistema.

Las n-adas de Linda


Son anlogas a las estructuras de C. Las operaciones sobre ellas son restringidas; slo se soportan cuatro operaciones:

out(matrix-I, i, j, 3.14) in(abc, 2, ?i) read(abc, 2, ?i) eval(X,Y,Z), con X,Y,Z expresiones.

Implantacin de Linda
Para todas las implantaciones, existe un preprocesador de Linda. Toda implantacin debe resolver: - Direccionamiento sin bsqueda masiva. - Distribucin y localizacin de n-adas.

La clave es la firma de tipo de cada n-ada.

Implantacin de Linda (II)

En cuanto al hardware: - En un multiprocesador subespacios implantados como tablas de hash en memoria global. - En una multicomputadora a) Si hay transmisin confiable: Se pueden duplicar los subespacios. Se pueden hacer out locales.

Implantacin de Linda (III)


Se puede usar sistema de rplica parcial. b) Si no se soporta broadcast, se determina el subespacio correspondiente a la n-ada y se enva un mensaje.

El Sistema Orca
El acceso a memoria se basa en un esquema de objetos protegidos. Consta del lenguaje, el compilador y el sistema de tiempo de ejecucin. Se basa en Mdula 2. Los objetos son pasivos y no se soporta la herencia.

El Sistema Orca (II)


Cada operacin consta de una lista (proteccin, bloque de enunciados). Cuenta con una operacin fork, en la que se basa la distribucin de objetos. Las operaciones son atmicas y secuencialmente consistentes. Usa sincronizacin de la exclusin mutua y sincronizacin de condiciones.

Administracin de objetos en Orca


Es controlada por el sistema de tiempo de ejecucin. Cada objeto tiene dos posibles estados: nica copia o duplicado. Para cada operacin, se llama a invoke_op, que acta de acuerdo al caso: - Objeto no duplicado local.

Administracin de objetos en Orca (II)


- Objeto no duplicado remoto. - Objeto duplicado y operacin lectura. - Objeto duplicado y operacin escritura.

Se basa en transmisin confiable basada en un secuenciador. Si no hay transmisin confiable, se usa un algoritmo de copia primaria de dos fases. Existe un mecanismo para decidir duplicacin.

Comparacin
IVY imita un multiprocesador, haciendo paginacin a travs de la red. Usa consistencia secuencial. Su problema es el desempeo. Munin y Midway mejoran el desempeo con informacin del programador. Midway soporta slo un tipo de variable compartida y tres protocolos de consistencia (de entrada, de liberacin y de procesador).

Comparacin (II)
Munin soporta cuatro tipos de variables (read-only, migratoria, de escritura compartida y convencional) y slo soporta consistencia de liberacin. En Midway y Munin la sincronizacin y acceso a los datos son tarea del programador, mientras que en Linda y Orca los maneja el propio sistema.

Comparacin (III)
Munin y Midway permiten la programacin en C y C++ ligeramente modificados, al igual que Linda; Orca usa un lenguaje completamente nuevo. La DSM basada en pginas slo soporta invalidacin de copias, no actualizacin. Adems, permite compartimiento falso; los otros tipos de DSM no.

You might also like