Está en la página 1de 5

Memoria Compartida Distribuida

Los multiprocesadores son difciles de construir y fciles de programar.


Las multicomputadoras son difciles de programar y fciles de construir.
El objetivo de la memoria compartida distribuida es que el hardware en el que se base sea
fcil de construir y fcil de programar.
Introduccin
En 19! Li y mas tarde "uda#$ propusieron un mecanismo para el manejo de memoria en
sistemas distribuidos llamado memoria compartida distribuida %&'(). 'u propuesta fue
tener una colecci*n de estaciones de trabajo conectadas por una L+, compartiendo un solo
espacio de direcciones virtuales con pginas.
La desventaja de este esquema es que e-hibe un desempe.o pobre$ ya que las pginas
andan de un lado para otro de la red.
La ventaja es que es un modelo fcil de programar y de construir.
/tro m0todo consiste en no compartir todo el espacio de direcciones$ sino solo una porci*n
seleccionada$ de hecho$ solo aquellas variables o estructuras de datos que se necesitan
utili1ar en ms de un proceso$ lo cual produce un alto nivel de abstracci*n$ pues ya no se
piensa en una porci*n de memoria$ sino en una colecci*n de variables.
2na posible optimi1aci*n consiste en repetir las variables compartidas en varias mquinas$
el problema en este caso es mantener consistentes las copias.
Las lecturas se pueden hacer de manera local$ sin ning3n trfico y las escrituras mediante
un protocolo de actuali1aci*n con varias copias.
/tr posible optimi1aci*n es compartir objetos.
. Multiprocesadores basados en un bus.
4ara evitar que dos o ms 5426s intenten el acceso a la memoria al mismo tiempo$ se
necesita alg3n tipo de arbitraje del bus. El 542 debe pedir permiso para conseguir el bus.
La concesi*n puede hacerse de forma centrali1ada$ utili1ando un dispositivo de arbitraje de
bus$ o de forma descentrali1ada$ donde el primer 542 que realice una solicitud en el bus
ganar cualquier conflicto.
La desventaja es la sobrecarga del bus.
2na soluci*n sera equipar a cada 542 con un cach0 husmeador.
542 542 542 (emoria
bus
542
5ache
542
5ache
542
5ache
(emoria
bus
2n protocolo en particular com3n es el de escritura a trav0s del cach0. 5uando un 542 lee
por primera ve1 una palabra de memoria$ esa palabra es llevada por el bus y guardada en el
cach0 del 542 solicitante.
4uede suceder que una palabra en particular se oculte en dos o ms 542 al mismo tiempo.
Operacin de lectura.
'i la palabra no esta en el cach0$ entonces buscarla en la memoria y copiarla a su
cach0.
'i la palabra esta en el cach0$ tomar el dato de ah.
Operacin de escritura
'i ning3n 542 tiene la palabra en su cach0$ entonces la palabra es actuali1ada en
memoria$ como si el ocultamiento no hubiera sido utili1ado.
'i el 542 %que reali1a la escritura) tiene la 3nica copia de la palabra$ se actuali1a su
cach0 y tambi0n la memoria mediante el bus.
'i dos o ms 542 tienen la palabra$ entonces se actuali1a la palabra en el cach0 y en
la memoria$ y se invalidan las entradas de esa palabra en los cah0s de los otros 542.
+s la palabra s*lo la tendr la memoria y un colo cach0.
2na alternativa a invalidar otras entradas de cach0 es actuali1arlas todas$ pero esto puede
resultar ms lento.
2na ventaja de este protocolo es que es fcil de entender e implantar$ la desventaja es que
todas las escrituras utili1an el bus.
E-iste otro tipo de protocolos como el protocolo de membresa. 2na versi*n de este
protocolo plantea lo siguiente. 'e manejan bloques de cach0$ cada uno de los cuales puede
estar en uno de los siguientes estados7
1. 8,9+L8&/7 Este bloque de cach0 no contiene datos vlidos.
:. L8(48/7 La memoria est actuali1ada$ el bloque puede estar en otros cach0s.
;. '258/7 La memoria es incorrecta< ning3n otro cach0 puede contener al bloque.
+ = 5 >1
bus
>1
limpio
La memoria es
correcta
Estado inicial. La palabra >
que contiene el valor w1 esta
en la memoria y tambi0n
est en el cach0 de =
+ = 5 >1
bus
>1 >1
limpio
La memoria es
correcta
+ lee la palabra > y obtiene
>1. = no responde a la
lectura$ pero la memoria si.
limpio
La palabra permanece el estado '258/ hasta que se elimine del cach0 donde se encuentra
en la actualidad por ra1ones de espacio. En este momento$ desaparece de todos los cach0s y
se escribe en la memoria. Este protocolo tiene tres propiedades importantes7
1. La consistencia se logra haciendo que todos los cach0s husmeen el bus.
:. El protocolo se integra dentro de la unidad de administraci*n de memoria.
;. ?odo el algoritmo se reali1a en un ciclo de memoria.
La desventaja es que no funciona para multiprocesadores de mayor tama.o y nada es vlido
para la memoria compartida distribuida.
Multiprocesadores basados en un anillo
Ejemplo: Memnet
En (emnet$ un espacio de direcciones se divide en una parte privada y una compartida.
La parte compartida se divide en bloques de ;: bytes$ unidad mediante la cual se reali1an
las transferencias entre las mquinas.
Las mquinas (emnet estn conectadas mediante un anillo de fichas modificado. El anillo
consta de :@ cables paralelos$ que juntos permiten enviar 1! bits de datos y A bits de control
cada 1@@ nanosegundos$ para una velocidad de datos de 1!@ (bBseg.
+ = 5 >1
bus
>: >1
invalido
La memoria ya
no es correcta
+ escribe un valor >:. =
husmea en el bus$ ve la
escritura e invalida su
entrada. La copia de + se
marca como sucio.
sucio
+ = 5 >1
bus
>; >1
invalido
La memoria ya
no es correcta
+ escribe > de nuevo. Esta
y las escrituras posteriores
por + se reali1an de manera
local$ sin trfico en el bus.
sucio
+ = 5 >1
bus
>; >1 >;
invalido
La memoria ya
no es correcta
5 lee o escribe >. + ve la solicitud
al husmear en el bus$ proporciona
el valor e invalida su propia
entrada. 5 tiene ahora la 3nica
copia vlida.
sucio invalido
542
(emoria 4rivada
((2 5ache (em. de
origen
&ispositivo
(emnet
9alido
E-clusivo
/rigen
8nterrupci*n
4osici*n
2n bloque e-clusivo de lectura puede estar presente en varias mquinas$ uno de lecturaC
escritura debe estar presente en una sola mquina.
Los bits en el dispositivo (emnet indican uno o ms de los siguientes estados7
9+L8&/7 El bloque esta presente en el cach0 y est actuali1ado.
ED5L2'89/7 La copia local es la 3nica.
/E8FE,7 'e activa si 0sta es la mquina origen del bloque.
8,?EEE2458/,7 'e utili1a para for1ar interrupciones.
4/'858/,7 8ndica la locali1aci*n del bloque en el cach0 si esta presente y es vlido.
Protocolo Memnet.
Lectura.
5uando un 542 desea leer una palabra d ela memoria compartida$ la direcci*n de memoria
por leer se transfiere al dispositivo (emnet$ el cual verifica la tabla del bloque para ver si
est presente. 'i es as$ la solicitud es satisfecha de inmediato. En caso contrario$ el
dispositivo (emnet espera hasta capturar la ficha que circula< despu0s$ cooca un paquete de
solicitud en el anillo y suspende el 542. El paquete de solicitud contiene la direcci*n
deseada y un campo vaco de ;: bytes.
5ada dispositivo (emnet en el anillo verifica si tiene el bloque. &e ser as$ coloca el bloque
en el campo vaco y modifica el encabe1ado del paquete para inhibir la acci*n de las
mquinas posteriores.
'i el bit e-clusivo del bloque est activo$ se limpia. 5uando el paquete regresa al emisor$ se
garanti1a que contiene al bloque solicitado. El 542 que enva la solicitud guarda el bloque$
satisface la solicitud y libera al 542.
'i la mquina solicitante no tiene espacio libre en su cach0 para contener el bloque
recibido$ entonces toma al a1ar un bloque oculto y lo enva a su origen$ con lo que libera un
espacio de cach0. Los bloques cuyo bit origen estn activados nunca se eligen$ pues se
encuentran en su origen.
Escritura.
?enemos tres casos7
a) 'i el bloque contiene la palabra por escribir est presente y es la 3nica copia
en el sistema$ %el bit e-clusivo esta activado) la palabra solo se escribe de
manera local.
b) 'i esta presente el bloque$ pero no es la 3nica copia$ se enva primero un
paquete de invalidaci*n por el anillo para que las otras mquinas desechen
sus copias del bloque por escribir. 5uando el paquete de invalidaci*n regresa
al solicitante$ el bit e-clusivo se activa para ese bloque y se procede a la
escritura local.
c) 'i el bloque no est presente$ se enva un paquete que combina una solicitud
de lectura y una de invalidaci*n. La primera mquina que tenga el bloque lo
copia en el paquete y desecha su copia. ?odas las mquinas posteriores solo
desechan el bloque de sus cach0s. 5uando el paquete regresa al emisor$ 0ste
lo guarda y escribe en 0l.
La ventaja de este protocolo es que se puede aplicar a multicomputadoras.
4rincipales +pro-imaciones a &'(
E-isten tres apro-imaciones a la implementaci*n de memoria compartida distribuida$ las
cuales involucran el uso de hardware$ memoria virtual o bibliotecas de soporte. Estos no
son mutuamente e-clusivas necesariamente.
=asada en hardware. 4or ejemplo &ash y 4L2'. El conjunto de procesadores y los
m*dulos de memoria estn conectados va una red de alta velocidad. El problema es la
escalabilidad.
=asado en pginas. 4oe ejemplo 8vy$ (unin$ (irage$ 5louds$ 5hoices$ 5//L y (ether$
todas implanta &'( como una regi*n de memoria virtual que ocupa el mismo rango de
direcci*n en el espacio de direcciones de cada proceso participante. En cada caso el #ernel
mantiene la consistencia de datos dentro de las regiones &'( como parte del manejo de
fallo de pgina.
=asado en bibliotecas. +lgunos lenguajes o e-tensiones de lenguaje tales como /E5+ y
Linda soportan formas de &'(.

También podría gustarte