Você está na página 1de 10

INSTITUTO TECNOLOGICO SUPERIOR DE

CINTALAPA

ING. INFORMATICA
SISTEMAS OPERATIVOS II
DOCENTE:
ING. REYNOL ROQUE FARRERA
UNIDAD IV
PRESENTAN:
JOSE ANGEL ORTIZ SANCHEZ
JOSE FRACISCO CORTES SOLIS
JOSE ANGEL MORALES RAMOS
REY DANIEL CRUZ CAMACHO
OSCAR ROMEO PEREZ AQUINO
5 SEMESTRE

GRUPO H

CINTALAPA, CHIAPAS A 09 DE DICIEMBRE DEL 2015


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

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:
* se 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 l 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 operacin 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:
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:
Se notifica al sistema operativo
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 variable.


Munin:
Consistencia de liberacin.
Protocolos mltiples.
Directorios.
Sincronizacin.
Midway:
Consistencia de entrada.
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 cambiarn 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.

Você também pode gostar