Sei sulla pagina 1di 18

INSTTITUTO TECNOLOGICO SUPERIOR

DE
CINTALAPA
Materia:
Sistemas operativos II
Catedrtico:
Ing. Reynol Roque Farrera
rea:
ing. en informtica
Estudiante:
Eduardo Diaz Espinosa
Carrasco Toledo Mayra
Hernndez Lpez Noem
Ruiz Glvez Nelvi
Cirilo torres Omar
Semestre: 5
grupo: E
Actividad:
Investigacin cuarta unidad
Cintalapa de Figueroa Chiapas a
10/12/2015

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.

4.1 Configuraciones de memoria compartida distribuida.


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.

Por qu utilizar computacin paralela?

Reducir el tiempo de procesamiento

Resolver problemas de gran embergadura.

Proveer concurrencia.

Utilizar recursos remotos de cmputo cuando los locales son escasos.

Reduccin de costos usando mltiples recursos "baratos" en lugar de


costosas supercomputadoras.

Ampliar los lmites de memoria para resolver problemas grandes.

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.

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

DE

CIRCUITOS,

BASADOS

EN

BUS,

ANILLO

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.

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: s divide en regiones cada mquina cuenta con memoria para su
pila, datos y cdigos no compartidos.

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:
1. Reducir la cantidad de comunicacin.

2. 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.

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.

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

b) 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 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 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 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.

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.

4.6. Administradores de memorias en clusters.

La operacin de clusters requiere de un manejo adecuado de los recursos asociados. Los


recursos del cluster deben ser administrados adecuadamente para que el administrador
invierta la menor cantidad de tiempo en detectar, investigar y recuperar fallos de hardware
y software, y de este modo definir posibles medidas de contingencia y tratar que el sistema
est libre de errores. A su vez, estos pasos permiten la adaptabilidad a los requerimientos
y cambios constantes que se presentan en la manipulacin de tecnologas cluster, en cuanto
se refiere al
hardware, software y al uso de ciertos patrones de diseo.

El administrador de un cluster debe tomar en cuenta algunos aspectos, una vez que se ha
completado la instalacin de los recursos bsicos de hardware y software. Estos aspectos
incluyen la configuracin e instalacin de un sistema de archivos universal, la configuracin
y administracin de recursos mediante herramientas implementadas en software; el
monitoreo de sus actividades y el registro de cada uno de los eventos generados por la
ejecucin de clculos computacionales.
Varios de los sistemas ms importantes para la instalacin automtica de clusters, incluyen
herramientas de monitoreo, administracin y registro de eventos mediante paquetes de
distribucin para sistemas Windows y Linux. Entre estos sistemas estn OSCAR y Rocks
NPACI; ambos sistemas permiten el uso de herramientas de software que tienen propsitos
especficos tales como:
Definicin y administracin de nodos.
Administracin de colas por lotes (Batch Queue Management).
Administracin de recursos: grupos NIS (Network Information Service), cuotas de
disco y CPU.
Administracin de servicios de resolucin de nombres: DNS (Domain Name System para
clusters).
Registro de usuarios para clusters de dimensiones superiores a los 100 nodos.
Monitoreo de carga.
La administracin de clusters, implica tomar medidas preventivas y planificar tareas. La
administracin implica los siguientes aspectos:
Registro de eventos.
Monitoreo o medida del estado de los recursos del cluster.
Recuperacin ante fallos de hardware, software, incluyendo el sistema de archivos.
Administracin del registro de usuarios y grupos de usuarios, de los servicios del cluster
(accounting).
Planificacin de tareas y balanceo de carga.

Registro de Eventos
El manejo de logs, o el registro de eventos generados tanto por el kernel del sistema
operativo, como por los diferentes servicios que han sido habilitados para el establecimiento
de comunicacin entre los nodos, se lo puede realizar mediante comandos del sistema
operativo Linux para poder visualizar los archivos de logs, o utilizar herramientas de
monitoreo tales como:
LogCheck
Swatch
LogSentry
LogDog
Monitoreo y Estado del Cluster
El monitoreo permite conocer si todos los componentes de hardware y software estn
disponibles y operando de acuerdo a lo esperado. Es decir, debe asegurarse que todos los
componentes de hardware estn disponibles durante el arranque del sistema operativo
(CPUs, memoria, discos, dispositivos de red y otros), y de igual forma, que todos los servicios
de software, tales como: planificadores de tareas, administradores de recursos, y demonios
de monitoreo se ejecuten correctamente en el cluster. Entre las herramientas de monitoreso
se pueden mencionar:
Big Brother
Cluemon
Ganglia
Nagios
PARMON
Supermon

Potrebbero piacerti anche