1 / 66

Memoria Compartida Distribuida

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

booth
Download Presentation

Memoria Compartida Distribuida

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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

  4. 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

  5. Consistencia Secuencial • Dos ejecuciones del mismo programa podrían no arrojar el mismo resultado a menos que se utilicen operaciones explicitas de sincronización

  6. 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

  7. Réplica • Incrementa el rendimiento • Réplica de pedazos de solo lectura • Réplica de pedazos de lectura-escritura • Inconsistencia

  8. 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

  9. 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

  10. Obtención de ConsistenciaLectura - Caso 1 • Se efectúa la lectura

  11. Obtención de ConsistenciaLectura - Caso 2 • Se efectúa la lectura

  12. Obtención de ConsistenciaLectura - Caso 3 • Se efectúa la lectura

  13. Obtención de ConsistenciaLectura - Caso 4 • Se efectúa la lectura

  14. Obtención de ConsistenciaLectura - Caso 5 • Se solicita una copia • Se marca la página como R • Se efectúa la lectura

  15. 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

  16. Obtención de ConsistenciaEscritura - Caso 1 • Se efectúa la escritura

  17. Obtención de ConsistenciaEscritura - Caso 2 • Degradar página a estado “W” • Se efectúa la escritura

  18. Obtención de ConsistenciaEscritura - Caso 3 • Solicitar invalidación de copias • Degradar página a estado “W” • Se efectúa la escritura

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. Sincronización • Enfoque tradicional puede causar un desastre en el desempeño • Controlador de sincronización

  26. Memoria Compartida Distribuida con Variables Compartidas • Munin: • Consistencia de liberación. • Protocolos múltiples. • Directorios. • Sincronización. • Midway: • Consistencia de entrada. • Implantación.

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

  28. 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.

  29. 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.

  30. Consistencia De Liberación (Munin) • Operación básica con variables ordinarias: • No se comparten. • Solo son accedidas por el proceso que las creo.

  31. Consistencia De Liberación (Munin) • Operación básica con variables de datos compartidos: • Son declaradas como tales.

  32. 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.

  33. Protocolos Múltiples (Munin) • Categorías de variables: • Exclusiva para lectura. • Migratoria. • De escritura compartida. • Convencional.

  34. 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).

  35. 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.

  36. 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.

  37. Protocolos Múltiples (Munin) • De escritura compartida:

  38. 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.

  39. Protocolos Múltiples (Munin) • Actualización:

  40. Protocolos Múltiples (Munin) • Convencionales: • Solo se permite una copia de cada pagina que se pueda escribir. • Se desplaza de un proceso a otro.

  41. Directorios (Munin) • Contienen: • Categoría. • Propietario. • Si existe copia local.

  42. 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.

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

  44. 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.

  45. 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.

  46. Midway • Compartir estructuras de datos individuales. • C, C++ o ML convencional con información adicional. • Mantiene consistentes las variables compartidas de manera eficiente.

  47. 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.

  48. 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.

  49. 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.

  50. 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.

More Related