Está en la página 1de 21

Sistemas Operativos 2

Lic. Adela Jaimes Villalva

4.3. Memoria compartida


distribuida en base a pginas:
Diseo, rplica, granulada,
consistencia, propietario, y
copias.

Equipo:
Baleria De La Cruz Santiago
Armando Barrera Javier
Norma Modesto Rodrguez
Jos A. Parra Lpez
Magdalena Rivera Roque
Manuel Herrera Torres

Memoria Compartida
la memoria compartida es aquel tipo de memoria que puede ser
accedida por mltiples programas, ya sea para comunicarse entre ellos o
para evitar copias redundantes. La memoria compartida es un modo eficaz
de pasar datos entre aplicaciones. Dependiendo del contexto, los programas
pueden ejecutarse en un mismo procesador o en procesadores separados.
La memoria usada entre dos hilos de ejecucin dentro de un mismo
programa se conoce tambin como memoria compartida.

Todos los procesadores comparten una


zona de memoria. Los datos escritos en ella
por un procesador son visibles al resto.

Memoria compartida distribuida


Los sistemas de
memoria compartida distribuida (DSM)
representan la creacin hibrida de dos tipos de computacin
paralelos: la memoria distribuida en sistemas multiprocesador y los
sistemas distribuidos.
El concepto de memoria compartida distribuida es reconocido como
uno de los enfoques ms atractivos para la creacin de sistemas
escalables, de alto rendimiento de sistemas multiprocesador
En un Sistema Operativo Distribuido, un computador ejecuta los
procesos en su memoria propia, pero en caso de necesitar ms
memoria utilizar los recursos disponibles de otra computadora.

Memoria compartida distribuida


La Memoria compartida distribuida ayuda a que no se formen los famosos
cuellos de botella, facilita el diseo y construccin de sistemas distribuidos.
Existen tres formas bsicas de lograr comparticin de memoria en
ambientes distribuidos: por hardware, por sistema operativo o a nivel de
usuario (software).

Memoria compartida distribuida


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.

Memoria compartida distribuida


Es un cluster o una particin de procesadores que tienen acceso a
una memoria compartida comn pero sin un canal compartido.
Esto es, fsicamente cada procesador posee su memoria local y se
interconecta con otros procesadores por medio de un dispositivo de
alta velocidad, y todos ven las memorias de cada uno como un
espacio de direcciones globales.

Ventajas de MCD
Presenta escalabilidad como en los sistemas de memoria
distribuida.
Es fcil de programar como en los sistemas de memoria
compartida.
No existe el cuello de botella que se puede dar en
mquinas de slo memoria

MCD en base a paginas


Cada CPU cuenta con su propia memoria y no pueden
referenciar memoria remota directamente.
Cuando direccin CPU se encuentra en una pgina que
reside en una mquina remota:
Se notifica al sistema operativo
Sistema solicita dicha pgina con un mensaje.
Tanto ubicacin como acceso son realizados a nivel
software.

MCD en base a paginas


El esquema de MCD propone un espacio de direcciones
de memoria virtual que integre la memoria de todas las
computadoras del sistema, y su uso mediante
paginacin.
Las pginas quedan restringidas a estar necesariamente
en un nico ordenador. Cuando un programa intenta
acceder a una posicin virtual de memoria, se
comprueba si esa pgina se encuentra de forma local.

MCD en base a paginas


A primera vista este sistema parece ms 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
trfico de pginas excesivo.
Esta abstraccin se acerca a la idea de programacin mediante la
declaracin explcita de datos pblicos y privados, y minimiza el
envo de informacin, ya que slo se enviarn los datos que
realmente vayan a compartirse.

Diseo
La idea es sencilla: Emular el cach de un
multiprocesador mediante MMU (unidad de manejo de
memoria) y el SO. El espacio de direcciones se separa en
pedazos dispersos en todos los procesadores. Cuando un
CPU referencia a una direccin remota ocurre un
sealamiento y el software DSM trae el pedazo que
contiene la direccin y reinicia la instruccin
suspendida, que puede concluir con xito.

Diseo
Si el cpu 1 referencia los
pedazos 0, 2, 5 o 9, lo
hace localmente. Las
referencias
al
resto
provocan sealamientos.
Ej.: si el cpu 1referencia
el pedazo 10 provocar
un
sealamiento
al
software
DSM,
que
mueve el pedazo 10 de la
computadora 2 a la 1

Replica
Una mejora es duplicar los pedazos
exclusivos para lectura.
Ej.: El uso del pedazo 10 de la
figura por parte del cpu1 provoca el
envo de una copia sin perturbar el
original del cpu2. As, los cpus 1 y 2
pueden usar el pedazo 10 con la
frecuencia que sea sin causar
sealamientos
de
memoria
faltante.
Otra posibilidad es duplicar los
pedazos no slo de lectura. Si un
pedazo duplicado se modifica, hay
que realizar algo para evitar la
inconsistencia de las copias.

Granularidad
En los sistemas basados en pginas la granularidad de la memoria
se delinea al nivel de pgina de memoria. Esto quiere decir que la
mnima unidad referenciable por el sistema de MCD es la pgina, no
pudiendo hacer distincin entre variables distintas almacenadas en
la misma pgina. A pesar de que el uso de una granularidad a nivel
de pagina puede introducir problemas como el false sharing,
tambin permite mantener el overhead producido por la
administracin de la memoria distribuida dentro de parmetros
razonables. Esto se debe a que es posible hacer uso de las
caractersticas del hardware para el manejo de la memoria virtual,
disponibles en la mayora de los computadores

Granularidad

En este caso tenemos una pgina que tiene dos variables compartidas
no relacionadas A y B. El cpu1 lee y escribe A frecuentemente, el cpu2
usa B de igual forma. La pgina que contiene A y B viajar
constantemente entre los dos cpus. Aunque las variables no estn
relacionadas, por accidente aparecen en la misma pgina, y cuando un
proceso requiere una, tambin obtiene la otra. Mientras mayor sea el
tamao de pgina esto ocurrir ms.

Consistencia
Los sistemas DSM tienen una o ms copias de cada una de
las pginas de memoria. Cuando una computadora remota
llama una pgina, sta se seala y es ocupada. Si alguna
pgina est muy compartida, y slo se tiene una copia se
puede presentar un cuello de botella. Si por el contrario, se
tienen muchas copias se evita el embotellamiento pero
surge un nuevo problema: la consistencia de todas las
copias, sobre todo si las copias estn en diferentes pginas
que se comunican a travs de una lenta red (en
comparacin con la velocidad de la memoria)

Propietario
Cada pgina tiene un propietario (el ltimo proceso que la modific)
La forma de encontrar al propietario de la pgina, es sencilla concite en
realizar una transmisin y solicitar la respuesta del propietario de la
pagina especificada. El propietario asido localizado de esta manera, el
protocolo puede continuar. La optimizacin consiste no solo en preguntar
quin es el propietario, si no tambin indicar si el emisor desea leer o
escribir y si necesita una copia de la pgina. El propietario puede enviar
entonces un mensaje, transfiriendo la propiedad y la pagina segn sea
necesario. La trasmisin tiene la desventaja de interrumpir a cada
procesador, obligndolo a inspeccionar el paquete de solicitud. La
transmisin puede utilizar un ancho de banda considerable segn el
hardware.

Propietario
Cuando un proceso P desea una pgina que no tiene, enva un
mensaje al controlador de pginas indicando la operacin a realizar
y en qu pgina. El controlador contesta con un mensaje indicando
el propietario. P contacta al propietario para obtener la pgina o la
propiedad. Se requieren 4 mensajes para este protocolo.

Propietario
La figura muestra una optimizacin: El controlador
enva la solicitud directamente al propietario, quien
contesta a P, ahorrando un mensaje.

Bsqueda de copias
Es la forma de localizar todas las copias cuando estas se
invaliden. Hay dos posibilidades:
la primera consiste en trasmitir un mensaje con un nmero
de pginas y solicitar a todos los procesadores que
contengan la pagina que la invaliden. Solo funcionan si los
mensajes retransmisin son por completo confiables.
La segunda posibilidad consiste en que el propietario o el
controlador de pginas mantengan una lista de conjunto de
copias, indicndolos procesos que posen tal o cual pgina

Bsqueda de copias
Ej. La pgina 4 es poseda por el cpu1 (recuadro doble). El conjunto
de copias consta de 2 y 4 ya que las copias de la pgina 4 estn en las
mquinas 2 y 4.

También podría gustarte