You are on page 1of 20

Memoria compartida distribuida

Ricardo Jimnez Peris, Marta Patio Martnez y Ernesto Jimnez

_w

Distributed Systems Laboratory Universidad Politcnica de Madrid (UPM) http://lsd.ls.fi.upm.es/lsd/lsd.htm

La produccin de este material ha sido financiada parcialmente por Microsoft Research Cambridge (Award MS-2004-393)

ndice
Definicin de MCD. Modelo Atmico.
Algoritmo atmico.

Modelo Secuencial.
Algoritmo secuencial.

Modelo Causal
Algoritmo causal.

Modelo pRAM Relacin entre modelos.


2 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Bibliografa
M. Ahamad, G. Neiger, J.E. Burns, P. Kohli y P.W. Hutto. Causal Memory: Definitions, implementation and programming. Distributed Computing, 9(1). 37-49. 1995 E. Jimnez, A. Fernndez y V. Cholvi. A Parametrized Algorithm that Implements Sequential, Causal, and Cache Memory Consistency. Euro PDP. 437-444. 2002. L. Lamport. How to make multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers, 28(9). 690-691. 1979. L. Lamport. On interprocess communication: Parts I and II. Distributed Computing, 1(2). 77-101. 1986. K. Li and P. Hudak. Memory Coherence in Shared Virtual Memory Systems. ACM Transactions on Computer Systems. 7(4). 321-359. 1989. R.J. Lipton y J.S. Sandberg. PRAM: A scalable shared memory. CS-TR-180-88, Princeton University. 1988.
3 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Definicin de MCD.
Un memoria compartida distribuida (MCD) es una abstraccin de una memoria utilizada, mediante operaciones de lectura y escritura, por todos los procesos de un sistema distribuido. Sistema de MCD: conjunto formado por todos los procesos y la MCD. El sistema distribuido es asncrono y sin fallos. Tenemos un conjunto de procesos todos correctos e interconectados mediante canales bidireccionales fiables. Modelo de coherencia: semntica de las operaciones de lectura y escritura sobre la MCD.
4 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Definicin de MCD (cont.)


Sistema S 1 2
wn(x)u

n
rn(y)v

Memoria compartida distribuida (MCD)

Modelo coherencia: orden en la ejecucin de las operaciones de lectura y escritura sobre la MCD
5 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo atmico.
Coherencia atmica o linealizable [Lamport 1986]: El resultado de las operaciones de memoria en cualquier ejecucin es el mismo que el que se producira s:
1. Todas las operaciones fueran ejecutadas en el orden real en el que se produjeron. 2. Las operaciones de cada proceso siguen el mismo orden que el especificado dentro del programa.

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo atmico (cont.)


Para una ejecucin R, sea el conjunto de operaciones producidas en R.

Orden en un proceso (op <p op): Si op es invocada por el proceso p antes que op. Orden en tiempo-real (op <rt op): Si op termina de ejecutarse antes de que op comience a ser ejecutada.

atom (vista atmica) : una ordenacin de todas las operaciones de que preserve <p y <rt

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo atmico (cont.)


atom es legal:
Si para toda op=rp(x)u:
1. Existe en atom una op=wq(x)u tal que opprecede a op. 2. No existe en atom una op=ws(x)v tal que op precede a op que precede a op.

Un sistema es atmico (tiene coherencia atmica): si toda ejecucin R de S existe una atom legal.
8 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo atmico (cont.)


Sea R p0 p1 w1(x)2 Vista atmica (atom) : w1(x)2 w0(x)1 w1(y)3 r0(x)1 w0(y)4 r1(y)4 R es una ejecucin atmica: existe una vista atmica legal w1(y)3 r1(y)4 w0(x)1 r0(x)1 w0(y)4 t t

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo atmico (cont.)


Dependencias atmicas p0 p1 w1(x)2 w1(y)3 r1(y)4 w0(x)1 r0(x)1 w0(y)4 t t

Vista atmica (atom) : w1(x)2 w0(x)1 w1(y)3 r0(x)1 w0(y)4 r1(y)4

10

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo atmico (cont.)


Ventaja: Sigue el paradigma de programacin tradicional. Desventaja: Latencia alta en las operaciones cuando existe un nmero elevado de procesos en el sistema.
Se pueden relajar la semntica? Modelo secuencial

11

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Algoritmo atmico
[Li & Hudak 1989]
function wp(x)u: send (WRITE,x,u) to serv wait until receive (ACK-W) from serv function rp(x): send (READ,x) to serv wait until receive (ACK-R,valueserv) from serv return (valueserv) (Cdigo proceso p)
12

Mserv[x] , x // inicialmente repeat forever wait until receive (opq,varq,valueq) from q if opq=WRITE then Mserv[varq] valueq send (ACK-W) to q valueserv Mserv[varq] send (ACK-R, valueserv) to q endrepeat (Cdigo proceso servidor serv)

else

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Algoritmo atmico (cont.)


Correccin del algoritmo para coherencia atmica:

Sea atom la ordenacin de todas las operaciones de en cada R segn se ejecutan en el proceso serv.
Esta atom preserva el orden de las operaciones en cada proceso y el orden en tiempo real (i.e., <p y <rt). Esta atom es legal:

13

Si existe op=r(x)u es porque previamente se hizo op=w(x)u (inicialmente se supone que w(x)=) No existe op=w(x)v entre medias de op y op, porque en ese caso serv leera v y no u.
Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo secuencial.
Coherencia secuencial [Lamport 1979]: El resultado de las operaciones de memoria en cualquier ejecucin es el mismo que el que se producira s:
1. Todas las operaciones fueran ejecutadas en un orden secuencial (no tiene por qu ser el real). 2. Las operaciones de cada proceso siguen el mismo orden que el especificado dentro del programa.

14

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo secuencial (cont.)


Para una ejecucin R, sea el conjunto de operaciones producidas en R.
Orden en un proceso (op <p op): Si op es invocada por el proceso p antes que op. Orden de ejecucin (op < op): Si ocurre alguno de los siguientes casos:
1. op y op son invocadas por p, op <p op. 2. op=w(x)v y op=r(x)v. 3. Si existe op tal que op < op < op
15 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo secuencial (cont.)


sec (vista secuencial) : una ordenacin de todas las operaciones de que preserve <p y <

sec es legal:
Si para toda op=rp(x)u:
1. Existe en sec una op=wq(x)u tal que op precede a op. 2. No existe en sec una op=ws(x)v tal que opprecede a op que precede a op.

Un sistema es secuencial (tiene coherencia secuencia): si para toda ejecucin R de S existe una sec legal.
16 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo secuencial (cont.)


Sea R p0 p1 w1(x)2 Vista atmica (sec) : w0(x)1 w1(x)2 r0(x)2 w0(y)4 w1(y)3 r1(y)3 R es una ejecucin secuencial: existe una vista secuencial legal w1(y)3 r1(y)3 w0(x)1 r0(x)2 w0(y)4 t t

17

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo secuencial (cont.)


Dependencias secuenciales p0 p1 w1(x)2 Vista atmica (sec) : w0(x)1 w1(x)2 r0(x)2 w0(y)4 w1(y)3 r1(y)3 w1(y)3 r1(y)3 w0(x)1 r0(x)2 w0(y)4 t t

18

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo secuencial (cont.)


Tcnicas para reducir latencia en las operaciones.
Replicacin de datos. Actualizacin de las copias:
1. Invalidacin de las copias obsoletas. 2. Propagacin de los nuevos valores.

19

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo secuencial (cont.)


Ventaja: Al igual que el modelo atmico, sigue el paradigma de programacin tradicional. Desventaja: Latencia alta en las operaciones cuando existe un nmero elevado de procesos en el sistema. Es imposible que todas las operaciones sean rpidas (i.e., que en todos los casos devuelvan la copia local de la variable sin sincronizarse con otros procesos)
Modelo causal

Se pueden relajar an ms la semntica?


20

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

10

Algoritmo secuencial
[Jimnez et al 2002]
Mp[x] , x // inicialmente
function wp(x)u:

Mp[x] u
include (x,u) to updatesp function rp(x): if (updatesp ) and ((x,-) updatesp) then wait until turnp=p return (Mp[x])

when turnp=p: //p propaga updates send (updatesp) to all updatesp turnp (turnp +1) mod n when turnp p y recibido (updatesq): //p aplica updates while updates do extract (x,u) from updatesq if (x,-) updatesp) then Mp[x] u turnp (turnp +1) mod n

(Cdigo proceso p)
21

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Algoritmo secuencial (cont.)

Impone un mismo orden en el envo de escrituras

0 1 2 3

updates0 updates1 updates2

updates0

...

updates3

22

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

11

Algoritmo secuencial (cont.)


Se impone en p un mismo orden en la aplicacin de las escrituras de q Se retrasa en p una rp(x) si no es su turno y p previamente no wp(x)
0

updates0

w1(x)v w2(y)z r2(x)

updates1

r2(x)v
retrasar updates2

23

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Algoritmo secuencial (cont.)


Correccin del algoritmo para coherencia secuencial: Sea sec la ordenacin de todas las operaciones de en
cada R segn se aplican las operaciones de escritura en los procesos, y las operaciones de lectura justo detrs de la escritura cuyo valor leen.

Esta sec preserva el orden de las operaciones en cada proceso y el orden secuencial (i.e., <p y <). Esta sec es legal: Si existe op=r(x)u es porque previamente se hizo op=w(x)u (inicialmente se supone que w(x)=) No existe op=w(x)v entre medias de op y op, porque en ese caso serv leera v y no u.
Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

24

_w

12

Modelo causal.
Coherencia causal [Ahamad et al 1995]: En cada ejecucin R, slo las operaciones relacionadas causalmente (i.e., aquellas por cuya causa haya surtido efecto en otras) tienen que ser percibidas por todos los procesos siguiendo ese mismo orden causal. Ejemplo: Si existe rp(x)u en R, es porque tambin debe existir wq(x)u. Por tanto, esta escritura debe preceder en el orden causal a esta lectura.
25 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo causal (cont.)


Para una ejecucin R, sea p el subconjunto de operaciones de producidas en R tal que eliminamos de todas las operaciones de lectura generadas por un proceso distinto de p.
Orden en un proceso (op <p op): Si op es invocada por el proceso p antes que op. Orden de ejecucin (op < op): Si ocurre alguno de los siguientes casos:
1. op y op son invocadas por p, op <p op. 2. op=w(x)v y op=r(x)v. 3. Si existe op tal que op < op < op
26 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

13

Modelo causal (cont.)


cau-p (vista causal para p) : una ordenacin de todas las operaciones de p que preserve <p y < cau-p es legal:
1. 2.

Si para toda op=rp(x)u perteneciente a p:

Existe en cau-p una op=wq(x)u tal que op precede a op. No existe en cau-p una op=ws(x)v tal que opprecede a op que precede a op.

Distintos procesos pueden tener distintas vistas causales legales, ya que p y q son diferentes. Un sistema es causal (tiene coherencia causal): si para toda ejecucin R de S existe una cau-p legal para todo proceso p.
27 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo causal (cont.)


Sea R p0 x=y=0 p1 x=y=0 w1(y)2 Vistas causales cau-0: cau-1: r1(x)0 r1(x)1 w0(x)1 r0(y)0 r0(y)2 t t

w0(x)1 r0(y)0 w1(y)2 r0(y)2 w1(y)2 r1(x)0 w0(x)1 r1(x)1

R es una ejecucin causal: existe una vista causal legal para 0 y 1

28

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

14

Modelo causal (cont.)


Dependencias causales
p0 p1 x=y=0 x=y=0 w1(y)2 w0(x)1 w0(x)1

w0(x)1 w1(y)2 r0(y)0

w1(y)2 w0(x)1 r0(y)2

para p0 para p1

t r1(x)1 t

r1(x)0 r0(y)0 r0(y)2

p0 p1

x=y=0 x=y=0

t t

w1(y)2

r1(x)0

r1(x)1

29

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo causal (cont.)


Ventaja:
Latencia baja incluso cuando existe un nmero elevado de procesos en el sistema. Todas las operaciones pueden ser rpidas. Algunos programas se pueden ejecutar directamente en sistemas causales dando los mismos resultados que con coherencia secuencial.

Desventaja: Hay que cambiar en la mayora de los casos el paradigma de programacin tradicional.
Modelo pRAM

Se pueden relajar an ms la semntica?


30

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

15

Algoritmo causal
[Jimnez et al 2002]
Mp[x] , x // inicialmente
function wp(x)u: Mp[x] u include (x,u) to updatesp

when turnp=p: //p propaga updates send (updatesp) to all updatesp turnp (turnp +1) mod n when turnp p y recibido (updatesq): //p aplica updates while updates do extract (x,u) from updatesq Mp[x] u turnp (turnp +1) mod n

function rp(x): return (Mp[x])

(Cdigo proceso p)
31 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Algoritmo causal (cont.)

Impone un mismo orden en el envo de escrituras

0 1 2 3

updates0 updates1 updates2

updates0

...

updates3

32

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

16

Algoritmo causal (cont.)


Correccin del algoritmo para coherencia causal: Sea cau-p la ordenacin de todas las operaciones de p en
cada R segn se generan las lecturas y escrituras de p, y segn se aplican las operaciones de escritura de los dems procesos en p.

Esta sec preserva el orden de las operaciones en cada proceso y el orden secuencial (i.e., <p y <). Esta sec es legal: Si existe op=r(x)u es porque previamente se hizo op=w(x)u (inicialmente se supone que w(x)=) No existe op=w(x)v entre medias de op y op, porque en ese caso serv leera v y no u.
Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

33

_w

Modelo pRAM.
Coherencia pRAM (pipelined RAM) [Lipton & Sandberg 1988]:
En cada ejecucin R, slo las operaciones de escritura de todo proceso q deben de ser percibidas en cada proceso p en el mismo orden en el que fueron invocadas por q.

34

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

17

Modelo pRAM (cont.)


Para una ejecucin R, sea p el subconjunto de operaciones de producidas en R tal que eliminamos de todas las operaciones de lectura generadas por un proceso distinto de p.
Orden en un proceso (op <p op): Si op es invocada por el proceso p antes que op.

35

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo pRAM (cont.)


pRAM-p (vista pRAM para p) : una ordenacin de todas las operaciones de p que preserve <p pRAM-p es legal:
1. 2.

Si para toda op=rp(x)u perteneciente a p:

Existe en pRAM-p una op=wq(x)u tal que op precede a op. No existe en pRAM-p una op=ws(x)v tal que opprecede a op que precede a op.

Distintos procesos pueden tener distintas vistas pRAM legales, ya que p y q son diferentes. Un sistema es pRAM (tiene coherencia pRAM): si para toda ejecucin R de S existe una pRAM-p legal para todo proceso p.
36 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

18

Modelo pRAM (cont.)


Sea R p0 p1 p2 Vistas pRAM
(una de las posibles)

w0(x)1

w0(y)2 r1(y)2 w1(x)4 r2(x)4 r2(x)1

t t t

pRAM-0: pRAM-1: (una de las posibles) pRAM-2:

w0(x)1 w0(y)2 w1(x)4 w0(x)1 w0(y)2 r1(y)2 w1(x)4 w1(x)4 r2(x)4 w0(x)1 w0(y)2 r2(x)1

R es una ejecucin pRAM: existe una vista pRAM legal para 0, 1 y 2


37 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Modelo pRAM (cont.)


p0 p1 p2 r1(y)2 t r2(x)4
Vista pRAM de 2

w0(x)1

w0(y)2

Dependencias pRAM ( para p2 ) t w1(x)4 t

r2(x)1

pRAM-2: w1(x)4 r2(x)4 w0(x)1 w0(y)2 Hay vista pRAM legal pero no causal para 2
38 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

r2(x)1

_w

19

Modelo pRAM (cont.)


Ventaja: Latencia baja incluso cuando existe un nmero elevado de procesos en el sistema. Todas las operaciones pueden ser rpidas. Desventaja:
Hay que cambiar el paradigma de programacin tradicional. No todos los programas que requieren coherencia secuencial se podran ejecutar (ni transformndolos) en sistemas pRAM.

39

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

Relacin entre modelos de memoria

Causal

Atmico

Secuencial

pRAM

40

Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid

_w

20

You might also like