Está en la página 1de 59

ndice

Memoria global compartida


Joaqun Seoane Pascual
joaquin@dit.upm.es Departamento de Ingeniera de Sistemas Telemticos Universidad Politcnica de Madrid 16 de noviembre de 2004

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 1 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

ndice
Concepto Realizaciones Consistencia secuencial basada en paginacin Consistencias dbiles ligadas a la sincronizacin Otros modelos de consistencia Modelos basados en lenguajes 3 6 22 50 56 57

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 2 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Concepto
Pgina

Memoria Virtual Compartida

Pantalla Imprimir Cerrar Salir

M. Virtual Privada M. Fisica M. Sec. UCP

M. Virtual Privada M. Fisica M. Sec. UCP

M. Virtual Privada M. Fisica M. Sec. UCP

M. Virtual Privada M. Fisica M. Sec. UCP


Memoria global compartida 16 de noviembre de 2004 Pgina: 3 de 59

First Prev Next Last Go Back Full Screen Close Quit

Caractersticas
Libera al programador de pasar mensajes. No se necesita serializar estructuras de datos

ndice

Fcil compartir estructuras de datos complejas. Slo sencillo y eciente para mquinas homogneas.
Comunicacin implcita los datos se llevan a donde haga falta

Pgina Pantalla Imprimir Cerrar Salir

Costes ocultos. Puede haber mucho trasiego.


En general permite pasar a una red un programa realizado para multiprocesador. Sincronizacin va instrumentos de memoria compartida (espera activa, cerrojos, semforos, regiones crticas). Puede ser persistente.
Memoria global compartida 16 de noviembre de 2004 Pgina: 4 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Paso de mensajes y memoria global compartida


Paso de mensajes Necesita serializar datos Fcil heterogeneidad Buena proteccin Apto para cliente/servidor Interlocutores simultneos Eciencia controlable Memoria global Lo datos se ven Heterogeneidad ms difcil Peligro de acceso incontrolado Apto para clculo distribuido Interlocutores no necesitan coincidir Control de eciencia difcil

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 5 de 59

First Prev Next Last Go Back Full Screen Close Quit

Realizaciones
Basados en hardware: (Firey, Dash)

ndice

Antecesores de la memoria global compartida. Multiprocesadores con bus o redes de interconexin. Gestin por hardware.
Basados en paginacin: (Ivy, Mether)

Pgina Pantalla Imprimir Cerrar Salir

Usan mecanismos de paginacin de memoria virtual tradicional.


Basados en lenguajes o bibliotecas:

Completamente gestionados por programa. Objetos y mtodos. Variables compartidas.


Paginacin + bibliotecas:

(Orca) (Linda, JavaSpaces) (Munin, Midway)


Memoria global compartida 16 de noviembre de 2004 Pgina: 6 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Estructura de la informacin compartida


Orientada a (secuencias de) octetos.
Pgina

Independiente del lenguaje. Slo dos operaciones: L(x)a y E (y )b.


Orientada a objetos.

Pantalla Imprimir Cerrar Salir

A un objeto slo se accede por mtodos. Los mtodos soportan la replicacin, la heterogeneidad, el control de
acceso. Orientada a datos inmutables (normalmente tuplas).

Slo se escriben, leen o extraen, pero no se modican.

Memoria global compartida 16 de noviembre de 2004 Pgina: 7 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Pgina

Sincronizacin
Espera activa: (algoritmos de Dekker, Dijkstra, etc, instruccin TESTAND-SET). Cerrojos, semforos, barreras, ... distribuidos ( paso de mensajes). Integrable en el sistema de conservacin de consistencia, para reducir el trasiego de pginas.

Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 8 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Consistencia
Realizacin trivial es muy ineciente:
Pgina

1. Cada dato est en un solo sitio. 2. Local acceso directo. 3. Remoto mensaje. Realizacin eciente requere rplicas (caches?): 1. Los datos se copian donde se usen. 2. Las actualizaciones se deberan agrupar y retrasar. 3. Las copias pueden tener valores distintos inconsistencia. 4. Debemos denir modelos de consistencia apropiados.

Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 9 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Pgina

Modelos de consistencia
Contratos entre el software y la memoria: Si el software cumple ciertas reglas la memoria promete trabajar de forma correcta. ...... Para una lectura qu escrituras van a proporcionar el valor?

Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 10 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Totalmente inconsistente
Las lecturas ocasionan replicacin. Las escrituras se propagan perezosamente, sin ninguna garanta de orden. Leo algo que se haya escrito antes. Ej: recopilacin de datos continuos (rendimiento, meteorolgicos, clculos de relajacin).

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 11 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Un ejemplo
a:= 0; b:= 0; __________________________________________________ br:= b; | a:= a+1; ar:= a; | b:= b+1; if (ar >= br) then | print("OK"); | __________________________________________________ Si la actualizacin de b se adelanta a la de a, el clculo es incorrecto.
Memoria global compartida 16 de noviembre de 2004 Pgina: 12 de 59

Pgina Pantalla Imprimir Cerrar Salir

First Prev Next Last Go Back Full Screen Close Quit

ndice

Linealizabilidad (consistencia estricta o atmica)


Un objeto replicado es linealizable ejecucin un entrelazado de las operaciones de los clientes que verica: 1 Coincide con un posible entre- Si ocurre L(x)a, la ltima eslazado con el objeto sin replicar. critura que ocurri en x fu E (x)a, o no la hubo y el valor inicial de x era a (coherencia de memoria). 2 El orden de las operaciones Si una operacin ocurri antes en el entrelazado es consistente que otra, debe estar antes en el con el tiempo real en que ocu- entrelazado. rrieron en los clientes.
Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 13 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Pgina Pantalla

Necesidad y coste de la linealizabilidad


Todo programador debe saber que no ha de hacer programas cuya correccin dependan de la velocidad relativa de los procesos. Implementable (centralizando) pero muy costosa.

Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 14 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Consistencia secuencial
Un objeto replicado es secuencialmente consistente ejecucin un entrelazado de las operaciones de los clientes que verica: 1 Coincide con un posible entre- Si ocurre L(x)a, la ltima eslazado con el objeto sin replicar. critura que ocurri en x fu E (x)a, o no la hubo y el valor inicial de x era a (coherencia de memoria). 2 El orden de las operaciones en el entrelazado es consistente con el orden del programa en que las ejecutaron los clientes.
Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 15 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Trazas de lecturas y escrituras P1 : E (x)1 P2 : L(x)0 L(x)1


Entrelazado equivalente: L(x)0, E (x)1, L(x)1. (consistencia secuencial)
Pgina Pantalla Imprimir Cerrar Salir

P1 : E (x)1 P2 : L(x)1 L(x)1


Entrelazado equivalente: E (x)1, L(x)1, L(x)1. (linealizabilidad)

Memoria global compartida 16 de noviembre de 2004 Pgina: 16 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Pgina

Sobre la consistencia secuencial


Es vlida para todos los programas de multiprocesador cuya correccin no dependa de velocidades relativas. Es costosa de realizar.

Pantalla Imprimir Cerrar Salir

Mejora con consistencias ms dbiles.

Memoria global compartida 16 de noviembre de 2004 Pgina: 17 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Pgina

Consistencias dbiles basadas en sincronizacin


A las variables compartidas debera accederse con sincronizacin. Durante el acceso exclusivo slo un proceso posee la variables. Las actualizaciones se propagan al salir (o entrar) de la regin crtica. No apto para pasar programas de multiprocesador inalterados.

Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 18 de 59

First Prev Next Last Go Back Full Screen Close Quit

Opciones de actualizacin
1. Actualizar en escritura: Cada lectura pide una rplica si no la tiene. Cada escritura se multienva a las rplicas. Consistencia secuencial multienvo ordenado totalmente. Las lecturas son baratas. Las escrituras son muy caras. 2. Invalidar en escritura: Cada lectura pide una rplica si no la tiene. Cada escritura invalida las otras rplicas. Permite varias escrituras seguidas ecientemente. Costoso compartir (trasiego). 3. No replicar: Si hay muchas escrituras.

ndice

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 19 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Granularidad
Puede ser la variable. Es ms eciente la pgina. De qu tamao?
Pgina Pantalla Imprimir Cerrar Salir

Grande Mucha transferencia de datos por copia. Mucha comparticin falsa. Pequea. Cada transferencia tiene un coste mnimo grande. Demasiada administracin.

Memoria global compartida 16 de noviembre de 2004 Pgina: 20 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Trasiego (thrashing)
Tiempo til << Tiempo de copias Empeora con invalidacin al escribir. LOOP Modifica(i); END | | | LOOP Usa(i); END
Pgina Pantalla Imprimir Cerrar Salir

Dar prioridad al escritor durante un plazo. Especicar patrones de uso de la memoria compartida.
Memoria global compartida 16 de noviembre de 2004 Pgina: 21 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Consistencia secuencial basada en paginacin


Pgina

Ejemplo de sistema basado en paginacin: Ivy.

Pantalla Imprimir Cerrar Salir

Se comparten las direcciones (se pueden almacenar y pasar punteros). Paginacin transparente a los procesos. El SO puede asignar permisos: nada, lectura, lectura/escritura. La violacin de un permiso ocasiona desvo (trap) al SO. El desvo lo atiende el ncleo,
pero puede delegar gestin en proceso de usuario. Compite con la memoria virtual ordinaria.

Memoria global compartida 16 de noviembre de 2004 Pgina: 22 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Gestin de lecturas
Pgina

Si no se tiene la pgina,

Pantalla Imprimir Cerrar

Toma control el sistema operativo. La trae. Ajusta permiso de slo lectura. Se completa la lectura.

Salir

Lecturas sucesivas se hacen localmente. Un intento de escritura dara control al sistema operativo.
Memoria global compartida 16 de noviembre de 2004 Pgina: 23 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Gestin de escrituras
Si la pgina no est,

Toma control el sistema operativo.


Pgina

La trae. Se invalidan las dems copias. Se ajusta permiso de lectura/escritura. Se completa la escritura.

Pantalla Imprimir Cerrar Salir

Si la pgina estaba y no haba sido escrita antes,

Se invalidan las dems copias. Se ajusta permiso de lectura/escritura. Se completa la escritura.


Escrituras y lecturas sucesivas se hacen localmente.
Memoria global compartida 16 de noviembre de 2004 Pgina: 24 de 59

First Prev Next Last Go Back Full Screen Close Quit

Si se actualizara al escribir
Si la pgina no est,

ndice

Toma control el sistema operativo. La trae.


Si la pgina estaba,

Pgina Pantalla Imprimir Cerrar Salir

Toma control el sistema operativo.


Se ajusta permiso de lectura/escritura. Se ajusta modo traza. Se completa la escritura. Retoma control el sistema operativo, que multienva (orden total). Se ajusta permiso de lectura slo. Se quita modo traza.

Memoria global compartida 16 de noviembre de 2004 Pgina: 25 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Problema de la actualizacin al escribir


Muy ineciente:

Pgina Pantalla Imprimir Cerrar

Dos faltas de pgina por escritura.


Mejorable:

Salir

Propagar varias escrituras. Propagar diferencias.

Memoria global compartida 16 de noviembre de 2004 Pgina: 26 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Pgina

Gestin de pginas en invalidacin al escribir


Una pgina p tiene un propietario: owner(p). Varios procesos tienen copias de p: copyset(p). Cualquiera debe poder determinar owner(p) y copyset(p) con suciente exactitud.

Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 27 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Escrituras
Pgina

Pw intenta escribir en pgina p (ausente o protegida).


Si ausente, se trae de owner(p). Se retiran permisos de copyset(p).

Pantalla Imprimir Cerrar Salir

copyset(p) := {Pw }. owner(p) := Pw .


Da permiso de escritura a p y completa operacin.
Memoria global compartida 16 de noviembre de 2004 Pgina: 28 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Lecturas Pr intenta leer de pgina p (ausente o invalidada).


Se trae de owner(p).

Pgina Pantalla Imprimir Cerrar Salir

Se conserva owner(p), quitando permiso de escritura. Tambin podra ser owner(p) := Pr . copyset(p) := copyset(p) {Pr }.
Da permiso de lectura a p y completa operacin.

Memoria global compartida 16 de noviembre de 2004 Pgina: 29 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Protocolos de invalidacin
Cmo se determina owner(p)? Cmo se determina copyset(p)?
Pgina Pantalla Imprimir Cerrar Salir

1. Centralizado: uno tiene owner(p) y ste tiene copyset(p). 2. Reparto esttico: p gestor(p). 3. Gestin distribuida. 4. Multienvo.
Memoria global compartida 16 de noviembre de 2004 Pgina: 30 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Gestin centralizada p, el gestor tiene owner(p) y ste copyset(p).


Pgina

Falta envo de < n(p), acceso > al gestor. El gestor manda < n(p), acceso > a owner(p). Si escritura, el gestor cambia owner(p) a cliente. Peticiones sucesivas se encolan al cliente.

Pantalla Imprimir Cerrar Salir

ownerviejo(p) transere p directamente a cliente. Si lectura, actualiza copyset(p) con cliente. Si escritura, manda copyset(p) a cliente, que se encarga de invalidar
con multienvo.
Memoria global compartida 16 de noviembre de 2004 Pgina: 31 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Mensajes en gestin centralizada (lectura)


Demandante Propietario

<p>

Pgina Pantalla Imprimir Cerrar Salir

<n(p), lectura>

<demandante, n(p), lectura>

n(p) owner(p)

Gestor
Memoria global compartida 16 de noviembre de 2004 Pgina: 32 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Mensajes en gestin centralizada (escritura)


Demandante Propietario

<p, copyset(p)>

Pgina Pantalla Imprimir Cerrar Salir

<n(p), escritura>

<demandante, n(p), escritura>

n(p) owner(p)

Gestor
Memoria global compartida 16 de noviembre de 2004 Pgina: 33 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Pgina

Problemas de la gestin centralizada


El gestor es un cuello de botella (y punto crtico de fallo).

Pantalla Imprimir Cerrar Salir

Distribuir el gestor: gestor(p) (funcin de hash bien conocida). Podra no repartir la carga uniformemente. (Tampoco tolera fallos).

Memoria global compartida 16 de noviembre de 2004 Pgina: 34 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Gestin con multienvo


Pgina

owner(p) se localiza con multienvo y tiene copyset(p).


Detalles:

Pantalla Imprimir Cerrar Salir

Falta multienvo de < p, acceso > Responde owner(p): Si escritura, cambia owner(p) a cliente, que recibe p y copyset(p). Si lectura, actualiza copyset(p) con cliente, que recibe p.
Problemas: pueden perderse o duplicarse peticiones en concurrencia.

Memoria global compartida 16 de noviembre de 2004 Pgina: 35 de 59

First Prev Next Last Go Back Full Screen Close Quit

Prdida de peticin
C1 C2 O

ndice

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 36 de 59

First Prev Next Last Go Back Full Screen Close Quit

Duplicacin de peticin si se recuerdan


C1 C2 O

ndice

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 37 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Solucin con envo ordenado totalmente


C1 C2 O

Pgina Pantalla Imprimir Cerrar Salir

Los clientes descartan peticiones anteriores a la suya.

Memoria global compartida 16 de noviembre de 2004 Pgina: 38 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Solucin con vectores de tiempo de cambios de propiedad


C1
000

C2
000

O
001

Ignora peticiones que no conozcan el paso por el que pide: Peticiones y cesiones llevan rv = RVi . Paso de propiedad a i hace RV = rv e incrementa RVi [i]. Peticiones de j a k se encolan en k . Se ignoran peticiones de j con rv [j ] < RVk [j ].
101

000

Pgina Pantalla Imprimir Cerrar

000

000

000

Salir

001

101

Memoria global compartida 16 de noviembre de 2004 Pgina: 39 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Gestin distribuida basada en sugerencias


El multienvo molesta a los procesadores. Distribuir carga entre los usuarios. Todo proceso tiene, para cada pgina, un probOwner(p) (sugerencia).
Pgina Pantalla Imprimir Cerrar Salir

Transere la propiedad actualiza probOwner(p) al receptor. Invalida p actualiza probOwner(p) al invalidador. Lee pgina p actualiza probOwner(p) al proveedor. Recibe peticin y no la tiene:

Se la manda a probOwner(p). Actualiza probOwner(p) a demandador.


Mejora si propietarios difunden propiedad de vez en cuando.
Memoria global compartida 16 de noviembre de 2004 Pgina: 40 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Actualizacin de probOwner(p): situacin inicial


B C D E

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 41 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Actualizacin de probOwner(p): falta de escritura


B C D E

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 42 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Actualizacin de probOwner(p): falta de lectura


B C D E

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 43 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Reemplazo de pginas
Cuando se pide una pgina, puede no haber marco: Qu pgina se reemplaza?
Pgina Pantalla Imprimir Cerrar Salir

Usar algoritmo LRU... Preferir una pgina limpia poseda por otro.
Qu se hace con ella?

Si poseda y duplicada, transferir la posesin. Si no hay copias: Llevarla a disco. Transferirla a otro procesador:
Al origen. Al que ms memoria libre tenga.
Memoria global compartida 16 de noviembre de 2004 Pgina: 44 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Trasiego (thrashing)
Cmo minimizar copias y transferencias de propiedad? Transparente:
Pgina Pantalla Imprimir Cerrar Salir

Se asigna un plazo para retener la propiedad. Fijo. Observar si se ha accedido (MMU). Observar longitud de colas de peticiones pendientes.
Asisitida:

Anotar las variables para dirigir el comportamiento.


Memoria global compartida 16 de noviembre de 2004 Pgina: 45 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Exclusin mutua y sincronizacin


Pueden usarse mecanismos de sistemas centralizados:
Pgina Pantalla Imprimir Cerrar Salir

Variables compartidas usadas para especicar turnos (espera activa) Instrucciones ordinarias (algoritmos complejos: Dekker, Dijkstra,
etc). Instrucciones indivisibles (TEST-AND-SET).

Mecanismos de alto nivel: Semforos, cerrojos (paso de mensajes implcito). Paso de mensajes explcito.
Memoria global compartida 16 de noviembre de 2004 Pgina: 46 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

TEST-AND-SET
La variable est a 0 si libre y a 1 si ocupado. La instruccin lee y escribe 1. Para entrar mira si estaba a 0, en cuyo caso entra. Para salir se pone a 0. Se comporta como una escritura.

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 47 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

TEST-AND-SET y dos procesos


1. A entra en regin crtica y pone variable a 1.
Pgina

2. B hace TEST-AND-SET en un bucle. La primera vez se trae copia, invalidando la de A. Las dems veces usa su copia local. 3. A sale de la regin crtica y pone variable a 0. A solicita la pgina con la variable e invalida la copia de B. La pone a 0. B solicita la pgina y, al estar a 0, la pone a 1. B entra en seccin crtica.

Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 48 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

TEST-AND-SET y ms de dos procesos


En el caso de dos procesos no hay trasiego. Si hay ms, s lo hay.

Pgina Pantalla Imprimir Cerrar Salir

Todos los procesos que hagan TEST-AND-SET invalidarn las dems


copias.

Como estn en espera activa, hay mucho trasiego intil.


Siempre la espera activa es intil.
Memoria global compartida 16 de noviembre de 2004 Pgina: 49 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Consistencias dbiles ligadas a la sincronizacin


Pgina

Normalmente:

Pantalla Imprimir Cerrar Salir

Propagacin perezosa de escrituras.


Primitivas de sincronizacin integradas con el sistema de consistencia:

De liberacin. De entrada. Cualquier acceso de sincronizacin.


Conveniente anotar patrones de uso para guiar al sistema.
Memoria global compartida 16 de noviembre de 2004 Pgina: 50 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Ejemplo: liberacin con cerrojos


P1 P2 Cierra(C); Cierra(C); a:= a+1; Imprime(a,b); b:= b+1; Abre(C); Abre(C); Garantiza que siempre se imprime a, b | a = b + k . Cierra detiene otros procesos pidiendo C. Adquirido el recurso, puede leer y escribir (quiz en un clon). Abre propaga las modicaciones (quiz comparando modelo con clon) o invalida copias. Podra esperarse al siguiente Cierre para propagar o invalidar.
Memoria global compartida 16 de noviembre de 2004 Pgina: 51 de 59

Pgina Pantalla Imprimir Cerrar Salir

First Prev Next Last Go Back Full Screen Close Quit

ndice

Un sistema con consistencia de liberacin: Munin


Basado en paginacin. Requiere ayuda del programador y el compilador:
Pgina Pantalla

Variables ordinarias. Variables compartidas. Variables de sincronizacin. Anotaciones.

Imprimir Cerrar Salir

Primitivas de sincronizacin integradas:

Cierra(Cerrojo) Abre(Cerrojo) Espera(Barrera)


Puede intercambiar listas de modicaciones.
Memoria global compartida 16 de noviembre de 2004 Pgina: 52 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Protocolos de consistencia
Actualizacin o invalidacin al escribir.
Pgina

Si puede haber varias rplicas escribibles. Si retrasar actualizaciones o invalidaciones. Si hay propietario jo. Si mltiples escritores. Si slo lectura. ... Complicado para el programador anotar patrones de uso de variables.

Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 53 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Patrones de uso de variables


Slo lectura despus de valor inicial copia libre. Migratoria: turnos para varios accesos, incluyendo escrituras se da acceso en lectura/escritura directamente. En regin crtica. Reduccin: consulta/modicacin dejar en un sitio. Escritura compartida a partes diferentes propaga diferencias. Resultado: varios actualizan partes diferentes y uno calcula sobre todo slo propagar al lector. Productor/consumidores: slo actualiza uno actualizacin al escribir, mejor con cerrojo. ...
Memoria global compartida 16 de noviembre de 2004 Pgina: 54 de 59

Pgina Pantalla Imprimir Cerrar Salir

First Prev Next Last Go Back Full Screen Close Quit

ndice

Ejemplo: escritura compartida con barrera


P1 Espera(B); i:=0; while(i<n) do a[i]:= a[i]+f(i); i:=i+2; done; Espera(B); Clona y permite escribir. Propaga modicaciones en cada Espera. Mezcla: si se solapan error fatal.
Memoria global compartida 16 de noviembre de 2004 Pgina: 55 de 59

P2 Espera(B); i:=1; while(i<n) do a[i]:= a[i]+g(i); i:=i+2; done; Espera(B);

Pgina Pantalla Imprimir Cerrar Salir

First Prev Next Last Go Back Full Screen Close Quit

Otros modelos de consistencia


Uniformes: No distinguen entre accesos ordinarios y de sincronizacin: Causal: Se ven en el mismo orden las operaciones causalmente relacionadas. PRAM: Se ven en el mismo orden las escrituras del mismo procesador (FIFO). Coherencia: Escrituras en la misma variable en el mismo orden. De procesador: Coherencia y PRAM. Secuencial: Coherencia y entrelazado. Hbridos: Distinguen entre accesos ordinarios y de sincronizacin: De entrada: Fuerza al entrar. De liberacin: Fuerza al salir. Dbil: No distinge tipos de sincronizacin.

ndice

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 56 de 59

First Prev Next Last Go Back Full Screen Close Quit

ndice

Modelos basados en lenguajes


Datos inmutables:
Pgina

No se pueden modicar no hay varias copias no hay inconsistencia. Se pueden leer, extrayndolos o no. Sincronizan.
Objetos con mtodos sincronizantes:

Pantalla Imprimir Cerrar Salir

Slo se accede a los datos por medio de procedimientos. Llevan exclusin mutua implcita. Pueden llevar sincronizacin a largo plazo.

Memoria global compartida 16 de noviembre de 2004 Pgina: 57 de 59

First Prev Next Last Go Back Full Screen Close Quit

Tuplas inmutables: Linda, JavaSpaces


Un objeto es una tupla de componentes tipados: ("abc", 2.5) ("familia", "hermano", "Mara", "Juana") Una tupla se crea: out("abc", 2.5); out("abc", 7.3); out("abc", 2.5) Puede esperarse por una: in("abc", 2.5) Puede esperarse por un patrn: in("abc", ?x) Tambin: leerse, calcularse en paralelo...

ndice

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida 16 de noviembre de 2004 Pgina: 58 de 59

First Prev Next Last Go Back Full Screen Close Quit

Objetos: Orca
Object implementation pila; cima: integer; datos: array[0..N-1] of integer; operation apila(e: integer); begin datos[cima]:= e; cima:= cima+1 end; operation dpila(): integer; begin guard cima > 0 do cima:= cima-1; return datos[cima]; od; end;

ndice

Pgina Pantalla Imprimir Cerrar Salir

Memoria global compartida

begin cima:= 0 end;

16 de noviembre de 2004 Pgina: 59 de 59

First Prev Next Last Go Back Full Screen Close Quit

También podría gustarte