Professional Documents
Culture Documents
_w
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.
_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
n
rn(y)v
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.
_w
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
_w
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
_w
10
_w
11
_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
_w
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
_w
_w
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
17
_w
18
_w
19
_w
_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
_w
0 1 2 3
updates0
...
updates3
22
_w
11
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
updates1
r2(x)v
retrasar updates2
23
_w
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
_w
13
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
28
_w
14
para p0 para p1
t r1(x)1 t
p0 p1
x=y=0 x=y=0
t t
w1(y)2
r1(x)0
r1(x)1
29
_w
Desventaja: Hay que cambiar en la mayora de los casos el paradigma de programacin tradicional.
Modelo pRAM
_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
(Cdigo proceso p)
31 Laboratorio de Sistemas Distribuidos, Universidad Politcnica de Madrid
_w
0 1 2 3
updates0
...
updates3
32
_w
16
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
_w
17
35
_w
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
w0(x)1
t t t
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
_w
w0(x)1
w0(y)2
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
39
_w
Causal
Atmico
Secuencial
pRAM
40
_w
20