Vous êtes sur la page 1sur 9

MEMORIA COMPARTIDA DISTRIBUIDA

JUAREZ MARTINEZ JOSE ALONSO


GRUPO: 15551
SISTEMAS OPERATIVOS II

INDICE
MEMORIA COMPARTIDA DISTRIBUIDA .................. 2
DE CIRCUITOS, BASADOS EN BUS, ANILLO O CON
CONMUTADOR .................................................................... 3
MULTIPROCESADORES TIPO BUS ................................... 3
MCD BASADA EN ANILLOS ................................................ 4

LA PARTE PRIVADA:........................................................... 4
LA PARTE COMPARTIDA: ............................................................ 4

MCD BASADA EN CONMUTADOR: .......................... 5


MULTIPROCESADORES CON CONMUTADOR. ............... 5

MODELOS DE CONSISTENCIA................................. 6
ESTRICTA, CASUAL, SECUENCIAL, DEBIL, DE
LIBERACION Y DE ENTRADA. ........................................... 7

MEMORIA COMPARTIDA DISTRIBUIDA


Los sistemas de Memoria Compartida Distribuida (MCD), son sistemas que,
mediante software, emulan semntica de memoria compartida sobre hardware que
ofrece soporte solo para comunicacin mediante paso de mensajes. Este modelo
permite utilizar una red de estaciones de trabajo de bajo costo como una maquina
paralela con grandes capacidades de procesamiento y amplia escalabilidad, siendo
a
la
vez
fcil
de
programar.
El objetivo principal de estos sistemas es permitir que un multicomputador pueda
ejecutar programas escritos para un multiprocesador con memoria compartida
Cada uno de los nodos en un sistema de MCD aporta una parte de su memoria local
para construir un espacio global de direcciones virtuales que ser empleado por los
procesos paralelos que se ejecuten en el sistema. El software de MCD se encarga
de interceptar las referencias a memoria que hacen los procesos, y satisfacerlas, ya
sea local o remotamente.
La memoria compartida distribuida (DSM) es una abstraccin utilizada para
compartir datos entre computadores que no comparten memoria fsica. Los
procesos acceden a DSM para leer y actualizar, dentro de sus espacios de
direcciones, sobre lo que aparenta ser la memoria interna normal asignada a un
proceso. Sin embargo, existe un sistema subyacente en tiempo de ejecucin que
asegura de forma transparente que procesos diferentes ejecutndose en
computadores diferentes observen las actualizaciones realizadas entre ellas. Es
como si 1os procesos accedieran a una nica memoria compartida, pero de hecho
la memoria fsica est distribuida.
La principal caracterstica de DSM es que ahorra al programador todo lo
concerniente al paso de mensajes al escribir sus aplicaciones, cuestin que en otro
sistema debera tenerse muy presente. DSM es fundamentalmente una herramienta
para aplicaciones paralelas o para aplicaciones o grupos de aplicaciones
distribuidas en las que se puede acceder directamente a datos individuales que ellas
comparten. En general, DSM es menos apropiado para sistemas cliente-servidor,
ya que los clientes ven al servidor como un gestor de recursos en forma de datos
abstractos que se acceden a travs de peticiones (por razones de modularidad y
proteccin). Sin embargo, los servidores pueden proporcionar DSM compartido
entre los clientes. Por ejemplo, los archivos plasmados en memoria (memory
mapped) que son compartidos y sobre los que se gestiona un cierto grado de consistencia
son
una
forma
de
DSM

DE CIRCUITOS, BASADOS EN BUS, ANILLO O CON CONMUTADOR


Existen varias formas de implantar fsicamente memoria compartida distribuida, a
continuacin
se
describen
cada
una
de
ellas.
Memoria basada en circuitos: Existe una nica rea de memoria y cada micro tiene
su propio bus de datos y direcciones (en caso de no tenerlo se vuelve un esquema
centralizado)
MCD basada en bus: En este esquema los micros comparten un bus de datos y
direcciones por lo que es ms barato de implementar, se necesita tener una
memoria cach grande y sumamente rpida.

MULTIPROCESADORES TIPO BUS


Conexin entre CPU y memoria se hace a travs de cables paralelos:
Algunos transmiten las direcciones y datos que el CPU quiere leer o escribir
Otros envan o reciben datos
El resto para controlar las transferencias.

MCD BASADA EN ANILLOS


Es ms tolerante a fallos, no hay coordinador central y se privilegia el uso de la
memoria ms cercana.
Multiprocesadores basados en anillo. Ejemplo Memnet: un espacio de direcciones
se divide en una parte privada y otra compartida.
La parte privada:
Se divide en regiones cada mquina cuenta con memoria para su pila, datos y
cdigos no compartidos.
La parte compartida:
Comn a todas las mquinas y se guarda de forma consistente mediante un
protocolo de hardware parecido a los de bus se divide en bloques de 32 bytes,
(unidad transferencia).

MCD BASADA EN CONMUTADOR:


Varios micros se conectan entre s en forma de bus formando un grupo, los grupos
estn interconectados entre s a travs de un conmutador. Cuando se realiza una
operacin de memoria se intenta realizar dentro del grupo, de lo contrario pasa al
conmutador para que lo redirecciones a otro grupo.

MULTIPROCESADORES CON CONMUTADOR.


En anillo o bus, el hecho de aadir un CPU satura el ancho de banda del bus o anillo
Dos mtodos para solucionar el problema:
Reducir la cantidad de comunicacin
Incrementar la capacidad de comunicacin
Una forma de reducir la cantidad de comunicacin es el ocultamiento trabajo
adicional en esta rea:
Mejorar protocolo de ocultamiento
Optimizar el tamao del bloque
Incrementar la localidad de las referencias a memoria.
Sin embargo siempre se querr aadir ms CPUs y no habr ms ancho de banda
en el bus.

MODELOS DE CONSISTENCIA
Un modelo de consistencia es esencialmente un contrato entre procesos y el almacenamiento de datos.
Es decir: si los procesos acuerdan obedecer ciertas reglas, el almacenamiento promete trabajar
correctamente.
Normalmente un proceso que realiza una operacin de lectura espera que esa operacin devuelva un
valor que refleje el resultado de la ltima operacin de escritura sobre el dato.
En Informtica, en un sistema distribuido, tales como una memoria compartida distribuida o almacenes
de datos distribuido, tales como una base de datos, sistema de archivos, cach web o sistemas de
replicacin optimista, hay una serie de posibles modelos de consistencia de datos. Se dice que un
sistema soporta un determinado modelo, si las operaciones en memoria siguen normas especficas.
La consistencia de los datos es definida entre el programador y el sistema, que garantiza que si el
programador sigue las reglas, la memoria ser consistente y el resultado de las operaciones de
memoria ser predecible.
Los lenguajes de alto nivel, tales como C, C++ y Java, respetan parcialmente este modelo traduciendo
operaciones de memoria en operaciones de bajo nivel para preservar la memoria semntica. Para
mantener el modelo, los compiladores pueden reordenar algunas instrucciones de memoria, y las
llamadas a las bibliotecas como pthread_mutex_lock(), encapsular la sincronizacin necesaria.
Los ejemplos incluyen:

Linealizable (tambin conocido como el estricta o consistencia atmica)


Consistencia secuencial
Consistencia de causalidad
Consistencia liberada
Consistencia eventual
Consistencia delta
Consistencia PRAM (tambin conocido como consistencia FIFO)
Consistencia dbil
Consistencia vector campo

La duplicidad de los bloques compartidos aumenta el rendimiento, pero produce un problema de


consistencia entre las diferentes copias de la pgina en caso de una escritura.
Si con cada escritura es necesario actualizar todas las copias, el envo de las pginas por la red provoca
que el tiempo de espera aumente demasiado, convirtiendo este mtodo en impracticable.

ESTRICTA, CASUAL, SECUENCIAL, DEBIL, DE LIBERACION Y DE


ENTRADA.
CONSISTENCIA CASUAL: La condicin a cumplir para que unos datos sean causalmente
consistentes es:
Escrituras que estn potencialmente relacionadas en forma causal deben ser vistas por todos
los procesos en el mismo orden.
Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes mquinas.
Es permitida con un almacenamiento causalmente consistente, pero no con un
almacenamiento secuencialmente consistente o con un almacenamiento consistente en forma
estricta.
CONSISTENCIA SECUENCIAL: La consistencia secuencial es una forma ligeramente ms
dbil de la consistencia estricta. Satisface la siguiente condicin:
El resultado de una ejecucin es el mismo si las operaciones (lectura y escritura) de todos los
procesos sobre el dato fueron ejecutadas en algn orden secuencial
a) Un dato almacenado secuencialmente consistente.
b) Un dato almacenado que no es secuencialmente consistente.
CONSISTENCIA DBIL: Los accesos a variables de sincronizacin asociadas con los datos
almacenados son secuencialmente consistentes.
PROPIEDADES
No se permite operacin sobre una variable de sincronizacin hasta que todas las escrituras
previas de hayan completado.
No se permiten operaciones de escritura o lectura sobre datos hasta que no se hayan
completado operaciones previas sobre variables de sincronizacin.
CONSISTECIA DE LIBERACION: Se basa en el supuesto de que los accesos a variables
compartidas se protegen en secciones crticas empleando primitivas de sincronizacin, como

por ejemplo locks. En tal caso, todo acceso esta precedido por una operacin adquiere y
seguido por una operacin release. Es responsabilidad del programador que esta propiedad
se cumpla en todos los programas.
Consistencia de Entrada: El modelo de consistencia de entrada requiere que cada variable
compartida ordinaria se asocie con alguna variable de sincronizacin, como una cerradura o
una barrera. Si se quiere utilizar de forma individual en paralelo a los elementos de un arreglo,
entonces los diferentes elementos del arreglo deben asociarse con cerraduras diferentes.
Cuando se realiza una adquisicin sobre una variable de sincronizacin, slo se pide la
consistencia de las variables compartidas ordinarias protegidas por esa variable
desincronizacin.

Vous aimerez peut-être aussi