Memoria Virtual Compartida

Memoria Virtual Compartida
• Espacio de direcciones compartido por un conjunto de procesadores. • Cada procesador puede acceder directamente a cualquier dirección de este espacio. Esto significa que no se requiere paso de mensajes entre procesadores. • Existen unidades de mapeo de memoria (UMM) que permiten realizar el mapeo entre las memorias locales y la memoria virtual común.

Apuntes preparados por Néstor González V.

1

Memoria Virtual Compartida

Memoria Virtual Compartida
Características • Libera al programador de la necesidad de pasar mensajes. • No se necesita serializar (marshal) estructuras de datos. • Es más fácil compartir estructuras de datos complejas. • Sencillo y eficiente para máquinas homogéneas. • Comunicación implícita →los datos se llevan a donde haga falta • En general permite pasar a una red, un programa realizado para multiprocesador. • Sincronización vía los mecanismos clásicos de memoria compartida (espera activa, candados, semáforos, monitores, regiones críticas).
Apuntes preparados por Néstor González V. 2

Memoria Virtual Compartida

Memoria Virtual Compartida Paginación y Coherencia
Paginación: • • • • El espacio de memoria virtual está dividido en páginas. Una referencia a memoria puede provocar un fallo de página. La UMM recupera la página del disco o del procesador que la contenga. Si la página ha sido copiada por otro procesador, entonces existen dos páginas con el mismo espacio de direcciones en procesadores distintos.

Coherencia: • Si una página puede estar en más de un procesador, se puede presentar el problema de coherencia. • Una memoria es coherente si el valor retornado por una operación de lectura es igual al valor más recientemente escrito. • En sistemas con memoria virtual compartida, el problema de mantener la coherencia no se resuelve de manera trivial.
Apuntes preparados por Néstor González V. 3

Memoria Virtual Compartida

Memoria Virtual Compartida estrategias de coherencia • Los problemas de coherencia sólo se producen cuando hay escritura y un procesador escribe en una página que también existe en la memoria local del otro. • En general, existen tres estrategias para mantener la coherencia: - Actualización inmediata - Difusión de escritura - Invalidación de escritura

Apuntes preparados por Néstor González V.

4

Memoria Virtual Compartida

Memoria Virtual Compartida estrategias de coherencia

Actualización inmediata: • La memoria común mantiene siempre el último valor escrito. • En cada actualización de la memoria común, todos los procesadores verifican si tienen una copia de la página, si la tienen, la invalidan. • Inconveniente: si hay muchas escrituras, hay demasiadas invalidaciones.

Apuntes preparados por Néstor González V.

5

Memoria Virtual Compartida

Memoria Virtual Compartida estrategias de coherencia

Difusión de escritura: • Cuando un procesador realiza una escritura, ésta es registrada localmente y difundida a todos los procesadores que tengan una copia de la página. • Las múltiples páginas son todas actualizadas simultáneamente. • El problema principal es que se requiere de hardware especial para la actualización.

Apuntes preparados por Néstor González V.

6

Memoria Virtual Compartida

Memoria Virtual Compartida estrategias de coherencia Invalidación de escritura (escritura retardada): • Cuando un procesador quiere modificar una página, envía un mensaje a todos los que poseen una copia para invalidarla. Sólo se informa a los que tiene una copia y no a todos los procesadores. • Antes de realizar una escritura, todas las páginas deben haber sido invalidadas. • La invalidación impide que los otros procesos lean datos desactualizados y mantiene la coherencia. • La actualización se propaga sólo cuando un procesador quiere leer un dato. Se disminuye la cantidad de información enviada por una actualización.

Apuntes preparados por Néstor González V.

7

Memoria Virtual Compartida

Memoria Virtual Compartida comparación de estrategias

• La actualización inmediata y la difusión de escritura son más convenientes cuando hay más lecturas que escrituras. • La invalidación de escritura (escritura retardada) es más conveniente cuando hay más escrituras que lecturas. • Sin embargo, en una arquitectura de memoria distribuida (sin memoria física común) el único método factible de implementar es invalidación de escritura.
Apuntes preparados por Néstor González V. 8

Memoria Virtual Compartida

MVC en arquitecturas débilmente acopladas • En arquitecturas débilmente acopladas no hay memoria física común para los procesadores. • Cada procesador dispone de una memoria local. • Un sistema de comunicación permite a los diferentes procesadores intercambiar mensajes. • La implementación MVC en una arquitectura débilmente acoplada se basa en los mismos principios de la Memoria Virtual. • El Espacio Virtual es visto como un conjunto de páginas. • Se debe asegurar la coherencia de las páginas compartidas.

Apuntes preparados por Néstor González V.

9

Memoria Virtual Compartida

MVC en arquitecturas débilmente acopladas Se usa un protocolo de invalidación de escritura: • Se autoriza un solo redactor (escritor), o varios lectores en forma simultánea en una misma página. • Cuando se escribe en una página virtual p, se envía un mensaje de invalidación a todos los procesadores que poseen una copia de p. • Existe un administrador de páginas virtuales: localiza la copia actualizada de la página y recibe todas las solicitudes de acceso.

Apuntes preparados por Néstor González V.

10

Memoria Virtual Compartida

MVC en arquitecturas débilmente acopladas Formas de implementar el administrador: • Centralizado en un procesador predefinido. Asegura la coherencia para todo el conjunto de páginas virtuales. • Estáticamente distribuido. Cada procesador asegura la coherencia de un conjunto pre-establecido de páginas virtuales. • Dinámicamente distribuido. El procesador que administra una página cambia en curso de ejecución. Se dice que un procesador es propietario de una página cuando ha sido el último en obtener derechos de acceso en escritura. Todos los algoritmos utilizan tablas de páginas con información necesaria a la administración.
Apuntes preparados por Néstor González V. 11

Memoria Virtual Compartida

MVC en arquitecturas débilmente acopladas

Proc1
Tabla local derecho candado acceso N° página virtual
(L, E, I )

L : Lectura, puede haber más copias de la página E: Escritura, es el Propietario copia única I : Inválido, la página no está presente

ProcN
Tabla local derecho candado acceso

N° página virtual

Administrador Tabla Global
-Elegido y conocido por todos -No posee las páginas físicas -Mantiene información global -Sólo conoce la Tabla Global

propietario Conjunto de copias candado

Apuntes preparados por Néstor González V.

12

Memoria Virtual Compartida

MVC en arquitecturas débilmente acopladas

Protocolo Centralizado: • Si hay un fallo de la página p en lectura (L) en un procesador Pj: – Pj envía un mensaje al administrador, el cual lo incorpora en el conjunto de copias que están siendo leídas. – El administrador (Pg ) solicita al propietario (Pp) que envíe una copia de p a Pj. – Si Pp era el único en poseer una copia, cambia su derecho de acceso de E a L.

Apuntes preparados por Néstor González V.

13

Memoria Virtual Compartida

MVC en arquitecturas débilmente acopladas Protocolo Centralizado: • Si hay un fallo de página p en escritura en un procesador Pj: - La operación es la misma, sólo que Pg invalida las copias de p enviando mensajes a los procesadores del conjunto de copias - Luego de invalidar, Pg envía la solicitud a Pp, el cual invalida su copia después de haber enviado la copia a Pj, que marca con E. Pg modifica el propietario en su tabla • Escritura sobre una página residente: - Si Pj tiene derecho a escritura, escribe de inmediato (es el único) - en caso contrario, se trata el asunto como un fallo de página.

Apuntes preparados por Néstor González V.

14

Memoria Virtual Compartida

MVC en arquitecturas débilmente acopladas

Distribución estática del control: • A cada procesador se le asigna, en forma estática y permanente, el control de un grupo de páginas. • El esquema funciona igual que en el algoritmo centralizado, excepto que cuando se requiere realizar una acción sobre la página p, se hace, por ejemplo, un requerimiento al procesador p mod N.

Apuntes preparados por Néstor González V.

15

Memoria Virtual Compartida

MVC en arquitecturas débilmente acopladas

Distribución dinámica del control: • Se requiere repartir los propietarios de las páginas. • En cada tabla local se agrega un campo que indica “propietario probable”. Este campo puede contener la identidad del propietario real o bien el comienzo de una cadena de propietarios probables que siempre conduce al propietario real. • Cuando un procesador origina un fallo de página, envía su requerimiento al propietario probable de su tabla local. • Al iniciar el sistema, cada página tiene su propietario por defecto, que conoce su emplazamiento en el disco • Mientras se encamina un requerimiento por la cadena de propietarios probables, todos los procesadores actualizan su campo “propietario probable” con el número de Pj • El propietario real envía la página y delega la propiedad. • Si es una escritura, el nuevo propietario envía un mensaje de invalidación a los que tienen copia.
Apuntes preparados por Néstor González V. 16

Memoria Virtual Compartida

Memoria Virtual Compartida ejemplos de realizaciones Realizaciones • Basadas en hardware: (Firefly, Dash)
– Antecesores de la memoria global compartida. – Multiprocesadores con bus o redes de interconexión. – Gestión por hardware.

• Basadas en paginación: (Ivy, Mether)
Usan mecanismos de paginación de memoria virtual tradicional.

• Basadas en lenguajes o bibliotecas:
– Completamente gestionados por programa. – Objetos y métodos (Orca) – Variables compartidas (Linda, JavaSpaces)

• Paginación + bibliotecas: (Munin, Midway)
Apuntes preparados por Néstor González V. 17

Sign up to vote on this title
UsefulNot useful