66
Memoria Compartida Memoria Compartida Distribuida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Embed Size (px)

Citation preview

Page 1: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Memoria Compartida DistribuidaMemoria Compartida Distribuida

Efraín Pinto Efraín Pinto Friedrich GonzálezFriedrich González Miguel OjeaMiguel Ojea

Page 2: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Memoria Compartida Distribuida Memoria Compartida Distribuida con Base en Páginascon Base en Páginas

Diseño BásicoDiseño Básico RéplicaRéplica GranularidadGranularidad Obtención de la Consistencia SecuencialObtención de la Consistencia Secuencial

– Búsqueda del PropietarioBúsqueda del Propietario– Búsqueda de las CopiasBúsqueda de las Copias

Reemplazo de PáginasReemplazo de Páginas SincronizaciónSincronización

Page 3: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

IntroducciónIntroducción

Sistemas clásicos (NORMA)Sistemas clásicos (NORMA) Referencia a memoria local y remota.Referencia a memoria local y remota. Primeras investigaciones orientadas a Primeras investigaciones orientadas a

reusabilidad del códigoreusabilidad del código Tratan de implementar consistencia Tratan de implementar consistencia

secuencialsecuencial

Page 4: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Consistencia SecuencialConsistencia Secuencial

El resultado de cualquier ejecución es el mismo El resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesadores que si las operaciones de todos los procesadores fueran ejecutadas en algún orden secuencial, y las fueran ejecutadas en algún orden secuencial, y las operaciones de cada procesador individual operaciones de cada procesador individual aparecen en esta secuencia en el orden aparecen en esta secuencia en el orden especificado por su programaespecificado por su programa

Todos los procesadores ven todas las referencias a Todos los procesadores ven todas las referencias a memoria en el mismos ordenmemoria en el mismos orden

Los resultados no son deterministasLos resultados no son deterministas

Page 5: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Consistencia SecuencialConsistencia Secuencial

Dos ejecuciones del Dos ejecuciones del mismo programa mismo programa podrían no arrojar el podrían no arrojar el mismo resultado a mismo resultado a menos que se utilicen menos que se utilicen operaciones explicitas operaciones explicitas de sincronizaciónde sincronización

Page 6: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Diseño BásicoDiseño Básico

Emulan cache monitor de los Emulan cache monitor de los multiprocesadores mediante softwaremultiprocesadores mediante software

Espacio de memoria dividido en pedazos Espacio de memoria dividido en pedazos repartidos entre las memorias de los CPU’srepartidos entre las memorias de los CPU’s

El direccionamiento remoto implica traer el El direccionamiento remoto implica traer el pedazo de memoria completopedazo de memoria completo

Page 7: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

RéplicaRéplica

Incrementa el rendimientoIncrementa el rendimiento Réplica de pedazos de solo lecturaRéplica de pedazos de solo lectura Réplica de pedazos de lectura-escrituraRéplica de pedazos de lectura-escritura InconsistenciaInconsistencia

Page 8: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

GranularidadGranularidad

Tamaño del pedazo de memoria que se Tamaño del pedazo de memoria que se replicareplica

Fallo de páginaFallo de página Traer página completa vs. Traer varias Traer página completa vs. Traer varias

páginaspáginas Compartición falsaCompartición falsa Compiladores inteligentesCompiladores inteligentes

Page 9: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de la Consistencia Obtención de la Consistencia SecuencialSecuencial

Problema: Réplicas de páginas de lectura-Problema: Réplicas de páginas de lectura-escrituraescritura

Averiguar palabra a escribir y su valorAveriguar palabra a escribir y su valor Problema: Actualizaciones simultaneasProblema: Actualizaciones simultaneas Solución: Esquema de invalidaciónSolución: Esquema de invalidación Protocolo de invalidaciónProtocolo de invalidación Se garantiza consistenciaSe garantiza consistencia

Page 10: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaLectura - Caso 1Lectura - Caso 1

Se efectúa la lecturaSe efectúa la lectura

Page 11: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaLectura - Caso 2Lectura - Caso 2

Se efectúa la lecturaSe efectúa la lectura

Page 12: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaLectura - Caso 3Lectura - Caso 3

Se efectúa la lecturaSe efectúa la lectura

Page 13: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaLectura - Caso 4Lectura - Caso 4

Se efectúa la lecturaSe efectúa la lectura

Page 14: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaLectura - Caso 5Lectura - Caso 5

Se solicita una copiaSe solicita una copia Se marca la página Se marca la página

como Rcomo R Se efectúa la lecturaSe efectúa la lectura

Page 15: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaLectura - Caso 6Lectura - Caso 6

Se solicita una copiaSe solicita una copia Se solicita la Se solicita la

degradación de la degradación de la página a estado “R”página a estado “R”

Se efectúa la lecturaSe efectúa la lectura

Page 16: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaEscritura - Caso 1Escritura - Caso 1

Se efectúa la escrituraSe efectúa la escritura

Page 17: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaEscritura - Caso 2Escritura - Caso 2

Degradar página a Degradar página a estado “W”estado “W”

Se efectúa la escrituraSe efectúa la escritura

Page 18: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaEscritura - Caso 3Escritura - Caso 3

Solicitar invalidación Solicitar invalidación de copiasde copias

Degradar página a Degradar página a estado “W”estado “W”

Se efectúa la escrituraSe efectúa la escritura

Page 19: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaEscritura - Caso 4Escritura - Caso 4

Solicitar invalidación Solicitar invalidación de las copiasde las copias

Solicitar propiedadSolicitar propiedad Degrada la página a Degrada la página a

estado “W”estado “W” Se efectúa la escrituraSe efectúa la escritura

Page 20: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaEscritura - Caso 5Escritura - Caso 5

Solicitar invalidaciónSolicitar invalidación Solicitar propiedadSolicitar propiedad Solicitar copiaSolicitar copia Degrada la página a Degrada la página a

esatdo “W”esatdo “W” Se efectúa la escrituraSe efectúa la escritura

Page 21: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de ConsistenciaObtención de ConsistenciaEscritura - Caso 6Escritura - Caso 6

Solicitar invalidaciónSolicitar invalidación Solicitar propiedadSolicitar propiedad Solicitar copiaSolicitar copia Degrada la página a Degrada la página a

estado “W”estado “W” Se efectúa la escrituraSe efectúa la escritura

Page 22: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de la Consistencia Obtención de la Consistencia Secuencial – Búsqueda del Prop.Secuencial – Búsqueda del Prop.

Buscar directamente al propietarioBuscar directamente al propietario Usar controlador de páginasUsar controlador de páginas Multiples controladores de páginasMultiples controladores de páginas Registro de probables propietariosRegistro de probables propietarios

Page 23: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Obtención de la Consistencia Obtención de la Consistencia Secuencial – Búsqueda de CopiasSecuencial – Búsqueda de Copias Medio de transmisión no-confiableMedio de transmisión no-confiable Lista del conjunto de copiasLista del conjunto de copias Protocolo de invalidaciónProtocolo de invalidación

Page 24: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Reemplazo de PáginasReemplazo de Páginas

Buscar página para sacar de memoriaBuscar página para sacar de memoria Página poseida por otro procesoPágina poseida por otro proceso Página duplicada del proceso salientePágina duplicada del proceso saliente Página no duplicadaPágina no duplicada Transmitir número de marcos libresTransmitir número de marcos libres Problema de compartición activaProblema de compartición activa

Page 25: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

SincronizaciónSincronización

Enfoque tradicional puede causar un Enfoque tradicional puede causar un desastre en el desempeñodesastre en el desempeño

Controlador de sincronizaciónControlador de sincronización

Page 26: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Memoria Compartida Distribuida Memoria Compartida Distribuida con con Variables CompartidasVariables Compartidas

Munin:Munin:– Consistencia de liberación.Consistencia de liberación.– Protocolos múltiples.Protocolos múltiples.– Directorios.Directorios.– Sincronización.Sincronización.

Midway:Midway:– Consistencia de entrada.Consistencia de entrada.– Implantación.Implantación.

Page 27: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Introducción MCDVCIntroducción MCDVC

Se comparten variables.Se comparten variables. Duplicación.Duplicación. Duplicación parcial o total.Duplicación parcial o total. Algoritmo de actualización.Algoritmo de actualización. No hay compartición falsa.No hay compartición falsa.

Page 28: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

MuninMunin

Se basa en objetos del software (usa MMU).Se basa en objetos del software (usa MMU). Declaraciones con “shared”.Declaraciones con “shared”. Una variable compartida por página (por Una variable compartida por página (por

defecto).defecto). Instrucciones normales de lectura y Instrucciones normales de lectura y

escritura.escritura. No hay métodos de protección especiales.No hay métodos de protección especiales.

Page 29: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Consistencia De Liberación Consistencia De Liberación (Munin)(Munin)

Regiones criticas.Regiones criticas. Adquisición y liberación.Adquisición y liberación. No hay garantía en regiones críticas.No hay garantía en regiones críticas. Clases de variables:Clases de variables:

– Variables ordinarias.Variables ordinarias.– Variables de datos compartidos.Variables de datos compartidos.– Variables de sincronización.Variables de sincronización.

Page 30: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Consistencia De Liberación Consistencia De Liberación (Munin)(Munin)

Operación básica con variables ordinarias:Operación básica con variables ordinarias:– No se comparten.No se comparten.– Solo son accedidas por el proceso que las creo.Solo son accedidas por el proceso que las creo.

Page 31: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Consistencia De Liberación Consistencia De Liberación (Munin)(Munin)

Operación básica con variables de datos Operación básica con variables de datos compartidos:compartidos:– Son declaradas como tales.Son declaradas como tales.

Page 32: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Consistencia De Liberación Consistencia De Liberación (Munin)(Munin)

Operación básica con variables de Operación básica con variables de sincronización:sincronización:– Son accedidas mediante procedimientos de Son accedidas mediante procedimientos de

acceso proporcionados por el sistema. acceso proporcionados por el sistema. – Cerraduras: lock y unlock.Cerraduras: lock y unlock.– Barreras: increment y wait.Barreras: increment y wait.

Page 33: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Protocolos Múltiples (Munin)Protocolos Múltiples (Munin)

Categorías de variables:Categorías de variables:– Exclusiva para lectura.Exclusiva para lectura.– Migratoria.Migratoria.– De escritura compartida.De escritura compartida.– Convencional.Convencional.

Page 34: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Protocolos Múltiples (Munin)Protocolos Múltiples (Munin)

Exclusiva para lectura:Exclusiva para lectura:– Ocurre un fallo de página.Ocurre un fallo de página.– Busca la variable en el directorio.Busca la variable en el directorio.– Solicita la página al propietario. Solicita la página al propietario. – La página se duplica.La página se duplica.

No hay modificación.No hay modificación. No hay inconsistencia.No hay inconsistencia. Protegidas por el MMU. (Provoca error Protegidas por el MMU. (Provoca error

fatal cualquier intento de escritura).fatal cualquier intento de escritura).

Page 35: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Protocolos Múltiples (Munin)Protocolos Múltiples (Munin)

Migratoria:Migratoria:– Ocurre un fallo de página.Ocurre un fallo de página.– Busca la variable en el directorio.Busca la variable en el directorio.– Solicita la página al propietario. Solicita la página al propietario. – Se copia en la maquina que la va a usar. Se Se copia en la maquina que la va a usar. Se

elimina la copia original.elimina la copia original.– El propietario pasa a ser el proceso que la va a El propietario pasa a ser el proceso que la va a

usar.usar. No hay duplicación.No hay duplicación.

Page 36: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Protocolos Múltiples (Munin)Protocolos Múltiples (Munin)

De escritura compartida:De escritura compartida:– Al principio se utilizan como exclusivas para Al principio se utilizan como exclusivas para

lectura.lectura.– Ocurre una escritura.Ocurre una escritura.– Marca la página como sucia y crea una copia de Marca la página como sucia y crea una copia de

la página.la página.– Termina la modificación y envía las paginas Termina la modificación y envía las paginas

que fueron modificadas.que fueron modificadas.– Se restablece la exclusividad para lectura.Se restablece la exclusividad para lectura.

Page 37: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Protocolos Múltiples (Munin)Protocolos Múltiples (Munin)

De escritura compartida:De escritura compartida:

Page 38: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Protocolos Múltiples (Munin)Protocolos Múltiples (Munin)

Actualización en el que recibe la Actualización en el que recibe la modificación:modificación:– Si no ha sido modificada localmente actualiza Si no ha sido modificada localmente actualiza

todo.todo.– Si ha sido modificada localmente compara Si ha sido modificada localmente compara

palabra por palabra: la copia local, gemelo y palabra por palabra: la copia local, gemelo y pagina recibida.pagina recibida.

Page 39: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Protocolos Múltiples (Munin)Protocolos Múltiples (Munin)

Actualización:Actualización:

Palabra LocalPalabra Local Palabra Palabra RecibidaRecibida

AcciónAcción

No fue No fue modificadamodificada

Fue o no fue Fue o no fue modificada.modificada.

Se escribe la Se escribe la recibidarecibida

Fue modificadaFue modificada No fue No fue modificadamodificada

Se escribe la Se escribe la recibidarecibida

Fue modificadaFue modificada Fue modificadaFue modificada Error de tiempo Error de tiempo de ejecuciónde ejecución

Page 40: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Protocolos Múltiples (Munin)Protocolos Múltiples (Munin)

Convencionales:Convencionales:– Solo se permite una copia de cada pagina que Solo se permite una copia de cada pagina que

se pueda escribir.se pueda escribir.– Se desplaza de un proceso a otro.Se desplaza de un proceso a otro.

Page 41: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Directorios (Munin)Directorios (Munin)

Contienen:Contienen:– Categoría.Categoría.– Propietario.Propietario.– Si existe copia local.Si existe copia local.

Page 42: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Directorios (Munin)Directorios (Munin)

Algoritmo para encontrar propietario.Algoritmo para encontrar propietario.a)a) Después que P1 y P2 solicitan.Después que P1 y P2 solicitan.b)b) Después que P3 y P4 solicitan.Después que P3 y P4 solicitan.c)c) Después que P1 solicita de nuevo.Después que P1 solicita de nuevo.

Page 43: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Directorios (Munin)Directorios (Munin)

Registro del conjunto de copias.Registro del conjunto de copias. No hay consistencia.No hay consistencia.

Page 44: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Sincronización (Munin)Sincronización (Munin)

Cerraduras centralizadas:Cerraduras centralizadas:– Se obtiene el propietario de la cerradura en el Se obtiene el propietario de la cerradura en el

directorio.(Contiene un registro probable)directorio.(Contiene un registro probable)– Si el mismo es el propietario y esta libre se Si el mismo es el propietario y esta libre se

otorga el pedido.otorga el pedido.– Si la cerradura no es local y esta libre se otorga Si la cerradura no es local y esta libre se otorga

el pedido.el pedido.– Si la cerradura no es local y no esta libre se Si la cerradura no es local y no esta libre se

agrega al final de la cola.agrega al final de la cola.

Page 45: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Sincronización (Munin)Sincronización (Munin)

Barreras con servidor central.Barreras con servidor central.– Se recibe la cantidad de procesos que están Se recibe la cantidad de procesos que están

esperándola.esperándola.– Cada proceso envía el mensaje al servidor de Cada proceso envía el mensaje al servidor de

que ya terminó su tarea.que ya terminó su tarea.– El servidor central envía el mensaje para que El servidor central envía el mensaje para que

todos los procesos sean liberados.todos los procesos sean liberados.

Page 46: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

MidwayMidway

Compartir estructuras de datos individuales.Compartir estructuras de datos individuales. C, C++ o ML convencional con C, C++ o ML convencional con

información adicional.información adicional. Mantiene consistentes las variables Mantiene consistentes las variables

compartidas de manera eficiente.compartidas de manera eficiente.

Page 47: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Consistencia De Entrada Consistencia De Entrada (Midway)(Midway)

Cerraduras exclusivas y no exclusivas.Cerraduras exclusivas y no exclusivas. Limitaciones al programador:Limitaciones al programador:

– La compartición de variables debe ser explícita.La compartición de variables debe ser explícita.– CadaCada variable debe estar asociada con una variable debe estar asociada con una

cerradura o barrera.cerradura o barrera.– Solo deben accesarse las variables compartidas Solo deben accesarse las variables compartidas

dentro de las secciones críticas.dentro de las secciones críticas. La actualización no es inmediata.La actualización no es inmediata.

Page 48: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Implantación (Midway)Implantación (Midway)

La adquisición de cerraduras exclusivas:La adquisición de cerraduras exclusivas:– Utiliza la cadena distribuida de propietarios Utiliza la cadena distribuida de propietarios

sucesivos para encontrar el proceso propietario.sucesivos para encontrar el proceso propietario.– Si el proceso propietario no la esta usando la Si el proceso propietario no la esta usando la

adquiere.adquiere.– Si el proceso propietario la esta usando el Si el proceso propietario la esta usando el

solicitante espera.solicitante espera.

Page 49: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Implantación (Midway)Implantación (Midway)

La adquisición de cerraduras no exclusivas:La adquisición de cerraduras no exclusivas:– Obtiene la copia de cualquier proceso que tenga Obtiene la copia de cualquier proceso que tenga

la copia de la página.la copia de la página. Las barreras son centralizadas.Las barreras son centralizadas.

Page 50: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Implantación (Midway)Implantación (Midway)

Actualización:Actualización:– Solo envía las actualizaciones necesariasSolo envía las actualizaciones necesarias– Mantiene un registro de actualización indicando Mantiene un registro de actualización indicando

a que proceso actualizó y en que tiempo.a que proceso actualizó y en que tiempo.– Cada maquina mantiene un reloj lógico.Cada maquina mantiene un reloj lógico.– Hay muy buen desempeño en comunicación.Hay muy buen desempeño en comunicación.

Page 51: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Introducción a DSMIntroducción a DSMbasada en objetosbasada en objetos

Nace como respuesta a la creciente Nace como respuesta a la creciente popularización de los lenguajes orientados popularización de los lenguajes orientados por objetos.por objetos.

Los datos se organizan y son transportados Los datos se organizan y son transportados en unidades de objetos, no unidades de en unidades de objetos, no unidades de páginas.páginas.

Es un modelo de programación de DSM de Es un modelo de programación de DSM de alto nivel.alto nivel.

Page 52: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

¿Qué son los objetos?¿Qué son los objetos?

Estructura de datos encapsulada definida Estructura de datos encapsulada definida por el programador.por el programador.

Se componen de datos internos (estado) y Se componen de datos internos (estado) y operaciones o métodos.operaciones o métodos.

Cumplen con la propiedad de ocultamiento Cumplen con la propiedad de ocultamiento de la información, por lo que contribuyen de la información, por lo que contribuyen con la modularidad.con la modularidad.

Page 53: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Sistemas DSM Sistemas DSM basados en objetosbasados en objetos

Los procesos de varias máquinas comparten Los procesos de varias máquinas comparten un espacio abstracto ocupado por objetos un espacio abstracto ocupado por objetos compartidos.compartidos.

No existe una memoria lineal en bruto.No existe una memoria lineal en bruto. La localización y administración de los La localización y administración de los

objetos es controlada por el sistema de objetos es controlada por el sistema de tiempo de ejecución.tiempo de ejecución.

Page 54: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Sistemas DSMSistemas DSMbasados en objetos (II)basados en objetos (II)

Los objetos se pueden duplicar o no. En Los objetos se pueden duplicar o no. En caso de duplicarse, hay que decidir cómo caso de duplicarse, hay que decidir cómo se harán las actualizaciones.se harán las actualizaciones.

Evitan el compartimiento falso.Evitan el compartimiento falso. Sus principales desventajas son que no Sus principales desventajas son que no

soportan programas multiprocesadores soportan programas multiprocesadores antiguos y el costo adicional que genera el antiguos y el costo adicional que genera el acceso indirecto a los datos.acceso indirecto a los datos.

Page 55: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

El Sistema LindaEl Sistema Linda

El acceso a memoria se hace mediante un El acceso a memoria se hace mediante un pequeño conjunto de primitivas que se pequeño conjunto de primitivas que se agregan a los lenguajes existentes.agregan a los lenguajes existentes.

Las ventajas son que no hay que aprender Las ventajas son que no hay que aprender un nuevo lenguaje, es sencillo de implantar un nuevo lenguaje, es sencillo de implantar y es portable.y es portable.

Se basa en un espacio de n-adas global a Se basa en un espacio de n-adas global a todo el sistema.todo el sistema.

Page 56: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Las n-adas de LindaLas n-adas de Linda

Son análogas a las estructuras de C.Son análogas a las estructuras de C. Las operaciones sobre ellas son restringidas; Las operaciones sobre ellas son restringidas;

sólo se soportan cuatro operaciones: sólo se soportan cuatro operaciones:

out(“matrix-I”, i, j, 3.14)out(“matrix-I”, i, j, 3.14)

in(“abc”, 2, ?i)in(“abc”, 2, ?i)

read(“abc”, 2, ?i)read(“abc”, 2, ?i)

eval(X,Y,Z), con X,Y,Z expresiones.eval(X,Y,Z), con X,Y,Z expresiones.

Page 57: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Implantación de LindaImplantación de Linda

Para todas las implantaciones, existe un Para todas las implantaciones, existe un preprocesador de Linda.preprocesador de Linda.

Toda implantación debe resolver:Toda implantación debe resolver:

- Direccionamiento sin búsqueda masiva.- Direccionamiento sin búsqueda masiva.

- Distribución y localización de n-adas.- Distribución y localización de n-adas.

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

Page 58: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Implantación de Linda (II)Implantación de Linda (II)

En cuanto al hardware:En cuanto al hardware:

- En un multiprocesador - En un multiprocesador subespacios subespacios implantados como tablas de hash en memoria implantados como tablas de hash en memoria global.global.

- En una multicomputadora - En una multicomputadora

a) Si hay transmisión confiable:a) Si hay transmisión confiable:

Se pueden duplicar los subespacios.Se pueden duplicar los subespacios.

Se pueden hacer Se pueden hacer outout locales. locales.

Page 59: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Implantación de Linda (III)Implantación de Linda (III)

Se puede usar sistema de réplica Se puede usar sistema de réplica parcial.parcial.

b) Si no se soporta b) Si no se soporta broadcastbroadcast, se determina, se determina el subespacio correspondiente a la el subespacio correspondiente a la

n-ada n-ada

y se envía un mensaje.y se envía un mensaje.

Page 60: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

El Sistema OrcaEl Sistema Orca

El acceso a memoria se basa en un esquema El acceso a memoria se basa en un esquema de objetos protegidos.de objetos protegidos.

Consta del lenguaje, el compilador y el Consta del lenguaje, el compilador y el sistema de tiempo de ejecución.sistema de tiempo de ejecución.

Se basa en Módula 2.Se basa en Módula 2. Los objetos son pasivos y no se soporta la Los objetos son pasivos y no se soporta la

herencia.herencia.

Page 61: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

El Sistema Orca (II)El Sistema Orca (II)

Cada operación consta de una lista Cada operación consta de una lista (protección, bloque de enunciados).(protección, bloque de enunciados).

Cuenta con una operación Cuenta con una operación forkfork, en la que , en la que se basa la distribución de objetos.se basa la distribución de objetos.

Las operaciones son atómicas y Las operaciones son atómicas y secuencialmente consistentes.secuencialmente consistentes.

Usa sincronización de la exclusión mutua y Usa sincronización de la exclusión mutua y sincronización de condiciones.sincronización de condiciones.

Page 62: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Administración de objetosAdministración de objetosen Orcaen Orca

Es controlada por el sistema de tiempo de Es controlada por el sistema de tiempo de ejecución.ejecución.

Cada objeto tiene dos posibles estados: Cada objeto tiene dos posibles estados: única copia o duplicado.única copia o duplicado.

Para cada operación, se llama a Para cada operación, se llama a invoke_op,invoke_op, que actúa de acuerdo al caso:que actúa de acuerdo al caso:

- - Objeto no duplicado local.Objeto no duplicado local.

Page 63: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Administración de objetosAdministración de objetosen Orca (II)en Orca (II)

- Objeto no duplicado remoto.- Objeto no duplicado remoto.- Objeto duplicado y operación “lectura”.- Objeto duplicado y operación “lectura”.- Objeto duplicado y operación “escritura”.- Objeto duplicado y operación “escritura”.

Se basa en transmisión confiable basada en un Se basa en transmisión confiable basada en un secuenciador.secuenciador.

Si no hay transmisión confiable, se usa un Si no hay transmisión confiable, se usa un algoritmo de copia primaria de dos fases.algoritmo de copia primaria de dos fases.

Existe un mecanismo para decidir duplicación. Existe un mecanismo para decidir duplicación.

Page 64: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

ComparaciónComparación

IVY imita un multiprocesador, haciendo IVY imita un multiprocesador, haciendo paginación a través de la red. Usa paginación a través de la red. Usa consistencia secuencial. Su problema es consistencia secuencial. Su problema es el desempeño.el desempeño.

Munin y Midway mejoran el desempeño Munin y Midway mejoran el desempeño con información del programador.con información del programador.

Midway soporta sólo un tipo de variable Midway soporta sólo un tipo de variable compartida y tres protocolos de consistencia compartida y tres protocolos de consistencia (de entrada, de liberación y de procesador).(de entrada, de liberación y de procesador).

Page 65: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Comparación (II)Comparación (II)

Munin soporta cuatro tipos de variables Munin soporta cuatro tipos de variables (read-only, migratoria, de escritura (read-only, migratoria, de escritura compartida y convencional) y sólo soporta compartida y convencional) y sólo soporta consistencia de liberación.consistencia de liberación.

En Midway y Munin la sincronización y En Midway y Munin la sincronización y acceso a los datos son tarea del acceso a los datos son tarea del programador, mientras que en Linda y Orca programador, mientras que en Linda y Orca los maneja el propio sistema.los maneja el propio sistema.

Page 66: Memoria Compartida Distribuida Efraín Pinto Efraín Pinto Friedrich González Friedrich González Miguel Ojea Miguel Ojea

Comparación (III)Comparación (III)

Munin y Midway permiten la programación Munin y Midway permiten la programación en C y C++ ligeramente modificados, al en C y C++ ligeramente modificados, al igual que Linda; Orca usa un lenguaje igual que Linda; Orca usa un lenguaje completamente nuevo.completamente nuevo.

La DSM basada en páginas sólo soporta La DSM basada en páginas sólo soporta invalidación de copias, no actualización. invalidación de copias, no actualización. Además, permite compartimiento falso; Además, permite compartimiento falso; los otros tipos de DSM no.los otros tipos de DSM no.