You are on page 1of 19

Sistemas Operativos Distribuidos

Memoria compartida distribuida (DSM, Distributed Shared Memory)

Contenidos del Tema


Introduccin Estrategias de implementacin Aspectos de diseo de DSM Modelos de coherencia Ejemplo de implementacin de DSm:
Sistema basada en pginas con coherencia secuencial

Sistemas Operativos Distribuidos 2

Fernando Prez Costoya Jos Mara Pea Snchez

Introduccin (1/2)
Multiprocesadores con mem. compartida vs. s. distribuidos:
HW ms complejo y difcilmente ampliable SW ms sencillo y mejor conocido

Modelo de programacin en sistemas con mem. compartida


Llamadas a procedimiento (o invocacin de mtodos) Comunicacin mediante datos compartidos Sincronizacin mediante semforos

Modelo de programacin tradicional en s. distribuidos


Basado en paso de mensajes

Sistemas Operativos Distribuidos 3

Fernando Prez Costoya Jos Mara Pea Snchez

Introduccin (2/2)
Nuevo modelo de programacin en s. distribuidos
RPC (o RMI) Memoria compartida distribuida (DSM)
Memoria compartida implementada por software Simulada mediante paso de mensajes Permite comunicacin mediante datos compartidos y sincronizacin mediante semforos

Objetivo:
Sistemas fciles de construir y programar

Problema:
Obtener un rendimiento aceptable

Sistemas Operativos Distribuidos 4

Fernando Prez Costoya Jos Mara Pea Snchez

Visin general de la DSM


Distributed shared mem ory

Proc es s ac cess ing DSM

DSM appears as memory in address spac e of process

Phy sic al memory

Phy sic al memory

Phy sic al memory

Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000
Sistemas Operativos Distribuidos 5 Fernando Prez Costoya Jos Mara Pea Snchez

Estrategias de implementacin (1/2)


DSM basada en hardware:
Multiprocesadores con arquitectura NUMA (p. Ej. Dash) HW permite a un procesador acceder a memoria privada de otro Dado carcter HW, queda fuera de esta exposicin nico espacio de direcciones virtuales para todo el sistema Fallo de pgina puede implicar solicitarla a mquina remota
Intenta imitar a un multiprocesador
SO notifica fallo a mdulo DSM que enva mensaje solicitando pgina

DSM basada en pginas:

Accesos a DSM convencionales (LOAD/STORE) En principio, programas diseados para multiprocesador pueden usarse directamente sin adaptarlos Primer sistema IVY (Li, 1986)
Sistemas Operativos Distribuidos 6

Fernando Prez Costoya Jos Mara Pea Snchez

DSM basada en pginas

Proc es s ac cessing paged DSM s egment

Kernel redirec ts page f aults to us er-lev el handler

Kernel

Pages transf erred ov er network

Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000
Sistemas Operativos Distribuidos 7 Fernando Prez Costoya Jos Mara Pea Snchez

Estrategias de implementacin (2/2)


DSM basada en variables compartidas:
Slo se comparten variables marcadas como tal en programa Compilador + entorno de ejecucin encargados de gestionar accesos a estas variables Acceso a DSM se convierte en llamada a entorno de ejecucin Ejemplos: Munin y Midway

DSM basada en objetos:


Se comparten objetos DSM=Coleccin de objetos compartidos Acceso a datos compartidos mediante mtodos
Facilita control de accesos

Ejemplos: Linda, Orca


Sistemas Operativos Distribuidos 8 Fernando Prez Costoya Jos Mara Pea Snchez

Aspectos de diseo de DSM


Granularidad de los datos compartidos
Proceso accede a dato no presente en su mquina Qu se solicita?
Inevitable en DSM basada en pginas

Slo el dato requerido Puede ser ineficiente Unidad mayor que contiene dato Genera false-sharing

Thrashing

Procesos compitiendo por dato (realmente o por false-sharing) Puede causar sobrecarga por transferencia de mensajes
Pgina viaja continuamende de procesador a procesador

Poltica de escritura:

Write-update: dato escrito se propaga a copias Write-invalidate: escritura genera invalidacin de copias
Fernando Prez Costoya Jos Mara Pea Snchez

Modelos de coherencia
Sistemas Operativos Distribuidos 9

False-sharing
Ejemplo para un sistema DSM basado en pginas, producido por accesos a A y a B en dos procesadores distintos

A
page n

B
page n + 1

Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000
Sistemas Operativos Distribuidos 10 Fernando Prez Costoya Jos Mara Pea Snchez

Modelos de coherencia
Buen rendimiento requiere mltiples copias de los datos Compromiso entre coherencia y rendimiento:
Modelos de coherencia ms relajados

Modelo de coherencia:
Contrato entre el SW y la memoria que establece qu reglas deben seguir las aplicaciones para funcionar correctamente

Aplicables a coherencia de cache en multiprocesadores Numerosos modelos propuestos en literatura(Mosberger 1993)


Dependiendo de si distinguen entre tipos de accesos o no:
Modelos uniformes: P. ej. Coherencia secuencial Modelos hbridos: P. ej. Coherencia de liberacin

Coherencia causal(U),de procesador(U),PRAM(U),de entrada(H), etc.


Sistemas Operativos Distribuidos 11 Fernando Prez Costoya Jos Mara Pea Snchez

Ejemplo de acceso compartido


Procesador 1 x = 1; y = 1; print z

Procesador 2
z = 2; print x, y

Orden de ejecucin real


P1: x = 1; P2: z = 2; P1: y = 1; P2: print x,y P1: print z

Las variables valen inicialmente 0 Anlisis de resultados dependiendo del modelo de coherencia
qu valores se imprimen?
Sistemas Operativos Distribuidos 12 Fernando Prez Costoya Jos Mara Pea Snchez

Coherencia atmica
Lectura de una posicin de memoria devuelve el valor guardado por la operacin de escritura ms reciente Orden absoluto con respecto al tiempo de accesos a memoria Difcil de implementar en sistemas distribuidos nico resultado vlido:
P2: {x=1, y=1}; P1: {z=2}

Sistemas Operativos Distribuidos 13

Fernando Prez Costoya Jos Mara Pea Snchez

Coherencia secuencial
Modelo uniforme ms dbil (Lamport, 1979) Resultado equivalente a que los accesos a memoria de los procesadores se ejecutaran en algn orden secuencial apareciendo las operaciones de cada procesador en el orden especificado por su programa. Definicin similar a la seriabilidad de las transacciones Todos los procesadores ven accesos a memoria en el mismo orden que puede ser distinto del tiempo real

Sistemas Operativos Distribuidos 14

Fernando Prez Costoya Jos Mara Pea Snchez

Coherencia secuencial en el ejemplo


Algunos resultados vlidos adicionales:
P2: {x=0, y=0}; P1: {z=2}
Posible orden: z=2; print x,y; x=1; y=1; print z

P2: {x=1, y=0}; P1: {z=2}


Posible orden: x=1; z=2; print x,y; y=1; print z

Algunos resultados invlidos (no hay un orden posible)


P2: {x=0, y=0}; P1: {z=0} P2: {x=1, y=0}; P1: {z=0} P2: {x=0, y=1}; P1: {z=2}

Sistemas Operativos Distribuidos 15

Fernando Prez Costoya Jos Mara Pea Snchez

Coherencia dbil
No siempre se requiere propagar escrituras inmediatamente
P. ej. proceso en sec. crtica slo necesita propagar cambios al salir

Modelo de coherencia hbrido (Dubois, 1986):


Se distinguen distintos tipos de variables

Uso de un nuevo tipo: variables de sincronizacin Slo accesos a v. sincronizacin tienen coherencia secuencial Coherencia de liberacin (Gharachorloo, 1990)
Modelo de coherencia de tipo dbil 2 operaciones sobre v. sincro: acquireLock y releaseLock En acquireLock se recogen escrituras remotas En releaseLock se propagan escrituras locales Datos se mantienen incoherentes en ciertas partes del programa

Sistemas Operativos Distribuidos 16

Fernando Prez Costoya Jos Mara Pea Snchez

Coherencia de liberacin
Process 1: acquireLock(); // enter critical section a := a + 1; b := b + 1; releaseLock(); // leave critical section Process 2: acquireLock(); // enter critical section print ("The values of a and b are: ", a, b); releaseLock(); // leave critical section
Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000
Sistemas Operativos Distribuidos 17 Fernando Prez Costoya Jos Mara Pea Snchez

Ejemplo de implementacin de DSM


DSM basada en pginas con coh. secuencial e invalidacin Mltiples copias de pginas para mejorar rendimiento Cada pgina tiene asociado:
Un estado: R (slo lectura) o W (lectura/escritura) Un propietario: el ltimo proceso que la modific

Pgina W slo 1 copia en mquina propietaria Pgina R copia en varias mquinas (1 propietaria) Lectura:
Si tiene copia local: lee de la misma Si no: la solicita a propietario y la marca R
Si el propietario la tena W, la pasa a R (degradacin)

Sistemas Operativos Distribuidos 18

Fernando Prez Costoya Jos Mara Pea Snchez

Ejemplo de implementacin de DSM


Escritura:
Si propietario y W: escribe copia local Si propietario y R: invalida copias, escribe local y marca W Si copia local pero no propietario:
genera invalidacin, se hace propietario, marca W y escribe

Si no copia local:
la solicita a propietario, genera invalidacin, se hace propietario, marca W y escribe

Requiere poder localizar propietario y poseedores de copias


Mediante broadcast 1 o ms controladores mantienen informacin sobre las pginas
Reparto esttico dependiendo del nmero de la pgina
Sistemas Operativos Distribuidos 19

Fernando Prez Costoya Jos Mara Pea Snchez

You might also like