680 likes | 1.01k Views
Memoria Compartida Distribuida. Efraín Pinto Friedrich González Miguel Ojea. Memoria Compartida Distribuida con Base en Páginas. Diseño Básico Réplica Granularidad Obtención de la Consistencia Secuencial Búsqueda del Propietario Búsqueda de las Copias Reemplazo de Páginas
E N D
Memoria Compartida Distribuida • Efraín Pinto • Friedrich González • Miguel Ojea
Memoria Compartida Distribuida con Base en Páginas • Diseño Básico • Réplica • Granularidad • Obtención de la Consistencia Secuencial • Búsqueda del Propietario • Búsqueda de las Copias • Reemplazo de Páginas • Sincronización
Introducción • Sistemas clásicos (NORMA) • Referencia a memoria local y remota. • Primeras investigaciones orientadas a reusabilidad del código • Tratan de implementar consistencia secuencial
Consistencia Secuencial • El resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesadores fueran ejecutadas en algún 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 podrían no arrojar el mismo resultado a menos que se utilicen operaciones explicitas de sincronización
Diseño Básico • Emulan cache monitor de los multiprocesadores mediante software • Espacio de memoria dividido en pedazos repartidos entre las memorias de los CPU’s • El direccionamiento remoto implica traer el pedazo de memoria completo
Réplica • Incrementa el rendimiento • Réplica de pedazos de solo lectura • Réplica de pedazos de lectura-escritura • Inconsistencia
Granularidad • Tamaño del pedazo de memoria que se replica • Fallo de página • Traer página completa vs. Traer varias páginas • Compartición falsa • Compiladores inteligentes
Obtención de la Consistencia Secuencial • Problema: Réplicas de páginas de lectura-escritura • Averiguar palabra a escribir y su valor • Problema: Actualizaciones simultaneas • Solución: Esquema de invalidación • Protocolo de invalidación • Se garantiza consistencia
Obtención de ConsistenciaLectura - Caso 1 • Se efectúa la lectura
Obtención de ConsistenciaLectura - Caso 2 • Se efectúa la lectura
Obtención de ConsistenciaLectura - Caso 3 • Se efectúa la lectura
Obtención de ConsistenciaLectura - Caso 4 • Se efectúa la lectura
Obtención de ConsistenciaLectura - Caso 5 • Se solicita una copia • Se marca la página como R • Se efectúa la lectura
Obtención de ConsistenciaLectura - Caso 6 • Se solicita una copia • Se solicita la degradación de la página a estado “R” • Se efectúa la lectura
Obtención de ConsistenciaEscritura - Caso 1 • Se efectúa la escritura
Obtención de ConsistenciaEscritura - Caso 2 • Degradar página a estado “W” • Se efectúa la escritura
Obtención de ConsistenciaEscritura - Caso 3 • Solicitar invalidación de copias • Degradar página a estado “W” • Se efectúa la escritura
Obtención de ConsistenciaEscritura - Caso 4 • Solicitar invalidación de las copias • Solicitar propiedad • Degrada la página a estado “W” • Se efectúa la escritura
Obtención de ConsistenciaEscritura - Caso 5 • Solicitar invalidación • Solicitar propiedad • Solicitar copia • Degrada la página a esatdo “W” • Se efectúa la escritura
Obtención de ConsistenciaEscritura - Caso 6 • Solicitar invalidación • Solicitar propiedad • Solicitar copia • Degrada la página a estado “W” • Se efectúa la escritura
Obtención de la Consistencia Secuencial – Búsqueda del Prop. • Buscar directamente al propietario • Usar controlador de páginas • Multiples controladores de páginas • Registro de probables propietarios
Obtención de la Consistencia Secuencial – Búsqueda de Copias • Medio de transmisión no-confiable • Lista del conjunto de copias • Protocolo de invalidación
Reemplazo de Páginas • Buscar página para sacar de memoria • Página poseida por otro proceso • Página duplicada del proceso saliente • Página no duplicada • Transmitir número de marcos libres • Problema de compartición activa
Sincronización • Enfoque tradicional puede causar un desastre en el desempeño • Controlador de sincronización
Memoria Compartida Distribuida con Variables Compartidas • Munin: • Consistencia de liberación. • Protocolos múltiples. • Directorios. • Sincronización. • Midway: • Consistencia de entrada. • Implantación.
Introducción MCDVC • Se comparten variables. • Duplicación. • Duplicación parcial o total. • Algoritmo de actualización. • No hay compartición falsa.
Munin • Se basa en objetos del software (usa MMU). • Declaraciones con “shared”. • Una variable compartida por página (por defecto). • Instrucciones normales de lectura y escritura. • No hay métodos de protección especiales.
Consistencia De Liberación (Munin) • Regiones criticas. • Adquisición y liberación. • No hay garantía en regiones críticas. • Clases de variables: • Variables ordinarias. • Variables de datos compartidos. • Variables de sincronización.
Consistencia De Liberación (Munin) • Operación básica con variables ordinarias: • No se comparten. • Solo son accedidas por el proceso que las creo.
Consistencia De Liberación (Munin) • Operación básica con variables de datos compartidos: • Son declaradas como tales.
Consistencia De Liberación (Munin) • Operación básica con variables de sincronización: • Son accedidas mediante procedimientos de acceso proporcionados por el sistema. • Cerraduras: lock y unlock. • Barreras: increment y wait.
Protocolos Múltiples (Munin) • Categorías de variables: • Exclusiva para lectura. • Migratoria. • De escritura compartida. • Convencional.
Protocolos Múltiples (Munin) • Exclusiva para lectura: • Ocurre un fallo de página. • Busca la variable en el directorio. • Solicita la página al propietario. • La página se duplica. • No hay modificación. • No hay inconsistencia. • Protegidas por el MMU. (Provoca error fatal cualquier intento de escritura).
Protocolos Múltiples (Munin) • Migratoria: • Ocurre un fallo de página. • Busca la variable en el directorio. • Solicita la página 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 duplicación.
Protocolos Múltiples (Munin) • De escritura compartida: • Al principio se utilizan como exclusivas para lectura. • Ocurre una escritura. • Marca la página como sucia y crea una copia de la página. • Termina la modificación y envía las paginas que fueron modificadas. • Se restablece la exclusividad para lectura.
Protocolos Múltiples (Munin) • De escritura compartida:
Protocolos Múltiples (Munin) • Actualización en el que recibe la modificación: • 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 Múltiples (Munin) • Actualización:
Protocolos Múltiples (Munin) • Convencionales: • Solo se permite una copia de cada pagina que se pueda escribir. • Se desplaza de un proceso a otro.
Directorios (Munin) • Contienen: • Categoría. • Propietario. • Si existe copia local.
Directorios (Munin) • Algoritmo para encontrar propietario. • Después que P1 y P2 solicitan. • Después que P3 y P4 solicitan. • Después que P1 solicita de nuevo.
Directorios (Munin) • Registro del conjunto de copias. • No hay consistencia.
Sincronización (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.
Sincronización (Munin) • Barreras con servidor central. • Se recibe la cantidad de procesos que están esperándola. • Cada proceso envía el mensaje al servidor de que ya terminó su tarea. • El servidor central envía el mensaje para que todos los procesos sean liberados.
Midway • Compartir estructuras de datos individuales. • C, C++ o ML convencional con información adicional. • Mantiene consistentes las variables compartidas de manera eficiente.
Consistencia De Entrada (Midway) • Cerraduras exclusivas y no exclusivas. • Limitaciones al programador: • La compartición de variables debe ser explícita. • Cada variable debe estar asociada con una cerradura o barrera. • Solo deben accesarse las variables compartidas dentro de las secciones críticas. • La actualización no es inmediata.
Implantación (Midway) • La adquisición 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.
Implantación (Midway) • La adquisición de cerraduras no exclusivas: • Obtiene la copia de cualquier proceso que tenga la copia de la página. • Las barreras son centralizadas.
Implantación (Midway) • Actualización: • Solo envía las actualizaciones necesarias • Mantiene un registro de actualización indicando a que proceso actualizó y en que tiempo. • Cada maquina mantiene un reloj lógico. • Hay muy buen desempeño en comunicación.