Administración de Memoria Compartida Distribuida


Diseñar una máquina donde muchos procesadores utilizan la misma memoria en forma simultánea es muy difícil. Los multiprocesadores de buses no pueden usarse con más de una docena de procesadores sin que sufran degradamientos considerables, ya que el bus es un cuello de botella, y los multiprocesadores con conmutador pueden escalarse a grandes sistemas, pero son lentos, caros , complejos y difíciles de mantener.

Sin embargo, las grandes multicomputadoras son fáciles de construir. Se puede tomar un número casi ilimitado de computadoras sencillas y unirlas por medio de una red.

A diferencia de los multiprocesadores, donde una parte importante del diseño se dedica a la sincronización con semáforos, memoria compartida y secciones críticas, en las multicomputadoras la labor de abstracción principal se centra en el paso de mensajes, manejados por operaciones de entrada/salida.

Esta transferencia de mensajes trae consigo varios aspectos delicados, como el flujo de control, la pérdida de mensajes, el uso de buffers y el bloqueo. A pesar del trabajo desarrollado, la programación con transferencia de mensajes aún es difícil.

Recordamos algunos esquemas de multiprocesadores con memoria compartida:

El S.O. adquiere la página necesaria al enviar un mensaje a la máquina donde reside en la actualidad y solicitarla. Así, tanto la colocación como el acceso se hacen por software. ( Ejm: IVY, Mirage). La diferencia real entre los multiprocesadores y los DSM es que, en los primeros, se puede tener acceso a datos remotos por hardware mediante sus direcciones, y en los últimos siempre se necesita la intervención del software.



Manejo de Páginas de Memoria Distribuida


En sistemas DSM, no existe memoria global. Cada procesador tiene su memoria local y la memoria se comparte a través de páginas o bloques de tamaño constante.

Un procesador puede poseer una o varias páginas y cuando otro procesador requiere información de una página que no tiene, debe enviarse la página por la red.

Normalmente existe una copia de cada página que es pasada entre los procesadores, pero a veces puede permitirse la generación de copias si sólo se usan para lectura.

Conceptos útiles en manejo de páginas

Modelos de consistencia de memoria


Un modelo de consistencia es un contrato entre el software y la memoria. Dice que si el SW acepta seguir ciertas reglas, la memoria promete trabajar en forma correcta (!¡). Si el SW viola estas reglas, todo acaba y ya no se garantiza que la operación de memoria sea correcta.
 
 

Existen varios modelos básicos de consistencia:
 

  1. Consistencia estricta
  2. Consistencia secuencial
  3. Consistencia causal
  4. Consistencia PRAM y del procesador
  5. Consistencia débil
  6. Consistencia de liberación
  7. Consistencia de entrada


A continuación se presenta una explicación detallada de cada una

Siguiente