1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.

51
1 Memorie Condivise Memorie Condivise Distribuite Distribuite Prof.Roberto Baldoni, Ing. Alessia Prof.Roberto Baldoni, Ing. Alessia Milani Milani

Transcript of 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.

Page 1: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.

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.

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.

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.

4

Criteri Di Consistenza:Specifica

Page 5: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

38

Confronto Tra i Criteri

PRAM

CAUSAL

SEQUENTIAL

LINEARIZABILITY

Page 39: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.

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.

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.

41

Criteri Di ConsistenzaProtocolli

Page 42: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.

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.

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.

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.

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.

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.

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.

48

ProcedureEseguite da pi

Scrittura

Lettura

Page 49: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.

49

Thread di Sincronizzazione

Page 50: 1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani.

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.

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 , >