Memoria Compartida Distribuida by tj39WCkd

VIEWS: 0 PAGES: 66

									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 Consistencia
    Lectura - Caso 1
                Se efectúa la lectura
Obtención de Consistencia
    Lectura - Caso 2
                Se efectúa la lectura
Obtención de Consistencia
    Lectura - Caso 3
                Se efectúa la lectura
Obtención de Consistencia
    Lectura - Caso 4
                Se efectúa la lectura
Obtención de Consistencia
    Lectura - Caso 5
                Se solicita una copia
                Se marca la página
                 como R
                Se efectúa la lectura
Obtención de Consistencia
    Lectura - 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 Consistencia
    Escritura - Caso 1
                Se efectúa la escritura
Obtención de Consistencia
    Escritura - Caso 2
                Degradar página a
                 estado “W”
                Se efectúa la escritura
Obtención de Consistencia
    Escritura - Caso 3
                Solicitar invalidación
                 de copias
                Degradar página a
                 estado “W”
                Se efectúa la escritura
Obtención de Consistencia
    Escritura - 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 Consistencia
    Escritura - Caso 5
                Solicitar invalidación
                Solicitar propiedad
                Solicitar copia
                Degrada la página a
                 esatdo “W”
                Se efectúa la escritura
Obtención de Consistencia
    Escritura - 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:
Palabra Local  Palabra          Acción
               Recibida
No fue         Fue o no fue     Se escribe la
modificada     modificada.      recibida
Fue modificada No fue           Se escribe la
               modificada       recibida
Fue modificada Fue modificada   Error de tiempo
                                de ejecució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.
a)   Después que P1 y P2 solicitan.
b)   Después que P3 y P4 solicitan.
c)   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.
        Introducción a DSM
         basada en objetos
 Nace como respuesta a la creciente
  popularización de los lenguajes orientados
  por objetos.
 Los datos se organizan y son transportados
  en unidades de objetos, no unidades de
  páginas.
 Es un modelo de programación 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 métodos.
 Cumplen con la propiedad de ocultamiento
  de la información, por lo que contribuyen
  con la modularidad.
           Sistemas DSM
         basados en objetos
 Los procesos de varias máquinas comparten
  un espacio abstracto ocupado por objetos
  compartidos.
 No existe una memoria lineal en bruto.
 La localización y administración de los
  objetos es controlada por el sistema de
  tiempo de ejecución.
          Sistemas DSM
       basados en objetos (II)
 Los objetos se pueden duplicar o no. En
  caso de duplicarse, hay que decidir cómo
  se harán 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
  pequeño 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 análogas a las estructuras de C.
 Las operaciones sobre ellas son restringidas;
  sólo 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.
         Implantación de Linda
 Para todas las implantaciones, existe un
  preprocesador de Linda.
 Toda implantación debe resolver:
  - Direccionamiento sin búsqueda masiva.
  - Distribución y localización de n-adas.

   La clave es la firma de tipo de cada n-ada.
       Implantación 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 transmisión confiable:
              Se pueden duplicar los subespacios.
              Se pueden hacer out locales.
Implantación de Linda (III)
      Se puede usar sistema de réplica
      parcial.

b) Si no se soporta broadcast, se determina
   el subespacio correspondiente a la n-ada
   y se envía 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 ejecución.
 Se basa en Módula 2.
 Los objetos son pasivos y no se soporta la
  herencia.
         El Sistema Orca (II)
 Cada operación consta de una lista
  (protección, bloque de enunciados).
 Cuenta con una operación fork, en la que
  se basa la distribución de objetos.
 Las operaciones son atómicas y
  secuencialmente consistentes.
 Usa sincronización de la exclusión mutua y
  sincronización de condiciones.
     Administración de objetos
             en Orca
 Es controlada por el sistema de tiempo de
  ejecución.
 Cada objeto tiene dos posibles estados:
  única copia o duplicado.
 Para cada operación, se llama a invoke_op,
  que actúa de acuerdo al caso:
  - Objeto no duplicado local.
       Administración de objetos
             en Orca (II)
    - Objeto no duplicado remoto.
    - Objeto duplicado y operación “lectura”.
    - Objeto duplicado y operación “escritura”.

   Se basa en transmisión confiable basada en un
    secuenciador.
   Si no hay transmisión confiable, se usa un
    algoritmo de copia primaria de dos fases.
   Existe un mecanismo para decidir duplicación.
             Comparación
 IVY imita un multiprocesador, haciendo
  paginación a través de la red. Usa
  consistencia secuencial. Su problema es
  el desempeño.
 Munin y Midway mejoran el desempeño
  con información del programador.
 Midway soporta sólo un tipo de variable
  compartida y tres protocolos de consistencia
  (de entrada, de liberación y de procesador).
          Comparación (II)
 Munin soporta cuatro tipos de variables
  (read-only, migratoria, de escritura
  compartida y convencional) y sólo soporta
  consistencia de liberación.
 En Midway y Munin la sincronización y
  acceso a los datos son tarea del
  programador, mientras que en Linda y Orca
  los maneja el propio sistema.
          Comparación (III)
 Munin y Midway permiten la programación
  en C y C++ ligeramente modificados, al
  igual que Linda; Orca usa un lenguaje
  completamente nuevo.
 La DSM basada en páginas sólo soporta
  invalidación de copias, no actualización.
  Además, permite compartimiento falso;
  los otros tipos de DSM no.

								
To top