1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.
-
Upload
ferdinanda-fois -
Category
Documents
-
view
215 -
download
0
Transcript of 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.
![Page 1: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/1.jpg)
1
Memorie Condivise DistribuiteMemorie Condivise Distribuite
Prof.Roberto Baldoni, Ing. Alessia MilaniProf.Roberto Baldoni, Ing. Alessia Milani
![Page 2: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/2.jpg)
2
Modello di comunicazione tra processi:
Memoria Condivisa
N processi sequenziali P={pP={p11,p,p22…p…pnn} } interagiscono attraverso una memoria condivisa MM.
MM è composta da m locazioni (variabili) xx11, xx22,…xxmm
Ogni locazione è inizializzata a
Ogni processo ppii può eseguire le seguenti operazioni su MM :
– Lettura, rrii(x(xhh)v)v. ppii legge il valore v v
registrato nella locazione xxhh.
– Scrittura, wwii(x(xhh)v)v. ppii scrive un nuovo valore
vv nella locazione xxhh.
x1 x2 xh … xm
p1 p2
pnpj
pi
wi(xh)v
v
vrj(xh)v
![Page 3: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/3.jpg)
3
Consistenza in un Sistema Concorrente
In un sistema concorrente piu’ processi possono
invocare concorrentemente operazioni su una stessa
variabile.
Si devono definire delle regole di accesso alla
memoria.
![Page 4: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/4.jpg)
4
Criteri Di Consistenza:Specifica
![Page 5: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/5.jpg)
5
x write(v) pi
Memoria Condivisa: Linearizability
Ogni variabile x è un oggetto con semantica read/write: “ogni lettura deve restituire l’ultimo valore scritto oppure il valore iniziale”.
ri(x)v: x read() pi / ok(v) pi
wi(x)v: x write (v) pi /ok() pi
Esempio
pi
x read() pj
ok() pi
x read() pk
ok(v) pj
pj
ok() pk
pk
INCONSISTENTEv
![Page 6: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/6.jpg)
6
Memoria Condivisa Linearizability: Scenari
x write(a) p1 ok()
x write(b) p2 ok()
x read() p1 ok(b)p1
p2
x write(a) p1 ok()
x write(b) p2 ok()
x read() p1 ok(a)p1
p2
1. LINEARIZZABILE
2. NON LINEARIZZABILE
![Page 7: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/7.jpg)
7
Process Order
hi è l’insieme di operazioni eseguite dal processo pi
Le operazioni vengono considerate istantanee (tinv tres).
PROCESS ORDERPROCESS ORDER: Date o1 e o2 eseguite dal processo pi , se pi esegue prima o1 e poi o2 si dice che o1 precede o2 nell’ordine del processo pi, oo11 iioo22 .
w1(x)a 11 w2(x)b
w1(x)a w1(x)bp1
![Page 8: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/8.jpg)
8
Local history
Sia hi l’insieme di operazioni eseguite da pi
DEF. Una local historylocal history ĥi di un processo ppii è la sequenza di operazioni eseguite da ppii ordinata secondo i.
ĥ11= w1(x)a, w1(x)b
w1(x)a w1(x)bp1
![Page 9: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/9.jpg)
9
History
DEF. Una history Hhistory H è l’unione di tutte le hhii dei processi del sistema.
h1={ w1(x)a, w1(x)b}
h22 = {r2(x)a, w2(x)c}
HH= h1 h2={w1(x)a, w1(x)b, r2(x)a, w2(x)c}
w1(x)a w1(x)b
w2(x)cr2(x)a
p1
p2
![Page 10: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/10.jpg)
10
Read-from order
La relazione di read-from order, read-from order, roro lega due operazioni o1, o2 eseguite da processi distinti del sistema, pi e pj .
o1 roro o2 se e solo se:– o1= wi(x)v e o2= rj(x)v
o2 esiste al più unaal più una o1 t.c. o1 roro o2
– se o2= rj(x)v e non esistenon esiste un oo11 t.c. o1 roro o2 allora
v=v=.
![Page 11: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/11.jpg)
11
Read-from orderscenario
wi(x)arorj(x)a
wi(x)api
rj(x)apj
![Page 12: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/12.jpg)
12
Execution History
DEF. Un’ Execution HistoryExecution History è un ordinamento parziale Ĥ=(H, H) tale che:
– H H = i hi
– o1 H o2 se una delle tre condizioni è soddisfatta:
pi : o1 i o2
o1 ro o2
o3 : o1 H o3 e o3 H o2
![Page 13: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/13.jpg)
13
Lettura Legale
DEF. Data una Ĥ=(H, H), una lettura r(x)vĤ è
legale legale se :
1. w(x)v tale che w(x)v H r(x)v
2. w’(x)v : w(x)v H w’(x)v H r(x)v
OK
w1(x)a w1(x)bp1
w2(x)cr2(x)bp2
![Page 14: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/14.jpg)
14
Lettura Non Legale
r2(x)a NONNON è una lettura LEGALELEGALE
w1(x)a w1(x)bp1
w2(x)cr2(x)bp2r2(x)a
![Page 15: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/15.jpg)
15
Execution History Legale
DEF. Una Execution HistoryExecution History Ĥ =(H, H) è
legale se tutte le sue letture sono legali.
In una Execution HistoryExecution History legale nessuna
operazione di lettura può restituire un valore
sovrascritto.
![Page 16: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/16.jpg)
16
Estensione Lineare
DEF. Ŝ=(S,S) è un’estensione lineare di un ordinamento parziale Ĥ=(H,H) se:
1. S=H
2. o1 H o2 o1 S o2 (Ŝ mantiene l’ordinamento di ogni coppia di operazioni in Ĥ)
3. S definisce un ordinamento totale
![Page 17: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/17.jpg)
17
Estensione LineareEsempio
Ŝ = w1(x)a, w1(x)b, r2(x)b, w2(x)c
w1(x)a w1(x)bp1
w2(x)cr2(x)bp2
![Page 18: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/18.jpg)
18
Sequential Consistency
Proposta da Lamport nel 1979 per definire un criterio di correttezza per sistemi di memorie condivise multiprocessore.
“il risultato di un’esecuzione è lo stesso di quello che si otterrebbe se le operazioni di tutti i processi fossero eseguite in un qualche ordine sequenziale, mantenendo per ogni processo l’ordinamento specificato dal suo programma.”
![Page 19: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/19.jpg)
19
History Sequential Consistent
DEF. Un’execution History Ĥ=(H,H) è
Sequential Consistent se esiste
un’estensione lineare Ŝ in cui tutte le letture
sono legali.
![Page 20: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/20.jpg)
20
Sequential Consistency: Esempio
a e b inizializzati a 0. La combinazione ar=0 e br=1 non può verificarsi se il
sistema impone la Sequential ConsistencySequential Consistency.
br := b;ar := a;if(ar ≥ br) then print ("OK");
TimeProcess 1
Process 2
a := a + 1;b := b + 1;
read
write
![Page 21: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/21.jpg)
21
Esempio 1
Ŝ : w1(x)a, r3(x)a, w2(x)b, r3(x)b.
w1(x)a
w2(x)b
p1
p2
p3r3(x)a r3(x)b
![Page 22: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/22.jpg)
22
Esempio 2
Ŝ : w2(x)b, r3(x)b, w1(x)a, r3(x)a .
w1(x)a
w2(x)b
p1
p2
p3r3(x)b r3(x)a
![Page 23: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/23.jpg)
23
Esempio 3
ERROREERRORE
w1(x)a
w2(x)b
p1
p2
p3
p4
r3(x)a r3(x)b
r4(x)b r4(x)a
![Page 24: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/24.jpg)
24
Esempio 4(due variabili)
Ŝ= w1(x1)a, r2(x1)a, w2(x2)b, r3(x2)b, r3(x1)a
w1(x1)a
w2(x2)b
p1
p2
p3r3(x2)b r3(x1)a
r2(x1)a
![Page 25: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/25.jpg)
25
Causal Consistency (Ahamad 1991)
DEF. Ĥi è il sottoinsieme di Ĥ costituito da tutte le scritture di Ĥ e da tutte le letture invocate dal processo pi.
DEF. Data una Ĥ=(H,H), Ĥ è causalmente causalmente
consistenteconsistente se, per ogni processo pi, tutte le operazioni di lettura di Ĥi sono legali.
Ogni processo può vedere una differente estensione lineare Ŝi dell’ordinamento parziale indotto da H.
![Page 26: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/26.jpg)
26
Causal Consistency:Causality Order Relation
o1co o2 se una delle seguenti condizioni è
verificata:
– o1i o2 per qualche pi
– o1ro o2 (o1 legge il valore scritto da o2 )
o3 : o1co o3 e o3co o2
Se (o1co o2) e (o2co o1) , le due operazioni
sono causalmente concorrenti, o1||co o2 .
![Page 27: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/27.jpg)
27
Esempio 1
Ŝ1=w1(x)a, w2(x)b
Ŝ2=w1(x)a, r2(x)a, w2(x)b
Ŝ3=w1(x)a, r3(x)a, w2(x)b, r3(x)b
w1(x)a
w2(x)b
p1
p2
p3r3(x)a r3(x)b
r2(x)a
![Page 28: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/28.jpg)
28
Esempio 2
Scritture causalmente concorrenti possono essere viste da processi diversi in un qualsiasi ordine.
CAUSALMENTE CONCORRENTI
w1(x)a
w2(x)b
p1
p2
p3
p4
r3(x)a r3(x)b
r4(x)b r4(x)a
![Page 29: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/29.jpg)
29
Esempio 3w1(x)a
w2(x)b
p1
p2
p3
p4
r3(x)a r3(x)b
r4(x)b r4(x)a
r2(x)a
ERROREERRORE
w1(x)acow2(x)b ogni processo dovrà leggere prima
aa e poi bb (NO il contrario)
![Page 30: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/30.jpg)
30
Esempio 4
Ŝ1=w1(x)a, w1(x)c, w2(x)b
Ŝ2=w1(x)a, r2(x)a, w1(x)c, w2(x)b
Ŝ3=w1(x)a, r3(x)a, w1(x)c, r3(x)c, w2(x)b
Ŝ4=w1(x)a, w1(x)c , r4(x)c, w2(x)b, r4(x)b
w1(x)a w1(x)cp1
p2
p3
p4
r3(x)a r3(x)c
r4(x)c r4(x)b
r2(x)a w2(x)b
![Page 31: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/31.jpg)
31
Esempio 5
w1(x)aco w2(x)b
w1(x)a w1(x)cp1
p2
p3
p4
r3(x)a r3(x)c
r4(x)b r4(x)a
r2(x)c w2(x)b
ERRORE
![Page 32: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/32.jpg)
32
Esempio 6(2 variabili)
w1(xx22)acow2(xx22)b cow2(xx11)c
Quando leggo x1=c, x2=a è già stato sovrascritto da x2=b.
w1(x2)a
w2(x2)b
p1
p2
p3r3(x1)c r3(x2)a
r2(x2)a w2(x1)c
ERRORE
![Page 33: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/33.jpg)
33
PRAM (Pipelined RAM)
DEF. Data Ĥ=(H,H) definiamo Ĥ’=(H’,H’) nel seguente modo:– H’=H– o1H’o2 se una delle seguenti condizioni è
verificata:1. pi : o1i o2 (process order)
2. o1=wi(x)v e o2 =rj(x)v (read-from order)
3. o3 : o1i o3 e o3i o2 (DIFFERENTE da H)
![Page 34: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/34.jpg)
34
PRAM (2)
Sia Ĥ’i la sotto-history ottenuta da Ĥ’
eliminando tutte le operazioni di lettura non
invocate da pi.
DEF. Ĥ è PRAM consistente se, per ogni
processo pi, tutte le letture di Ĥ’i sono legali.
![Page 35: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/35.jpg)
35
Esempio 1
Ŝ1=w1(x)a, w2(x)b Ŝ2=w1(x)a, r2(x)a, w2(x)b Ŝ3=w2(x)b, r3(x)b, w1(x)a, r3(x)a
w1(x)a
w2(x)b
p1
p2
p3r3(x)ar3(x)b
r2(x)a
![Page 36: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/36.jpg)
36
Esempio 2
w1(x)a w1(x)cp1
p2
p3r3(x)c r3(x)a
r2(x)a w2(x)b
NO PRAM CONSISTENT
![Page 37: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/37.jpg)
37
Esempio 3(2 variabili)
w1(x1)a
w2(x2)b
p1
p2
p3r3(x1)ar3(x2)b
r2(x2)c
w1(x2)c
r3(x2)c
PRAM CONSISTENT
Ŝ1=w1(x1)a, w1(x2)c, w2(x2)b Ŝ2= w1(x1)a, w1 (x2)c, r2(x2)c, w2(x2)b Ŝ3=w2(x2)b,r3(x2)b, w1(x1)a, r3(x1)a, w1(x2)c, r3(x2)c
![Page 38: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/38.jpg)
38
Confronto Tra i Criteri
PRAM
CAUSAL
SEQUENTIAL
LINEARIZABILITY
![Page 39: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/39.jpg)
39
Confronto tra i criteri:Esempio 1
Ŝ1=w1(x)0, w1(x)1, w2(y)0, r1(y)0, w2(y)2, r1(y)2
Ŝ2= w1(x)0, w2(y)0, w2(y)2, r2(x)0, w1(x)1, r2(x)1
p1
p2
r1(y)2r1(y)0w1(x)1w1(x)0
w2(y)2w2(y)0 r2(x)0 r2(x)1
NO SEQUENTIALNO SEQUENTIAL, SI CAUSAL E PRAMSI CAUSAL E PRAM
![Page 40: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/40.jpg)
40
Confronto tra i criteri:Esempio 2
Ŝ1=w1(x)1, w1(y)2, w2(x)2, w2(z)3
Ŝ2= w1(x)1, w1(y)2, w2(x)2, r2(y)2, w2(z)3
Ŝ2= w2(x)2, w2(z)3, r3(z)3, r3(x)2, w1(x)1, r3(x)1, w1(y)2
NO SEQUENTIAL E CAUSALNO SEQUENTIAL E CAUSAL, SI PRAM, SI PRAM
p1
p2
p3r3(z)3 r3(x)2
w1(x)1 w1(y)2
w2(x)2 r2(y)2 w2(z)3
r3(x)1
![Page 41: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/41.jpg)
41
Criteri Di ConsistenzaProtocolli
![Page 42: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/42.jpg)
42
Memoria DistribuitaCondivisa (DSM)
Modello di comunicazione tra processi che fornisce l’illusione di un’unica memoria fisica basandosi su un sistema a scambio di messaggi.
Physicalmemory
Physicalmemory
Physicalmemory
Distributed shared memory
![Page 43: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/43.jpg)
43
Memory Consistency System
DSM
MCS at p1
MCS at pn
NETWORK
MCS at p2
send send
receive
send
receive receive
invocation
response
invocation invocation
response response
Application Process
p1
Application Process
p2
Application Process
p2
![Page 44: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/44.jpg)
44
Modello di sistema
N computer su ognuno dei quali è in esecuzione un singolo processo (N processi sequenziali)
Ogni processo ha una copia locale dello spazio di indirizzi condivisi (replicazione totale)
I processi comunicano attraverso una rete di connessione
Modello a scambio di messaggi Canali affidabili e asincroni (perfect link) No guasti
![Page 45: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/45.jpg)
45
Memoria Condivisa Distribuita a Consistenza Sequenziale
Protocollo local read: il risultato di una lettura viene restituito al processo applicativo dopo una computazione locale
La copia locale delle variabili condivise è denotata copy dove copy[x] è la copia locale del var x.
Quando pi riceve una richiesta di lettura dal corrispondente processo applicativo api, invia ad api il valore registrato nella sua copia locale della variabile che api vuole leggere.
Quando pi riceve una richiesta di scrittura dal corrispondente processo applicativo api, invia attraverso una primitiva di total order brodcast un messaggio di update a tutti i processi nel sistema (anche a se stesso)
– Il messaggio di update contiene l’identificativo della variabile da modificare e il valore che deve essere scritto.
Quando pi riceve un update, lo applica alla sua copia locale della variabile e se la richiesta di scrittura era stata generata dal suo processo applicativo, gli invia l’ack.
![Page 46: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/46.jpg)
46
Procedure
Il processo pIl processo p i i vuole leggerevuole leggere 1. when readi(x) occurs: 2. enable returni(copy[x])
Il processo pIl processo p ii vuole scrivere vuole scrivere 1. when (x write (v)) occurs: 2. tbc-sendi(x,v)
Il processo pIl processo p ii riceve un aggiornamento riceve un aggiornamento 1. when tbc-recvi(x,v) from pj
2. copy[x]:=v 3. If i=j then ok()
![Page 47: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/47.jpg)
47
Memoria Condivisa Distribuita a Consistenza Causale (Ahamad)
Strutture Dati Locali al processo pi:– Una copia privata della memoria condivisa (astrazione) MM– Un vector clock WriteWritecoco[1..n][1..n]: array di interi di dimensione
n, inizializzato a tutti 0. Ogni scrittura è associata ad un WriteWriteco co (wwii(x)a.Write(x)a.Writeco co ). Usato come timestamp per i messaggi di aggiornamento.
Dati due vector clock W1 e W2 , W11 W2 2 i i W1 1 [i][i] W22[i][i]
Dati due vector clock W1 e W2 , W11< < W2 2 i i W1 1 [i][i] W22[i][i] ed ed j tale che j tale che W1 1 [i][i] < < W22[i][i].
![Page 48: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/48.jpg)
48
ProcedureEseguite da pi
Scrittura
Lettura
![Page 49: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/49.jpg)
49
Thread di Sincronizzazione
![Page 50: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/50.jpg)
50
Scenario Di Funzionamento (1)
p 1
p 2
p 3
000
100
000
000
100 r2 (x )a
110 w 2 (x )b
w 1 (x )a
100
< 1 ,x,a , >
100
< 1 ,x,a , >
100 r3 (x )a
110 r3 (x )b
110
< 2 ,x,b , >
110
< 2 ,x,b , >
![Page 51: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.](https://reader035.fdocument.pub/reader035/viewer/2022062701/5542eb57497959361e8c187c/html5/thumbnails/51.jpg)
51
Scenario Di Funzionamento (2)
p 1
p 2
p 3
000
100
000
000
100 r2 (x )a
110 w 2 (x )b
w 1 (x )a
100
110 r3 (x )br3 (x )a
110
< 2 ,x,b , >
110
< 2 ,x,b , >100
< 1 ,x,a , >
100
< 1 ,x,a , >