Está en la página 1de 17

INSTITUTO TECNOLGICO SUPERIOR DE CINTALAPA

Ciencia y tecnologa al servicio de la comunidad

Integrantes:

CARRASCO TOLEDO MAYRA

DIAZ ESPINOSA EDUARDO

DOMINGUEZ RAMIREZ JESUS IVAN

HERNANDEZ LOPEZ NOEMI

POZO PEREZ DANIELA GUADALUPE

Catedrtico: ING. ROQUEZ FARRERA

Asignatura: SIETAMAS OPERATIVO II

rea: INGENIERA INFORMTICA

Semestre: QUINTO Grupo: E

Actividad: INVESTIGACIN

Periodo: AGOST DICIEMBRE 2015

4.1 Configuraciones de memoria compartida distribuida: de


circuitos, basada en bus, anillo o con conmutador.

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. Ellos proveen la abstraccin de
memoria compartida en sistemas con memorias distribuidas fsicamente y
consecuentemente combinan las mejores caractersticas de ambos enfoques.
Debido a esto, 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.

Multiprocesadores basados en un bus.


Para evitar que dos o ms CPUs intenten el acceso a la memoria al mismo tiempo,
se necesita algn tipo de arbitraje del bus. El CPU debe pedir permiso para
conseguir el bus. La concesin puede hacerse de forma centralizada, utilizando un
dispositivo de arbitraje de bus, o de forma descentralizada, donde el primer CPU
que realice una solicitud en el bus ganar cualquier conflicto.
La desventaja es la sobrecarga del bus.

Una solucin sera equipar a cada CPU con un cach husmeador.


Un protocolo en particular comn es el de escritura a travs del cach. Cuando un
CPU lee por primera vez una palabra de memoria, esa palabra es llevada por el bus
y guardada en el cach del CPU solicitante.
Puede suceder que una palabra en particular se oculte en dos o ms CPU al mismo
tiempo.

Operacin de lectura.
Si la palabra no est en el cach, entonces buscarla en la memoria y copiarla a su
cach.
Si la palabra est en el cach, tomar el dato de ah.
Operacin de escritura
Si ningn CPU tiene la palabra en su cach, entonces la palabra es actualizada en
memoria, como si el ocultamiento no hubiera sido utilizado.
Si el CPU (que realiza la escritura) tiene la nica copia de la palabra, se actualiza
su cach y tambin la memoria mediante el bus.
Si dos o ms CPU tienen la palabra, entonces se actualiza la palabra en el cach y
en la memoria, y se invalidan las entradas de esa palabra en los cachs de los otros
CPU. As la palabra slo la tendr la memoria y un solo cach. Una alternativa a
invalidar otras entradas de cach es actualizarlas todas, pero esto puede resultar
ms lento.
Una ventaja de este protocolo es que es fcil de entender e implantar, la desventaja
es que todas las escrituras utilizan el bus.
Existe otro tipo de protocolos como el protocolo de membresa. Una versin de este
protocolo plantea lo siguiente. Se manejan bloques de cach, cada uno de los
cuales puede estar en uno de los siguientes estados:

1. INVALIDO: Este bloque de cach no contiene datos vlidos.


2. LIMPIO: La memoria est actualizada, el bloque puede estar en otros cachs.
3. SUCIO: La memoria es incorrecta; ningn otro cach puede contener al bloque.
La palabra permanece el estado SUCIO hasta que se elimine del cach donde se
encuentra en la actualidad por razones de espacio. En este momento, desaparece
de todos los cachs y se escribe en la memoria. Este protocolo tiene tres
propiedades
importantes:
1. La consistencia se logra haciendo que todos los cachs husmeen el bus.
2. El protocolo se integra dentro de la unidad de administracin de memoria.
3. Todo el algoritmo se realiza en un ciclo de memoria.

La desventaja es que no funciona para multiprocesadores de mayor tamao y nada


es vlido para la memoria compartida distribuida.
Multiprocesadores basados en un anillo

Ejemplo: Memnet
En Memnet, un espacio de direcciones se divide en una parte privada y una
compartida. La parte compartida se divide en bloques de 32 bytes, unidad mediante
la cual se realizan las transferencias entre las mquinas. Las mquinas Memnet
estn conectadas mediante un anillo de fichas modificado. El anillo consta de 20
cables paralelos, que juntos permiten enviar 16 bits de datos y 4 bits de control cada
100 nanosegundos, para una velocidad de datos de 160 Mb/seg. Un bloque
exclusivo de lectura puede estar presente en varias mquinas, uno de lecturaescritura debe estar presente en una sola mquina.Los bits en el dispositivo Memnet
indican uno o ms de los siguientes estados:

1. VALIDO: El bloque est presente en el cach y est actualizado.


2. EXCLUSIVO: La copia local es la nica.
3. ORIGEN: Se activa si sta es la mquina origen del bloque.
4. INTERRUPCION: Se utiliza para forzar interrupciones.
5. POSICION: Indica la localizacin del bloque en el cach si est presente y es
vlido.
6. Protocolo Memnet.
7. Lectura.

Cuando un CPU desea leer una palabra de la memoria compartida, la direccin de


memoria por leer se transfiere al dispositivo Memnet, el cual verifica la tabla del
bloque para ver si est presente. Si es as, la solicitud es satisfecha de inmediato.
En caso contrario, el dispositivo Memnet espera hasta capturar la ficha que circula;
despus, coloca un paquete de solicitud en el anillo y suspende el CPU. El paquete
de solicitud contiene la direccin deseada y un campo vaco de 32 bytes.
Cada dispositivo Memnet en el anillo verifica si tiene el bloque. De ser as, coloca el
bloque en el campo vaco y modifica el encabezado del paquete para inhibir la
accin de las mquinas posteriores.
Si el bit exclusivo del bloque est activo, se limpia. Cuando el paquete regresa al
emisor, se garantiza que contiene al bloque solicitado. El CPU que enva la solicitud
guarda el bloque, satisface la solicitud y libera al CPU.

Si la mquina solicitante no tiene espacio libre en su cach para contener el bloque


recibido, entonces toma al azar un bloque oculto y lo enva a su origen, con lo que
libera un espacio de cach. Los bloques cuyo bit origen estn activados nunca se
eligen, pues se encuentran en su origen.

Escritura.
Tenemos tres casos:
A. Si el bloque contiene la palabra por escribir est presente y es la nica copia en
el sistema, (el bit exclusivo est activado) la palabra solo se escribe de manera local.
B. Si est presente el bloque, pero no es la nica copia, se enva primero un paquete
de invalidacin por el anillo para que las otras mquinas desechen sus copias del
bloque por escribir. Cuando el paquete de invalidacin regresa al solicitante, el bit
exclusivo se activa para ese bloque y se procede a la escritura local.
C. Si el bloque no est presente, se enva un paquete que combina una solicitud de
lectura y una de invalidacin. La primera mquina que tenga el bloque lo copia en
el paquete y desecha su copia. Todas las mquinas posteriores solo desechan el
bloque de sus cachs. Cuando el paquete regresa al emisor, ste lo guarda y
escribe en l.

La ventaja de este protocolo es que se puede aplicar a multicomputadoras.


Principales Aproximaciones a DSM
Existen tres aproximaciones a la implementacin de memoria compartida
distribuida, las cuales involucran el uso de hardware, memoria virtual o bibliotecas
de soporte. Estos no son mutuamente exclusivas necesariamente.
Basada en hardware. Por ejemplo Dash y PLUS. El conjunto de procesadores y los
mdulos de memoria estn conectados va una red de alta velocidad. El problema
es la escalabilidad.
Basado en pginas. Por ejemplo Ivy, Munin, Mirage, Clouds, Choices, COOL y
Mether, todas implanta DSM como una regin de memoria virtual que ocupa el
mismo rango de direccin en el espacio de direcciones de cada proceso
participante. En cada caso el kernel mantiene la consistencia de datos dentro de las
regiones DSM como parte del manejo de fallo de pgina.

4.2 Modelos de consistencia: Estricta, causal, secuencial, dbil, de


liberacin, y de entrada.

Un modelo 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.
En Informtica, en un sistema distribuido, tales como una memoria compartida
distribuida o almacenes de datos distribuido, tales como una base de datos, sistema
de archivos, cach web o sistemas de replicacin optimista, hay una serie de
posibles modelos de consistencia de datos. Se dice que un sistema soporta un
determinado modelo, si las operaciones en memoria siguen normas especficas. La
consistencia de los datos es definida entre el programador y el sistema, que

garantiza que si el programador sigue las reglas, la memoria ser consistente y el


resultado de las operaciones de memoria ser predecible.

Los lenguajes de alto nivel, tales como C, C++ y Java, respetan parcialmente este
modelo traduciendo operaciones de memoria en operaciones de bajo nivel para
preservar la memoria semntica. Para mantener el modelo, los compiladores
pueden reordenar algunas instrucciones de memoria, y las llamadas a las
bibliotecas como pthread_mutex_lock(), encapsular la sincronizacin necesaria.

Los ejemplos incluyen:

Linealizable (tambin conocido como el estricta o consistencia


atmica)
Consistencia secuencial
Consistencia de causalidad
Consistencia liberada
Consistencia eventual
Consistencia delta
Consistencia PRAM (tambin conocido como consistencia FIFO)
Consistencia dbil
Consistencia vector campo

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 con cada escritura es necesario actualizar todas las copias, el envo de las
pginas por la red provoca que el tiempo de espera aumente demasiado,
convirtiendo este mtodo en impracticable

Consistencia Casual
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.
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
Un dato almacenado secuencialmente consistente.
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 datos hasta que no se
hayan completado operaciones previas sobre variables de sincronizacin.

Consistencia de Liberacin
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.

Consistencia Estricta
Est definido por la siguiente condicin: Cualquier lectura a una localidad de
memoria x regresa el valor guardado por la operacin de escritura ms reciente en
x Esta definicin supone la existencia de un tiempo global absoluto (como en la
fsica de Newton), para que la determinacin del evento "ms reciente" no sea
ambigua. Esta consistencia es tpica de sistemas uniprocesador, donde nunca se
pueden presentar dos eventos simultneamente. Sin embargo es prcticamente
imposible de lograr en sistemas multiprocesador (distribuidos o no), debido a que
pueden existir escrituras y lecturas en memoria separadas por espacios mnimos de
tiempo que no alcanzan a cumplir la condicin exigida.

4.3 Memoria compartida distribuida en base a pginas: Diseo,


replica, granulada, consistencia, propietario, y copias.

El esquema de DSM propone un espacio de direcciones de memoria virtual que


integra la memoria de todas las computadoras del sistema, y su uso se realiza
mediante paginacin. Las pginas quedan restringidas a estar necesariamente en
un nico nodo. 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 nodos. 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 nodo 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.
El sistema operativo, y en el caso del protocolo de consistencia de entrada, por
acciones de sincronizacin explcitas dentro del cdigo del usuario. El hecho que la
especificacin se encuentre dispersa dificulta tanto la incorporacin de nuevos
protocolos de consistencia como la modificacin de los ya existentes, debido a que
los componentes tienen adems de su funcionalidad bsica responsabilidades que
no les corresponden.

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.

4.4 Memoria compartida distribuida en base a variables

En los MCD basados en variables 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.
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 este esquema la granularidad es ms fina ya que slo se comparten variables
que han sido marcados previamente en el cdigo del programa.
Tanto el compilador como el entorno de ejecucin se encargan del acceso y
comparticin de las variables compartidas.
Ejemplos: Munin y Midway

Se recomienda la duplicacin. sta puede ser parcial o total.


El Algoritmo de actualizacin es sumamente importante.
No hay comparticin falsa dado que todos los procesos acceden a datos protegidos
y consistentes dado que la variable compartida monitoriza los accesos de escritura.
Munin
Se basa en objetos del software (usa MMU).
Declaraciones con shared.
Una variable compartida por pgina (por defecto).
Instrucciones normales de lectura y escritura.
No hay mtodos de proteccin especiales.
Se manejan regiones crticas.

Clases de variables:
Variables ordinarias.
Variables de datos compartidos.
Variables de sincronizacin.

Categoras de variables:
Exclusiva para lectura.
Migratoria.
De escritura compartida.
Convencional.
Midway
Compartir estructuras de datos individuales.
C, C++ o ML convencional con informacin adicional.
Mantiene consistentes las variables compartidas de manera eficiente

4.5 Memoria compartida distribuida en base a objetos

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

Ventajas:
Es ms modular que otras tcnicas.
La implementacin es ms flexible por que los accesos son controlados.
Sincronizacin y accesos se pueden integrar juntos, ms fcilmente
Desventajas:
No corre en viejos programas para multiprocesadores.
Los accesos se deben hacer invocando a los accesos, lo que significa ms trabajo
que los mtodos de pginas compartidas.

Ejemplos: Linda y Orca

No existe una memoria lineal en bruto.


La localizacin y administracin de los objetos es controlada por el sistema de
tiempo de ejecucin.
Los objetos se pueden duplicar o no. En caso de duplicarse, hay que decidir cmo
se harn las actualizaciones.
Evitan el compartimiento falso.

El Sistema Linda
El acceso a memoria se hace mediante un pequeo conjunto de primitivas que se
agregan a los lenguajes existentes.
Las ventajas son que no hay que aprender un nuevo lenguaje, es sencillo de
implantar y es portable.
Se basa en un espacio de nada global a todo el sistema.

Las nada de Linda


Son anlogas a las estructuras de C.
Las operaciones sobre ellas son restringidas; slo se soportan cuatro operaciones:
out(matrix-I, i, j, 3.14)

in(abc, 2, ?i)
read(abc, 2, ?i)
eval(X,Y,Z), con X,Y,Z expresiones.

El Sistema Orca
El acceso a memoria se basa en un esquema de objetos protegidos.
Consta del lenguaje, el compilador y el sistema de tiempo de ejecucin.
Se basa en Mdula 2.
Los objetos son pasivos y no se soporta la herencia.
Cada operacin consta de una lista (proteccin, bloque de enunciados).
Cuenta con una operacin fork, en la que se basa la distribucin de objetos.
Las operaciones son atmicas y secuencialmente consistentes.
Usa sincronizacin de la exclusin mutua y sincronizacin de condiciones.
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.

Qu son los objetos?


Estructura de datos encapsulada definida por el programador. Se componen de
datos internos (estado) y operaciones o mtodos. Cumplen con la propiedad de
ocultamiento dela informacin, por lo que contribuyen con la modularidad.
No existe una memoria lineal en bruto. La localizacin y administracin de los
objetos es controlada por el sistema de tiempo de ejecucin. Los objetos se
pueden duplicar o no. En caso de duplicarse, hay que decidir cmo se harn las
actualizaciones. Evitan el compartimiento falso.
Sus principales desventajas son que no soportan programas multiprocesadores
antiguos y el costo adicional que genera el acceso indirecto a los datos.
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.