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 &'(.