La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Memoria Compartida Distribuida Carina Giron Miguel Martínez.

Presentaciones similares


Presentación del tema: "Memoria Compartida Distribuida Carina Giron Miguel Martínez."— Transcripción de la presentación:

1 Memoria Compartida Distribuida Carina Giron Miguel Martínez

2 De qué se trata La memoria compartida distribuida (DSM) es una abstracción utilizada de compartir datos entre computadores que no comparten memoria física. Los procesos acceden a DSM para leer y actualizar, dentro de sus espacios de direcciones, sobre lo que aparenta ser la memoria interna normal asignada a un proceso. Sin embargo, existe un sistema subyacente en tiempo de ejecución que asegura de forma transparente que procesos diferentes ejecutándose en computadores diferentes observen las actualizaciones realizadas entre ellas. Es como si los procesos accedieran a una única memoria compartida, pero de hecho la memoria física está distribuida. La memoria compartida distribuida (DSM) es una abstracción utilizada de compartir datos entre computadores que no comparten memoria física. Los procesos acceden a DSM para leer y actualizar, dentro de sus espacios de direcciones, sobre lo que aparenta ser la memoria interna normal asignada a un proceso. Sin embargo, existe un sistema subyacente en tiempo de ejecución que asegura de forma transparente que procesos diferentes ejecutándose en computadores diferentes observen las actualizaciones realizadas entre ellas. Es como si los procesos accedieran a una única memoria compartida, pero de hecho la memoria física está distribuida. Su principal objetivo es el procesamiento paralelo y la campartición de datos. Su principal objetivo es el procesamiento paralelo y la campartición de datos.

3 Memoria física Memoria Compartida Distribuida DSM se muestra como Memoria en el espacio de direcciones del Proceso Proceso accediendo a DSM

4 DSM utiliza: Gestión de Replicas: cada computadora tiene una copia local de aquellos datos almacenados en DSM que se usaron recientemente para acelerar su acceso. Gestión de Replicas: cada computadora tiene una copia local de aquellos datos almacenados en DSM que se usaron recientemente para acelerar su acceso. Pasaje de mensajes: no se elimina completamente pues se lo utiliza para enviar actualizaciones entre las computadoras. Pasaje de mensajes: no se elimina completamente pues se lo utiliza para enviar actualizaciones entre las computadoras.

5 DSM frente a pasaje de mensajes Son comparables por: Son comparables por: 1. Modelo de programación: En pasaje de mensaje se utiliza el empaquetamiento y desempaquetamiento de datos para compartirlos. En DSM no es necesario. La sincronización es implicita en pasaje de mensaje y en DSM se utilizan ecanismos como bloques y semaforos. En DSM no es necesario la ejecución solapada como en pasaje de mensaje. 2. Eficiencia: en pasaje de mensaje los accesos remotos son explícitos pero en DSM no pues no se sabe si se accede a un dato local al proceso o hay una comunicación por medio.

6 Aproximaciones hacia la implementación DSM se implementa utilizando uno de los siguientes métodos o bien una combinación de ellos: Hardware especializado Hardware especializado Memoria virtual paginada convencional Memoria virtual paginada convencional Middleware Middleware

7 Hardware especializado Se basa en la arquitectura NUMA. Se basa en la arquitectura NUMA. Gestionan las instrucciones LOAD y STORE para que los procesos se comuniquen con la memoria remota y los módulos de caché. Gestionan las instrucciones LOAD y STORE para que los procesos se comuniquen con la memoria remota y los módulos de caché. Se comunican mediante interconexiones de alta velocidad similares a una red. Se comunican mediante interconexiones de alta velocidad similares a una red. Utilizan técnicas de software de alto nivel para minimizar la cantidad de comunicaciones entre los componentes de una implementación DSM. Utilizan técnicas de software de alto nivel para minimizar la cantidad de comunicaciones entre los componentes de una implementación DSM.

8 Memoria virtual paginada Utiliza memoria virtual que ocupa un mismo rango de direcciones en el espacio de direcciones de los procesos participantes. Utiliza memoria virtual que ocupa un mismo rango de direcciones en el espacio de direcciones de los procesos participantes. Solo se puede utilizar entre computadoras homogéneas con los formatos de datos y de paginas comunes. Solo se puede utilizar entre computadoras homogéneas con los formatos de datos y de paginas comunes. Actualmente se implementan, mayoritariamente, a nivel de usuario por su flexibilidad. Actualmente se implementan, mayoritariamente, a nivel de usuario por su flexibilidad.

9 Middleware Se realiza mediante comunicación entre niveles de soporte de usuario de los cliente y los servidores. Se realiza mediante comunicación entre niveles de soporte de usuario de los cliente y los servidores. Se realizan llamadas a este nivel para el acceso a datos en DSM. Se realizan llamadas a este nivel para el acceso a datos en DSM. Capa instancia accede a los datos locales y se intercambian información para mantener la consistencia. Capa instancia accede a los datos locales y se intercambian información para mantener la consistencia. Permite abstracción de mayor nivel sobre los objetos compartidos, en lugar de hacerlo sobre posiciones de memoria compartida. Permite abstracción de mayor nivel sobre los objetos compartidos, en lugar de hacerlo sobre posiciones de memoria compartida.

10 Diseño e implementación Aspectos que deben considerarse en el diseño de una DSM. Estructura. Modelo de sincronización. Modelo de consistencia. Opciones de actualización. Granularidad. Thrashing

11 Estructura del espacio de memoria compartida La estructura define la abstracción de la vista a los programadores de aplicaciones en un sistema DSM. Puede ser vista para unos como palabra y para otros como objetos. No estructurada: es un arreglo de palabras. Por tipo de datos: Orientado a byte: se usa como la memoria virtual ordinaria (Mether, Ivy). Se almacena cualquier tipo de estructura en la memoria compartida. Los objetos compartidos son direccionables. Solo se permite operaciones de LOAD y STORE Orientado a objetos: se usa una estructura de pila o diccionario (Orca, Clouds). Los elementos de la memoria compartida se modifican solo mediante invocaciones sobre el objeto Datos inmutable: es una colección de datos inmutables que los procesos pueden leer, sumar y eliminar (Agora, Linda). Por ejemplo las tuplas.

12 Modelo de sincronización Las construcciones de sincronización se hace mediante pasaje de mensajes. Las construcciones de sincronización se hace mediante pasaje de mensajes. La instrucción TestAndSet se puede aplicar a sistemas DSM basados en paginas pero su implementación puede ser ineficiente. La instrucción TestAndSet se puede aplicar a sistemas DSM basados en paginas pero su implementación puede ser ineficiente. La sincronización es a nivel de aplicación para reducir la cantidad de transmisiones de actualización. La sincronización es a nivel de aplicación para reducir la cantidad de transmisiones de actualización. Incluye la sincronización como componente integrado. Incluye la sincronización como componente integrado.

13 Modelos de consistencia Se utiliza en sistemas DSM con replicas de contenido. Se utiliza en sistemas DSM con replicas de contenido. Cada proceso tiene un gestor de replicas local, que se encarga de tener copias en la caché de los objetos. Cada proceso tiene un gestor de replicas local, que se encarga de tener copias en la caché de los objetos. La actualización de los objetos se propaga a los demás gestores de replicas. La actualización de los objetos se propaga a los demás gestores de replicas. Principales modelos de consistencia: Principales modelos de consistencia: 1. Consistencia secuencial. 2. Consistencia débil.

14 Consistencia secuencial Lamport (1979) : Un sistema soporta consistencia secuencial si todos los procesos ven el mismo orden de todas las operaciones de acceso a memoria en la DSM. No importa el entrelazado de las operaciones. No garantiza que una lectura devuelve el valor mas recientemente escrito. Si un programa repite la corrida puede no producir los mismos resultados. Implementación: asegurar que una operación de memoria no comience hasta que todas las previas se hayan completado. Todos los procesos que comparten la memoria siempre ven el mismo contenido en ella.

15 Entrelazado bajo la consistencia secuencial Tiempo Proceso 1 br:= b; ar:= a; If (ar >= br) then printf(Bien); Lee Proceso 2 a:= a + 1; b:= b + 1; Escribe

16 Coherencia Cada proceso llega a acuerdos sobre el orden de las operaciones de escritura sobre la misma posición, pero no acuerdan necesariamente el orden de las operaciones de escritura sobre posiciones diferentes Cada proceso llega a acuerdos sobre el orden de las operaciones de escritura sobre la misma posición, pero no acuerdan necesariamente el orden de las operaciones de escritura sobre posiciones diferentes Se la puede pensar como una forma de consistencia secuencial realizada posición a posición. Se la puede pensar como una forma de consistencia secuencial realizada posición a posición. Los sistemas DSM coherentes pueden implementarse mediante un protocolo para implementar la consistencia secuencial aplicada de forma separada a cada unidad de datos replicados (por ejemplo, a cada página). El ahorro se produce del hecho de que los accesos a dos páginas diferentes se hacen de forma independiente y no existe retardo entre ellos al aplicarse el protocolo de forma separada a ambos. Los sistemas DSM coherentes pueden implementarse mediante un protocolo para implementar la consistencia secuencial aplicada de forma separada a cada unidad de datos replicados (por ejemplo, a cada página). El ahorro se produce del hecho de que los accesos a dos páginas diferentes se hacen de forma independiente y no existe retardo entre ellos al aplicarse el protocolo de forma separada a ambos.

17 Consistencia débil Dubois et al 1988 Observaciones: No es necesario mostrar inmediatamente a otros procesos cambios en la memoria hechos por cada operación de escritura. Los resultados de varias operaciones de escritura pueden ser combinados y enviados a otros procesos solo cuando ellos lo necesitan. Son raros los accesos aislados a variables compartidas. Implementación: se usa una variable de sincronización. Para soportar la consistencia débil se debe cumplir: Todos los accesos a las variables de sincronización deben obedecer a la semántica de consistencia secuencial Deben completarse todas la operaciones previas de escritura, en todos lados, antes de permitir un acceso a las variables de sincronización No se permite realizar un acceso a los datos (lectura o escritura) hasta completar todos los accesos anteriores a las variables de sincronización.

18 Opciones de actualización Hay dos posibles opciones: Escritura actualizante Escritura actualizante Escritura invalidante Escritura invalidante

19 Escritura actualizante Las actualizaciones se hacen localmente y se envía a todos los demás gestores de replicas una copia, los cuales modifican inmediatamente el dato leído por los procesos locales. Las actualizaciones se hacen localmente y se envía a todos los demás gestores de replicas una copia, los cuales modifican inmediatamente el dato leído por los procesos locales. Normalmente son implementadas por hardware pero hay implementaciones por software que utilizan multicasting totalmente ordenado. Normalmente son implementadas por hardware pero hay implementaciones por software que utilizan multicasting totalmente ordenado. Nodo Cliente tiene una copia valida del bloque de datos después de la operación de escritura Nodos tienen copias validas de bloques de datos antes de la escritura Replica de bloque Requiere bloque Actualiza el bloque

20 Escritura invalidante En un instante una posición puede ser accedida para lectura por uno o más procesos. Puede ser copiada a cualquier otro proceso. En un instante una posición puede ser accedida para lectura por uno o más procesos. Puede ser copiada a cualquier otro proceso. En la escritura solo un proceso puede acceder a la posición. Para hacerlo debe enviar un mensaje a todas sus copias para invalidarlas y se espera una respuesta antes que la escritura tenga lugar. Si un proceso intenta acceder al dato se bloquea. Finalmente, el control se transfiere desde el proceso escritor, y se puedan realizar otros accesos una vez que la actualización haya sido enviada. El resultado es que se procesan todos los accesos al dato mediante una política del tipo FIFO. En la escritura solo un proceso puede acceder a la posición. Para hacerlo debe enviar un mensaje a todas sus copias para invalidarlas y se espera una respuesta antes que la escritura tenga lugar. Si un proceso intenta acceder al dato se bloquea. Finalmente, el control se transfiere desde el proceso escritor, y se puedan realizar otros accesos una vez que la actualización haya sido enviada. El resultado es que se procesan todos los accesos al dato mediante una política del tipo FIFO. Se adaptan mejor a sistemas DSM basados en paginas. Se adaptan mejor a sistemas DSM basados en paginas. Nodo Cliente tiene una copia valida del bloque de datos después de la operación de escritura Nodos tienen copias validas de bloques de datos antes de la escritura Replica de bloque Requiere bloque Invalida bloque

21 Granularidad La estructura y la granularidad está relacionadas. Problemas que se presentan con el tamaño del bloque: Sobrecarga de paginado Tamaño de directorio Thrashing Falso compartir

22 Falso compartir Dos o más procesos comparten zonas de una página, pero solo uno de ellos realmente accede a cada zona. Dos o más procesos comparten zonas de una página, pero solo uno de ellos realmente accede a cada zona. En el protocolo de escritura invalidante puede derivar en invalidaciones innecesarias. En el protocolo de escritura invalidante puede derivar en invalidaciones innecesarias. En el protocolo de escritura actualizante puede ocurrir que las páginas sean sobrescritas con versiones antiguas. En el protocolo de escritura actualizante puede ocurrir que las páginas sean sobrescritas con versiones antiguas. El proceso P1 accede a datos de esta área El proceso P2 accede a datos de esta área P1 P2

23 Granularidad Ventajas de usar un tamaño de bloque igual a la página de memoria local: Permite el uso de sistemas existentes de falta de páginas Permite el control de derechos de acceso Si las páginas pueden colocarse en un paquete no impone sobrecarga en la red El tamaño es adecuado con respecto a la contención de memoria

24 Thrashing Puede ocurrir cuando se utiliza invalidación de escritura. Puede ocurrir cuando se utiliza invalidación de escritura. Consiste en la transferencia repetida de datos entre procesos competidores a costa del progreso de la aplicación. Este efecto puede ser reducido mediante la sincronización a nivel de aplicación, permitiendo a las computadoras retener una página durante una mínima cantidad de tiempo, o mediante el etiquetado de los datos de forma que las lecturas y las escrituras sean concedidas conjuntamente. Consiste en la transferencia repetida de datos entre procesos competidores a costa del progreso de la aplicación. Este efecto puede ser reducido mediante la sincronización a nivel de aplicación, permitiendo a las computadoras retener una página durante una mínima cantidad de tiempo, o mediante el etiquetado de los datos de forma que las lecturas y las escrituras sean concedidas conjuntamente.

25 Consistencia secuencial e Ivy El modelo de sistema Una colección de procesos comparten un segmento de DSM Una colección de procesos comparten un segmento de DSM El segmento se hace corresponder sobre el mismo rango de direcciones en cada proceso, de forma que sobre él se pueden almacenar valores de punteros significativos El segmento se hace corresponder sobre el mismo rango de direcciones en cada proceso, de forma que sobre él se pueden almacenar valores de punteros significativos Los procesos se ejecutan sobre memoria paginada con permiso de acceso. Asumiremos que únicamente hay un proceso que accede al segmento DSM en cada computadora. Los procesos se ejecutan sobre memoria paginada con permiso de acceso. Asumiremos que únicamente hay un proceso que accede al segmento DSM en cada computadora. Ante un fallo de página el núcleo lo redirige a un manejador especificado por el nivel de soporte en tiempo de ejecución de DSM para cada proceso. Ante un fallo de página el núcleo lo redirige a un manejador especificado por el nivel de soporte en tiempo de ejecución de DSM para cada proceso. El manejador de fallos de página realiza un procesamiento especial del mencionado fallo de página.. El manejador de fallos de página realiza un procesamiento especial del mencionado fallo de página..

26 Consistencia secuencial e Ivy Núcleo Memoria Compartida Distribuida Proceso accediendo al segmento de página de DSM El núcleo redirige los fallos de página al gestor de niveles de usuario

27 Consistencia secuencial e Ivy El problema de la escritura actualizante En sistemas DSM basados en páginas solo se la utiliza si la escritura se puede ser almacenada en buffers y la pagina tenga permiso de escritura después de un fallo de página inicial y se permite hacer varias escrituras antes que la pagina sea propagada. En sistemas DSM basados en páginas solo se la utiliza si la escritura se puede ser almacenada en buffers y la pagina tenga permiso de escritura después de un fallo de página inicial y se permite hacer varias escrituras antes que la pagina sea propagada.

28 Invalidación de escritura Estos algoritmos utilizan protección de página para forzar la consistencia en la compartición de datos. Estos algoritmos utilizan protección de página para forzar la consistencia en la compartición de datos. En la actualización de la página el proceso tiene localmente permiso lectura y escritura y el resto no tiene permiso de acceso a la página. En la actualización de la página el proceso tiene localmente permiso lectura y escritura y el resto no tiene permiso de acceso a la página. Si uno o más procesos leen de una página solo tiene permiso de lectura y el reto no tiene permiso de acceso. Si uno o más procesos leen de una página solo tiene permiso de lectura y el reto no tiene permiso de acceso. Proceso P: es el proceso que tiene la versión actualizada de la pagina. Es el propietario(P): Proceso P: es el proceso que tiene la versión actualizada de la pagina. Es el propietario(P): Proceso C: son los procesos que tienen una copia de una página P. Conjuntocopia(P). Proceso C: son los procesos que tienen una copia de una página P. Conjuntocopia(P).

29 Invalidación de escritura Si un proceso propietario Pw en una página donde no tiene acceso o tiene permiso de lectura se genera un fallo y el manejador sigue estos pasos: Si un proceso propietario Pw en una página donde no tiene acceso o tiene permiso de lectura se genera un fallo y el manejador sigue estos pasos: 1. Si Pw no tiene copia actualizada de p se le transfiere. 2. Se invalidad el resto de las copias. 3. Conjuntocopia(p):= {Pw} 4. Propietario(p):= Pw 5. Sitúa la página en el espacio de direcciones de Pw y reinicia la instrucción que genero el fallo.

30 Invalidación de escritura Si un proceso Pr intenta leer una página sobre la que no tiene acceso se genera un fallo de página de lectura y el manejador sigue estos pasos: Si un proceso Pr intenta leer una página sobre la que no tiene acceso se genera un fallo de página de lectura y el manejador sigue estos pasos: 1. Se copia la página del propietario(p) a Pr. 2. Si el propietario e un único escrito entonces mantiene la propiedad y se coloca su permiso de acceso en solo lectura. 3. Conjuntocopia(p):= conjuntocopia(p) U {Pr} 4. Sitúa la página en el espacio de direcciones de Pr y reinicia la instrucción donde se produjo el fallo.

31 Protocolos de invalidación. Dos problemas importantes: Dos problemas importantes: 1. Cómo localizar el propietario de una página p. 2. Dónde almacenar conjuntocopia(p) Li y Hudak proponen tener un gestor para almacenar la dirección (a nivel de transporte) de propietario(p) para cada página p más las direcciones de transporte de los miembros de conjuntocopia(p).

32 Protocolos de invalidación. 1. Al producirse la falla de página el proceso local envía al gestor el numero de página y el tipo de acceso. 2. El gestor busca la dirección de propietario(p) y le reenvía la solicitud. Si el fallo es de escritura le gestor lo coloca como nuevo propietario de p. las siguientes solicitudes se encolan en el proceso. 3. El anterior propietario envía la pagina. Si fue fallo por escritura envía también el conjunto de copias. Se auto invalida. 4. El proceso realiza la invalidación. Espera la confirmación de la invalidación.

33 Alternativas para el gestor Gestiones de páginas distribuida fija: múltiples gestores que se dividen en forma estática las páginas entre ellos Gestiones de páginas distribuida fija: múltiples gestores que se dividen en forma estática las páginas entre ellos Gestión distribuida basada en multidifusión: al producirse un fallo se envía una multidifusión con la solicitud de la página. Solo responde el propietario de la misma. Gestión distribuida basada en multidifusión: al producirse un fallo se envía una multidifusión con la solicitud de la página. Solo responde el propietario de la misma. Gestión distribuida dinámica: se divide la sobrecarga de localización de páginas entre las computadoras que los utilizan. Cada proceso tiene una marca del propietario actual de la página p (propietario portable de p). Procesos para la actualización de marcas: Gestión distribuida dinámica: se divide la sobrecarga de localización de páginas entre las computadoras que los utilizan. Cada proceso tiene una marca del propietario actual de la página p (propietario portable de p). Procesos para la actualización de marcas: 1. Al transferir la propiedad de p a otro proceso, este se agrega como propietarioPortable(p). 2. En una solicitud de invalidación se marca como propietarioProtable(p) al solicitante. 3. En la solicitud de lectura se marca como propietarioPortable(p) al que la proporcionó. 4. Si no es el propietario de p, se reenvía la solicitud al propietarioPortable(p) y se marca como nuevo al solicitante.

34 Thrashing. Como evitarlo Mirage asocia a cada página un intervalo de tiempo. Una vez que ha accedido a una página retiene el acceso por ese intervalo. Cualquier otra solicitud durante des tiempo es rechazada. Es difícil determinar el intervalo (estático o dinámico). Mirage asocia a cada página un intervalo de tiempo. Una vez que ha accedido a una página retiene el acceso por ese intervalo. Cualquier otra solicitud durante des tiempo es rechazada. Es difícil determinar el intervalo (estático o dinámico).

35 Liberación de consistencia y Munin Accesos a memoria: Accesos a memoria: 1. Accesos competitivos 2. Accesos no competitivos.

36 Acceso competitivo Puede ocurrir en forma concurrente y uno de los procesos involucrados es de escritura. Puede ocurrir en forma concurrente y uno de los procesos involucrados es de escritura. Accesos de sincronización: Accesos de sincronización: 1. Acceso de adquisición 2. Acceso de liberación Acceso de no sincronización Acceso de no sincronización

37 Realización de operaciones asincrónicas Operaciones para incrementar la velocidad a la que se ejecutan los proceosos: Operaciones para incrementar la velocidad a la que se ejecutan los proceosos: 1. Las escrituras pueden ser asincrónicas. 2. Búsqueda anticipada de valores. 3. Ejecución fuera de orden.

38 Otros modelos de consistencia Los modelos de consistencia de memoria se pueden dividir entre modelos uniformes, caracterizados por no distinguir entre diferentes tipos de accesos a memoria y modelos híbridos, los cuales distinguen entre accesos ordinarios y de sincronización (al igual que otros tipos de accesos). Los modelos de consistencia de memoria se pueden dividir entre modelos uniformes, caracterizados por no distinguir entre diferentes tipos de accesos a memoria y modelos híbridos, los cuales distinguen entre accesos ordinarios y de sincronización (al igual que otros tipos de accesos). Otros modelos de consistencia uniforme son: Otros modelos de consistencia uniforme son: 1. Consistencia causal 2. Consistencia de procesador 3. RAM encauzada Además de la consistencia relajada, otros modelos híbridos son los siguientes Además de la consistencia relajada, otros modelos híbridos son los siguientes 1. Consistencia con admisión 2. Consistencia de ámbito 3. Consistencia débil


Descargar ppt "Memoria Compartida Distribuida Carina Giron Miguel Martínez."

Presentaciones similares


Anuncios Google