Sunteți pe pagina 1din 8

8/11/2014

Sistemas Operativos II: Unidad 4: Memoria Compartida Distribuida


0

Ms

Siguiente blog

Crear un blog

Acceder

Sistemas Operativos II
Este blog trata acerca de la materia de Sistemas Operativos II del Instituto Tecnolgico de Mexicali, impartida por el Dr. Jesus Gutierrez
Ocampo

viernes, 16 de noviembre de 2012

Indice
Unidades Sistemas Operativos:
Unidad 1: Sistemas Operativos en
Ambientes Distribuidos

Unidad 2: Comunicacin en los Sistemas


Operativos Distribuidos

Unidad 3: Procesos y procesadores en


sistemas distribuidos

Unidad 4: Memoria compartida distribuida

Unidad 4: 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.

Unidad 5: Usos y tendencias de los SOD


Temas de Inters:
Conceptos Bsicos

Foro de Sistemas Operativos

Comparaciones de Sistemas Operativos

TED talk: Moral Operating System

4.1 Configuraciones de memoria compartida


distribuida.

Archivo del blog

COMPUTACIN PARALELA
Un computador paralelo es un conjunto de procesadores capaces de cooperar en la
solucin de un problema. El problema se divide en partes. Cada parte se compone de
un conjunto de instrucciones. Las instrucciones de cada parte se ejecutan
simultneamente en diferentes CPUs. Tcnicas computacionales que descomponen
un problema en sus tareas y pistas que pueden ser computadas en diferentes
mquinas o elementos de proceso al mismo tiempo.

2012 (9)
noviembre (2)
Unidad 5: Usos y tendencias de
los Sistemas Distri...
Unidad 4: Memoria Compartida
Distribuida

Por qu utilizar computacin paralela?

octubre (2)
septiembre (3)

Reducir el tiempo de procesamiento

agosto (2)

Resolver problemas de gran embergadura.


Proveer concurrencia.

Contacto

Utilizar recursos remotos de cmputo cuando los locales son escasos.


Reduccin de costos usando mltiples recursos "baratos" en lugar de
costosas supercomputadoras.

Michael Duarte
Seguir

86

Ampliar los lmites de memoria para resolver problemas grandes.

Ver todo mi perfil

El mayor problema de la computacin paralela radica en la complejidad de sincronizar


unas tareas con otras, ya sea mediante secciones crticas, semforos o paso de
mensajes, para garantizar la exclusin mutua en las zonas del cdigo en las que sea
necesario.

Buscar este blog


Buscar

La computacin paralela est penetrando en todos los niveles de la computacin,


desde computadoras masivamente paralelas usados en las ciencias de larga escala
computacional, hasta servidores mltiples procesadores que soportan procesamiento

http://sistemasoperativosii-itm.blogspot.mx/2012/11/unidad-4-memoria-compartida-distribuida.html

1/8

8/11/2014

Sistemas Operativos II: Unidad 4: Memoria Compartida Distribuida


de transacciones. Los principales problemas originados en cada uno de las reas
bsicas de la informtica (por ejemplo, algoritmos, sistemas, lenguajes, arquitecturas,
etc.) se vuelven an ms complejos dentro del contexto de computacin paralela.

Vistors

Skype

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:
3

Share It
Share this on
Facebook
Tweet this

o Algunos transmiten las direcciones y datos que el CPU quiere leer o escribir
o Otros envan o reciben datos
o El resto para controlar las transferencias.

View stats
(NEW) Appointment
gadget >>

Dicha coleccin de cables se conoce con el nombre de bus.


Buses pueden ser parte del chip, pero en la mayora de los sistemas los
buses son externos y son usados para conectar circuitos impresos.
Una forma simple de construir multiprocesadores es conectarlos en un bus
con ms de un CPU.
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:
o se divide en regiones cada mquina cuenta con memoria para su pila, datos y

http://sistemasoperativosii-itm.blogspot.mx/2012/11/unidad-4-memoria-compartida-distribuida.html

2/8

8/11/2014

Sistemas Operativos II: Unidad 4: Memoria Compartida Distribuida


cdigos no compartidos.
Parte compartida:
o 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:
o 1. Reducir la cantidad de comunicacin
o 2. Incrementar la capacidad de comunicacin

Una forma de reducir la cantidad de comunicacin es el ocultamiento trabajo adicional


en esta rea:
o mejorar protocolo de ocultamiento
o optimizar el tamao del bloque
o 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.

4.2 Modelos de consistencia.


Un modelo de consistencia de memoria especifica las garantas de consistencia que
un sistema MCD realiza sobre los valores que los procesos leen desde los objetos,
dado que en realidad acceden sobre una rplica de cada objeto y que mltiples
procesos pueden actualizar los objetos.
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 cada escritura es necesario actualizar todas las copias el envi de las paginas por
red provoca que el tiempo de espera aumente demasiado convirtiendo el mtodo en
impracticable.

http://sistemasoperativosii-itm.blogspot.mx/2012/11/unidad-4-memoria-compartida-distribuida.html

3/8

8/11/2014

Sistemas Operativos II: Unidad 4: Memoria Compartida Distribuida

CARACTERISTICAS DE CONSISTENCIA

Mantener consistencia no es algo simple.

Un simple acceso a memoria puede requerir un gran nmero de paquetes a ser


enviados.

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


CONSISTENCIA ESTRICTA: El modelo de consistencia ms restrictivo es llamado
consistencia estricta y es definido por la siguiente condicin cualquier lectura sobre un
tem de dato X retorna un valor correspondiente con la ms reciente escritura sobre X.
CONSISTENCIA CASUAL: Es un debilitamiento de la consistencia secuencial. Se
hace una diferenciacin entre eventos que estn potencialmente relacionados en forma
casual y aquellos que no.
La condicin a cumplir para que unos datos sean casualmente consistentes es:
Escrituras que estn potencialmente relacionados en forma casual deben ser vistas
por todos los procesos en el mismo orden.
Esta secuencia es permitida con un almacenamiento casualmente consistente o con
un almacenamiento consistente en forma estricta.
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.
Esta secuencia 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 y las
operaciones de cada proceso individual aparecen en esta operaciones de cada proceso
individual aparecen en esta secuencia en el orden especificado por su programa
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:

http://sistemasoperativosii-itm.blogspot.mx/2012/11/unidad-4-memoria-compartida-distribuida.html

4/8

8/11/2014

Sistemas Operativos II: Unidad 4: Memoria Compartida Distribuida


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 tems de datos hasta que no se hayan completado operaciones previas
sobre variables de sincronizacin.
CONSISTENCIA LIBERACIN (RELEASE): El modelo de consistencia release, RC,
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.
Puesto que ningn otro proceso, ni local ni remoto, puede acceder a las variables que
han sido modificadas mientras se encuentren protegidas en la seccin critica, la
actualizacin de cualquier modificacin puede postergarse hasta el momento en que
se lleva a cabo la operacin relase.
Propagacin de Actualizaciones bajo RC y LRC de cdigo sin proteger. En
consecuencia obtuvo un valor inconsistente para la variable leda.

4.3 MCD en base de pginas.


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:
1.

Se notifica al sistema operativo

2.

Sistema solicita dicha pgina con un mensaje.

Tanto ubicacin como acceso son realizados a nivel software.


Ejemplos: IVY y Mirage
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. Si no se encuentra, se provoca un fallo de pgina,
y el sistema operativo solicita la pgina al resto de computadoras.
El sistema funciona de forma anloga al sistema de memoria virtual tradicional, pero
en este caso los fallos de pgina se propagan al resto de ordenadores, hasta que la
peticin llega al ordenador que tiene la pgina virtual solicitada en su memoria 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.
Una mejora dirigida a mejorar el rendimiento sugiere dividir el espacio de direcciones

http://sistemasoperativosii-itm.blogspot.mx/2012/11/unidad-4-memoria-compartida-distribuida.html

5/8

8/11/2014

Sistemas Operativos II: Unidad 4: Memoria Compartida Distribuida


en una zona local y privada y una zona de memoria compartida, que se usar
nicamente por procesos que necesiten compartir datos. 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 REPLICA GRANULARIDAD CONSISTENCIA


Hay dos razones principales para la replicacin de datos:
Confiabilidad
Continuidad de trabajo ante cada de la rplica, mayor cantidad de copias
mejor proteccin contra la corrupcin de datos.

Rendimiento
El SD escala en nmero
Escala en rea geogrfica (disminuye el tiempo de acceso al dato) Consulta
simultnea de los mismos datos.
GRANULARIDAD.
Se refiere a la especificidad a la que se define un nivel de detalle en una tabla, es
decir, si hablamos de una jerarqua la granularidad empieza por la parte ms alta de la
jerarqua, siendo la granularidad mnima, el nivel ms bajo.
MODELOS 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.
Los modelos de consistencia se presentan divididos en dos conjuntos:

Modelos de consistencia centrados en los datos.


Modelos de consistencia centrados en el cliente.

4.4 MCD en base a variable.


Munin:

1. Consistencia de liberacin.
2. Protocolos mltiples.
3. Directorios.
4. Sincronizacin.

http://sistemasoperativosii-itm.blogspot.mx/2012/11/unidad-4-memoria-compartida-distribuida.html

6/8

8/11/2014

Sistemas Operativos II: Unidad 4: Memoria Compartida Distribuida

Midway:

1. Consistencia de entrada.
2. Implementacin.
La comparticin falsa se produce cuando dos procesos se pelean el acceso a la
misma pgina de memoria, ya que contiene variables que requieren los dos, pero estas
no son las mismas. Esto pasa por un mal diseo del tamao de las pginas y por la
poca relacin existente entre variables de la misma pgina.
En los MCD basados en variables se busca evitar la comparticin falsa ejecutando un
programa en cada CPU que se comunica con una central, la que le provee de variables
compartidas, administrando este cualquier tipo de variable, poniendo variables grandes
en varias pginas o en la misma pgina muchas variables del mismo tipo, en este
protocolo es muy importante declarar las variables compartidas.
En los MCD basados en objetos se busca el acceso a datos por medio de la
encapsulacin de la informacin. Y repartida a travs de la red, estos objetos sern
definidos por el Programador y las CPUs cambiaran los estados segn procedan con
los accesos.
MCD BASADA EN VARIABLES COMPARTIDAS
El problema del false sharing puede eliminarse si se utiliza una granularidad ms tan
fin tan fina, como las entidades que usualmente se comparten en los programas
paralelos:
Las variables. De ser as, el problema ahora consiste en cmo mantener registro de
las variables replicadas. Adems, es probable que sea ms conveniente utilizar una
poltica de actualizacin y no de invalidacin, puesto que en la implementacin debe
ser posible identificar escrituras a variables individuales.

4.5 MCD en base a objetos.


Nace como respuesta a la creciente popularizacin de los lenguajes orientados por
objetos.
Los datos se organizan y son transportados en unidades de objetos, no unidades de
pginas.
Es un modelo de programacin de DSM de alto nivel.
Una alternativa al uso de pginas es tomar el objeto como base de la transferencia de
memoria. Aunque el control de la memoria resulta ms complejo, el resultado es al
mismo tiempo modular y flexible, y la sincronizacin y el acceso se pueden integrar
limpiamente. Otra de las restricciones de este modelo es que todos los accesos a los
objetos compartidos han de realizarse mediante llamadas a los mtodos de los
objetos, con lo que no se admiten programas no modulares y se consideran
incompatibles.
Un ejemplo de un sistema de MCD que utiliza una granularidad a nivel de variable
compartida es Munin, una de las primeras implementaciones de MCD. Munin permite
la ubicacin de variables individuales en pginas diferentes, de modo que se pueda
utilizar el hardware de paginacin para identificar los accesos a las variables
compartidas.
Publicado por Michael Duarte en 11:13
Recomendar esto en Google

No hay comentarios:
Publicar un comentario en la entrada
Introduce tu comentario...

Comentar como:

Publicar

Cuenta de Google

Vista previa

http://sistemasoperativosii-itm.blogspot.mx/2012/11/unidad-4-memoria-compartida-distribuida.html

7/8

8/11/2014

Sistemas Operativos II: Unidad 4: Memoria Compartida Distribuida

Entrada ms reciente

Pgina principal

Entrada antigua

Suscribirse a: Enviar comentarios (Atom)

Michael Duarte - Sistemas Operativos II - ITM. Plantilla Awesome Inc.. Imgenes de plantillas de enot-poloskun. Con la tecnologa de Blogger.

http://sistemasoperativosii-itm.blogspot.mx/2012/11/unidad-4-memoria-compartida-distribuida.html

8/8

S-ar putea să vă placă și