Memoria compartida basada en paginas
codack6Apuntes14 de Mayo de 2020
3.153 Palabras (13 Páginas)422 Visitas
Memoria Compartida Distribuida con base en páginas
El esquema de DSM propone un espacio de direcciones de memoria virtual que integra la memoria de todas las computadoras del sistema, y su uso se realiza mediante paginación. Las páginas quedan restringidas a estar necesariamente en un único nodo. Cuando un programa intenta acceder a una posición virtual de memoria, se comprueba si esa página se encuentra de forma local. Si no se encuentra, se provoca un fallo de página, y el sistema operativo solicita la página al resto de nodos. El sistema funciona de forma análoga al sistema de memoria virtual tradicional, pero en este caso los fallos de página se propagan al resto de ordenadores, hasta que la petición llega al nodo que tiene la página virtual solicitada en su memoria local. A primera vista este sistema parece más eficiente que el acceso a la memoria virtual en disco, pero en la realidad ha mostrado ser un sistema demasiado lento en ciertas aplicaciones, ya que provoca un tráfico de páginas excesivo.
Una mejora dirigida a mejorar el rendimiento sugiere dividir el espacio de direcciones en una zona local y privada y una zona de memoria compartida, que se usará únicamente por procesos que necesiten compartir datos. Esta abstracción se acerca a la idea de programación mediante la declaración explícita de datos públicos y privados, y minimiza el envío de información, ya que sólo se enviarán los datos que realmente vayan a compartirse.
Para implementar un sistema de Memoria Compartida Distribuida es posible hacer uso del hardware de administración de memoria. La gran mayoría de los computadores modernos basan su arquitectura de memoria en paginación o alguna variante de paginación. En este tipo de sistemas, el hardware ofrece una serie de facilidades relacionadas con las páginas de memoria, normalmente aprovechadas únicamente por el sistema operativo.
En un sistema de Memoria Compartida Distribuida basado en páginas, la unidad de memoria que utiliza el sistema es, precisamente, la página. Las paginas migran dinámicamente a través de la red en demanda, puesto que en realidad los procesos pueden acceder únicamente a paginas almacenadas en la memoria local del computador donde se están ejecutando.
Diseño básico
Aquí se presenta la idea más sencilla la cual es: Emular el cache de un multiprocesador mediante el MMU y el software operativo.
En un sistema de memoria compartida, el espacio de direcciones es separado en pedazos, los cuales están dispersos en todos los procesadores del sistema. Cuando un procesador hace referencia a una de las direcciones que no es local, ocurre un señalamiento, el software de memoria compartida trae el pedazo que contiene la dirección y reinicia la instrucción que fue suspendida y puede entonces concluir con éxito
Ilustración 1 diseño básico
En la imagen inciso (a) se ilustra el anterior concepto para un espacio de direcciones de 16 pedazos y cuatro procesadores cada uno de los cuales puede contener a su vez cuatro pedazos
En el inciso (b) se hace una referencia a las instrucciones o datos en los pedazos 0,2,5 o 9, las referencias se realizan de manera local. Mientras que las referencias a los demás pedazos provocan señalamientos. Por ejemplo, una referencia a una dirección en el pedazo 10 provocara un señalamiento de software
Replica
Una mejora al sistema basico, que ayuda al desempeño en gran medida, este consiste en duplicar los pedazos exclusivos para lectura y otras estructuras de datos exclusivas para lectura. Por ejemplo:
• El texto de un programa
• Constantes que son exclusivas para lectura
• Estructuras exclusivas para lectura
En la imagen anterior inciso (c) si el pedazo 10 es una sección de texto de un programa, su uso por parte del procesador 1 provoca el envió de una copia al procesador 1, sin perturbar al original en la memoria del procesador 2. De esta manera los procesadores 1 y 2 pueden hacer referencia al pedazo 10 con la frecuencia necesaria sin causar señalamientos para traer la memoria faltante
Granularidad
Esta característica señala que los sistemas de memoria distribuida son similares a los multiprocesadores en varios aspectos fundamentales. En ambos sistemas, cuando se hace referencia a una palabra de memoria no local, se trae un pedazo de memoria con la palabra, desde su posición actual, y se coloca en la máquina que hace la referencia (en la memoria principal o el cache, respectivamente).
Uno de los aspectos más importantes del diseño es el tamaño de dicho pedazo. Entonces las posibilidades son una palabra, un bloque (unas cuantas palabras), una página o un segmento (varias páginas)
Con un multiprocesador, el transporte de una palabra o unas docenas de Bytes es factible, pues el MMU conoce con exactitud la dirección de referencia y el tiempo para establecer una transferencia en el bus se mide en nanosegundos.
En pocas palabras se refiere a la especificidad a la que se define un nivel de detalle en una tabla, es decir, si hablamos de una jerarquía la granularidad empieza por la parte más alta de la jerarquía, siendo la granularidad mínima, el nivel más bajo.
Se define a nivel de página de memoria. Esto quiere decir que la mínima unidad referenciable por el sistema de MCD es la página, no pudiendo distinguir entre variables distintas almacenadas en la misma página.
A pesar de que el uso de una granularidad a nivel de página puede introducir problemas como el false sharing, también permite mantener el overhead producido por la administración de la memoria distribuida dentro de parámetros razonables. Esto se debe a que se puede hacer uso de las características de hardware para el manejo de memoria virtual, disponibles en la mayoría de los computadores.
obtención de la consistencia secuencial
La coherencia secuencial es uno de los modelos de coherencia utilizados en el dominio de la informática concurrente (por ejemplo, en memoria compartida distribuida, transacciones distribuidas, etc.).
Primero se definió como la propiedad que requiere que
"... el resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesadores se ejecutaran en algún orden secuencial, y las operaciones de cada procesador individual aparecen en esta secuencia en el orden especificado por su programa".
Si las páginas no se duplican, no se pretende lograr la consistencia. Con exactitud existe una copia de cada página, la cual se desplaza de manera dinámica de un lugar a otro según sea necesario. No existirá peligro alguno si solo se tiene una copia de una página, ya que no importara que las copias tengan diversos valores.
La página que es solo lectura no se modifica, por lo tanto, todas las copias siempre son iguales. Sólo se conserva una copia de cada página para la lectura-escritura por lo tanto las inconsistencias son imposibles en estos casos.
Las páginas exclusivas para solo lectura nunca se modifican, de modo que todas las copias son idénticas, por lo tanto, también es imposible la inconsistencia en esos casos.
En muchos sistemas DSM, cuando un proceso intenta leer una página remota, se crea una copia local. La copia local y la página original están configuradas en su MMU respectivo como exclusivas para lectura.
Si algún proceso intenta escribir en una copia duplicada, puede surgir algún problema debido a que se modificaría una copia y no junto a las demás, en estos casos es inaceptable.
Los sistemas DSM basados en páginas utilizan por lo general un protocolo de invalidación en vez de uno de actualización. Son posibles varios protocolos.
búsqueda del propietario
La forma de encontrar al propietario de la página consiste en realizar una transmisión, y solicitar la respuesta del propietario de la página especifica. Una vez que el propietario de la página es localizado, el protocolo puede continuar.
La optimización obvia consiste en no sólo preguntar quién es el propietario, sino también en indicar si el emisor desea leer o escribir y si necesita una copia de la página, según sea necesario.
Li y Hudack (1989) describen otras posibilidades. En la primera de ellas, un proceso es designado como controlador de páginas. Su tarea consiste en llevar un registro de quién es propietario de cada página. Cuando un proceso P desea leer una página, tiene que escribir en una página que no tiene o desea escribir en una página que no posee, envía un mensaje al controlador de páginas indicando la operación que desea realizar y la página correspondiente.
El controlador envía entonces un mensaje indicando el propietario. P hace contacto con el propietario para obtener la página o la propiedad, según sea necesario. Se necesitan 4 mensajes para este protocolo, como se muestra en la siguiente imagen (Ilustración 2)
La imagen anterior (Ilustración 2) muestra una optimización de este protocolo de localización del propietario. En este caso, el controlador de páginas envía la solicitud directamente al propietario, el cual contesta entonces a P, lo que ahorra un mensaje.
búsqueda de las copias
La forma de localizar todas las copias cuando éstas se invaliden es otro detalle importante. Nuevamente se presentan dos posibilidades.
• La
...