PowerPoint Presentation
Sistemas Operativos 24.3. Memoria compartida distribuida en base
a pginas: Diseo, rplica, granulada, consistencia, propietario, y
copias. Lic. Adela Jaimes VillalvaEquipo:Baleria De La Cruz
SantiagoArmando Barrera JavierNorma Modesto RodrguezJos A. Parra
LpezMagdalena Rivera RoqueManuel Herrera Torres
Memoria Compartidalamemoria compartidaes aquel tipo dememoriaque
puede ser accedida por mltiplesprogramas, 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
procesadoro en procesadores separados. La memoria usada entre
doshilos de ejecucindentro 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 distribuidaLos 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.
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 distribuidaEs 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.Memoria compartida distribuida
Ventajas de MCDPresenta 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
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 operativoSistema solicita dicha pgina con
un mensaje.
Tanto ubicacin como acceso son realizados a nivel software.MCD
en base a paginasMCD en base a paginasEl 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.
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.
MCD en base a paginasDiseoLa 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.
DiseoSi 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.GranularidadEn 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
computadoresGranularidad
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.ConsistenciaLos 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)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.PropietarioCuando 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.Propietario
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 pginaBsqueda de copiasEj.
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.
Bsqueda de copias