La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "1 Memorie Condivise Distribuite Prof.Roberto Baldoni, Ing. Alessia Milani."— Transcript della presentazione:

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

2 2 Modello di comunicazione tra processi: Memoria Condivisa P={p 1,p 2 …p n } M N processi sequenziali P={p 1,p 2 …p n } interagiscono attraverso una memoria condivisa M. M x 1 x 2 x m M è composta da m locazioni (variabili) x 1, x 2,…x m Ogni locazione è inizializzata a p i M Ogni processo p i può eseguire le seguenti operazioni su M : r i (x h )v – Lettura, r i (x h )v. p i v x h p i legge il valore v registrato nella locazione x h. w i (x h )v – Scrittura, w i (x h )v. p i vx h p i scrive un nuovo valore v nella locazione x h. x 1 x 2 x h … x m p1p1 p2p2 pnpn pjpj pipi w i (x h )v v v r j (x h )v

3 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.

4 4 Criteri Di Consistenza: Specifica

5 5 x write(v) p i Memoria Condivisa: Linearizability Ogni variabile x è un oggetto con semantica read/write: ogni lettura deve restituire lultimo valore scritto oppure il valore iniziale. r i (x)v: x read() p i / ok(v) p i w i (x)v: x write (v) p i /ok() p i Esempio pipi x read() p j ok() p i x read() p k ok(v) p j pjpj ok( ) p k pkpk INCONSISTENTE v

6 6 Memoria Condivisa Linearizability: Scenari x write(a) p 1 ok() x write(b) p 2 ok() x read() p 1 ok(b) p1p1 p2p2 x write(a) p 1 ok() x write(b) p 2 ok() x read() p 1 ok(a) p1p1 p2p2 1.LINEARIZZABILE 2.NON LINEARIZZABILE

7 7 Process Order h i è linsieme di operazioni eseguite dal processo p i Le operazioni vengono considerate istantanee (t inv t res ). PROCESS ORDER o 1 i o 2 PROCESS ORDER: Date o 1 e o 2 eseguite dal processo p i, se p i esegue prima o 1 e poi o 2 si dice che o 1 precede o 2 nellordine del processo p i, o 1 i o 2. 1 w 1 (x)a 1 w 2 (x)b w 1 (x)a w 1 (x)b p 1

8 8 Local history Sia h i linsieme di operazioni eseguite da p i local historyp i p i DEF. Una local history ĥ i di un processo p i è la sequenza di operazioni eseguite da p i ordinata secondo i. 1 ĥ 1 = w 1 (x)a, w 1 (x)b w 1 (x)a w 1 (x)b p 1

9 9 History history Hh i DEF. Una history H è lunione di tutte le h i dei processi del sistema. h 1 ={ w 1 (x)a, w 1 (x)b} 2 h 2 = {r 2 (x)a, w 2 (x)c} H H= h 1 h 2 ={w 1 (x)a, w 1 (x)b, r 2 (x)a, w 2 (x)c} w 1 (x)a w 1 (x)b w 2 (x)cr 2 (x)a p 1 p 2

10 10 Read-from order read-from order, ro La relazione di read-from order, ro lega due operazioni o 1, o 2 eseguite da processi distinti del sistema, p i e p j. ro o 1 ro o 2 se e solo se: – o 1 = w i (x)v e o 2 = r j (x)v al più una ro – o 2 esiste al più una o 1 t.c. o 1 ro o 2 non esisteo 1 ro v= – se o 2 = r j (x)v e non esiste un o 1 t.c. o 1 ro o 2 allora v=.

11 11 Read-from order scenario w i (x)a ro r j (x)a w i (x)a p i r j p j

12 12 Execution History Execution History DEF. Un Execution History è un ordinamento parziale Ĥ=(H, H ) tale che: – H – H = i h i – o 1 H o 2 se una delle tre condizioni è soddisfatta: p i : o 1 i o 2 o 1 ro o 2 o 3 : o 1 H o 3 e o 3 H o 2

13 13 Lettura Legale legale DEF. Data una Ĥ=(H, H ), una lettura r(x)v Ĥ è 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 w 1 (x)a w 1 (x)b p 1 w 2 (x)cr 2 (x)b p 2

14 14 Lettura Non Legale NONLEGALE r 2 (x)a NON è una lettura LEGALE w 1 (x)a w 1 (x)b p 1 w 2 (x)cr 2 (x)b p 2 r 2 (x)a

15 15 Execution History Legale Execution History DEF. Una Execution History Ĥ =(H, H ) è legale se tutte le sue letture sono legali. Execution History In una Execution History legale nessuna operazione di lettura può restituire un valore sovrascritto.

16 16 Estensione Lineare DEF. Ŝ=(S, S ) è unestensione lineare di un ordinamento parziale Ĥ=(H, H ) se: 1. S=H 2. o 1 H o 2 o 1 S o 2 (Ŝ mantiene lordinamento di ogni coppia di operazioni in Ĥ) 3. S definisce un ordinamento totale

17 17 Estensione Lineare Esempio Ŝ = w 1 (x)a, w 1 (x)b, r 2 (x)b, w 2 (x)c w 1 (x)a w 1 (x)b p 1 w 2 (x)cr 2 (x)b p 2

18 18 Sequential Consistency Proposta da Lamport nel 1979 per definire un criterio di correttezza per sistemi di memorie condivise multiprocessore. il risultato di unesecuzione è 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 lordinamento specificato dal suo programma.

19 19 History Sequential Consistent DEF. Unexecution History Ĥ=(H, H ) è Sequential Consistent se esiste unestensione lineare Ŝ in cui tutte le letture sono legali.

20 20 Sequential Consistency: Esempio a e b inizializzati a 0. Sequential Consistency La combinazione ar=0 e br=1 non può verificarsi se il sistema impone la Sequential Consistency. br := b; ar := a; if(ar br) then print ("OK"); Time Process 1 Process 2 a := a + 1; b := b + 1; read write

21 21 Esempio 1 Ŝ : w 1 (x)a, r 3 (x)a, w 2 (x)b, r 3 (x)b. w 1 (x)a w 2 (x)b p 1 p 2 p 3 r 3 (x)ar 3 (x)b

22 22 Esempio 2 Ŝ : w 2 (x)b, r 3 (x)b, w 1 (x)a, r 3 (x)a. w 1 (x)a w 2 (x)b p 1 p 2 p 3 r 3 r 3 (x)a

23 23 Esempio 3 ERRORE w 1 (x)a w 2 (x)b p 1 p 2 p 3 p 4 r 3 (x)ar 3 (x)b r 4 r 4 (x)a

24 24 Esempio 4 (due variabili) Ŝ= w 1 (x 1 )a, r 2 (x 1 )a, w 2 (x 2 )b, r 3 (x 2 )b, r 3 (x 1 )a w 1 (x 1 )a w 2 (x 2 )b p 1 p 2 p 3 r 3 (x 2 r 3 (x 1 )a r 2 (x 1

25 25 Causal Consistency (Ahamad 1991) DEF. Ĥ i è il sottoinsieme di Ĥ costituito da tutte le scritture di Ĥ e da tutte le letture invocate dal processo p i. causalmente consistente DEF. Data una Ĥ=(H, H ), Ĥ è causalmente consistente se, per ogni processo p i, tutte le operazioni di lettura di Ĥ i sono legali. Ogni processo può vedere una differente estensione lineare Ŝ i dellordinamento parziale indotto da H.

26 26 Causal Consistency: Causality Order Relation o 1 co o 2 se una delle seguenti condizioni è verificata: – o 1 i o 2 per qualche p i – o 1 ro o 2 (o 1 legge il valore scritto da o 2 ) – o 3 : o 1 co o 3 e o 3 co o 2 Se (o 1 co o 2 ) e (o 2 co o 1 ), le due operazioni sono causalmente concorrenti, o 1 || co o 2.

27 27 Esempio 1 Ŝ 1 =w 1 (x)a, w 2 (x)b Ŝ 2 =w 1 (x)a, r 2 (x)a, w 2 (x)b Ŝ 3 =w 1 (x)a, r 3 (x)a, w 2 (x)b, r 3 (x)b w 1 (x)a w 2 (x)b p 1 p 2 p 3 r 3 (x)ar 3 (x)b r 2 (x)a

28 28 Esempio 2 Scritture causalmente concorrenti possono essere viste da processi diversi in un qualsiasi ordine. CAUSALMENTE CONCORRENTI w 1 (x)a w 2 (x)b p 1 p 2 p 3 p 4 r 3 (x)ar 3 (x)b r 4 r 4 (x)a

29 29 Esempio 3 ERRORE ab w 1 (x)a co w 2 (x)b ogni processo dovrà leggere prima a e poi b (NO il contrario)

30 30 Esempio 4 Ŝ 1 =w 1 (x)a, w 1 (x)c, w 2 (x)b Ŝ 2 =w 1 (x)a, r 2 (x)a, w 1 (x)c, w 2 (x)b Ŝ 3 =w 1 (x)a, r 3 (x)a, w 1 (x)c, r 3 (x)c, w 2 (x)b Ŝ 4 =w 1 (x)a, w 1 (x)c, r 4 (x)c, w 2 (x)b, r 4 (x)b

31 31 Esempio 5 w 1 (x)a co w 2 (x)b ERRORE

32 32 Esempio 6 (2 variabili) x 2 x 2 x 1 w 1 (x 2 )a co w 2 (x 2 )b co w 2 (x 1 )c Quando leggo x 1 =c, x 2 =a è già stato sovrascritto da x 2 =b. ERRORE

33 33 PRAM (Pipelined RAM) DEF. Data Ĥ=(H, H ) definiamo Ĥ=(H, H ) nel seguente modo: – H=H – o 1 H o 2 se una delle seguenti condizioni è verificata: 1. p i : o 1 i o 2 (process order) 2. o 1 =w i (x)v e o 2 =r j (x)v (read-from order) 3. o 3 : o 1 i o 3 e o 3 i o 2 (DIFFERENTE da H )

34 34 PRAM (2) Sia Ĥ i la sotto-history ottenuta da Ĥ eliminando tutte le operazioni di lettura non invocate da p i. DEF. Ĥ è PRAM consistente se, per ogni processo p i, tutte le letture di Ĥ i sono legali.

35 35 Esempio 1 Ŝ 1 =w 1 (x)a, w 2 (x)b Ŝ 2 =w 1 (x)a, r 2 (x)a, w 2 (x)b Ŝ 3 =w 2 (x)b, r 3 (x)b, w 1 (x)a, r 3 (x)a

36 36 Esempio 2 NO PRAM CONSISTENT

37 37 Esempio 3 (2 variabili) PRAM CONSISTENT Ŝ 1 =w 1 (x 1 )a, w 1 (x 2 )c, w 2 (x 2 )b Ŝ 2 = w 1 (x 1 )a, w 1 (x 2 )c, r 2 (x 2 )c, w 2 (x 2 )b Ŝ 3 =w 2 (x 2 )b,r 3 (x 2 )b, w 1 (x 1 )a, r 3 (x 1 )a, w 1 (x 2 )c, r 3 (x 2 )c

38 38 Confronto Tra i Criteri PRAM CAUSAL SEQUENTIAL LINEARIZABILITY

39 39 Confronto tra i criteri: Esempio 1 Ŝ 1 =w 1 (x)0, w 1 (x)1, w 2 (y)0, r 1 (y)0, w 2 (y)2, r 1 (y)2 Ŝ 2 = w 1 (x)0, w 2 (y)0, w 2 (y)2, r 2 (x)0, w 1 (x)1, r 2 (x)1 NO SEQUENTIALSI CAUSAL E PRAM NO SEQUENTIAL, SI CAUSAL E PRAM

40 40 Confronto tra i criteri: Esempio 2 Ŝ 1 =w 1 (x)1, w 1 (y)2, w 2 (x)2, w 2 (z)3 Ŝ 2 = w 1 (x)1, w 1 (y)2, w 2 (x)2, r 2 (y)2, w 2 (z)3 Ŝ 2 = w 2 (x)2, w 2 (z)3, r 3 (z)3, r 3 (x)2, w 1 (x)1, r 3 (x)1, w 1 (y)2 NO SEQUENTIAL E CAUSAL, SI PRAM

41 41 Criteri Di Consistenza Protocolli

42 42 Memoria Distribuita Condivisa (DSM) Modello di comunicazione tra processi che fornisce lillusione di ununica memoria fisica basandosi su un sistema a scambio di messaggi. Physical memory Physical memory Physical memory Distributed shared memory

43 43 Memory Consistency System DSM MCS at p 1 MCS at p n NETWORK MCS at p 2 send receive send receive invocation response invocation response Application Process p 1 Application Process p 2 Application Process p 2

44 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

45 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 p i riceve una richiesta di lettura dal corrispondente processo applicativo ap i, invia ad api il valore registrato nella sua copia locale della variabile che ap i vuole leggere. Quando p i riceve una richiesta di scrittura dal corrispondente processo applicativo ap i, 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 lidentificativo della variabile da modificare e il valore che deve essere scritto. Quando p i 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 lack.

46 46 Procedure Il processo p i vuole leggere 1. when read i (x) occurs: 2. enable return i (copy[x]) Il processo p i vuole scrivere 1. when (x write (v)) occurs: 2. tbc-send i (x,v) Il processo p i riceve un aggiornamento Il processo p i riceve un aggiornamento 1. when tbc-recv i (x,v) from p j 2. copy[x]:=v 3. If i=j then ok()

47 47 Memoria Condivisa Distribuita a Consistenza Causale (Ahamad) Strutture Dati Locali al processo p i : M – Una copia privata della memoria condivisa (astrazione) M Write co [1..n] Write co w i (x)a.Write co – Un vector clock Write co [1..n]: array di interi di dimensione n, inizializzato a tutti 0. Ogni scrittura è associata ad un Write co (w i (x)a.Write co ). Usato come timestamp per i messaggi di aggiornamento. 1 2 i 1 [i] 2 [i] Dati due vector clock W 1 e W 2, W 1 W 2 i W 1 [i] W 2 [i] 1 < 2 i 1 [i] 2 [i]ed j tale che 1 [i] < 2 [i] Dati due vector clock W 1 e W 2, W 1 < W 2 i W 1 [i] W 2 [i] ed j tale che W 1 [i] < W 2 [i].

48 48 Procedure Eseguite da p i Scrittura Lettura

49 49 Thread di Sincronizzazione

50 50 Scenario Di Funzionamento (1)

51 51 Scenario Di Funzionamento (2)


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

Presentazioni simili


Annunci Google