Beruflich Dokumente
Kultur Dokumente
Integrantes:
Actividad: INVESTIGACIN
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:
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:
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.
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.
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.
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
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.
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.
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.