La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algoritmi Distribuiti1 Modelli di sistemi distribuiti problemi computazionali zQuali tipi di problemi computazionali si possono risolvere in un sistema.

Presentazioni simili


Presentazione sul tema: "Algoritmi Distribuiti1 Modelli di sistemi distribuiti problemi computazionali zQuali tipi di problemi computazionali si possono risolvere in un sistema."— Transcript della presentazione:

1 Algoritmi Distribuiti1 Modelli di sistemi distribuiti problemi computazionali zQuali tipi di problemi computazionali si possono risolvere in un sistema distribuito? caratteristiche del sistema zDipende dalle caratteristiche del sistema: ysincronia/asincronia di esecuzione e interazioni ycomportamento in caso di failure hardware e software... sistema di comunicazione

2 Algoritmi Distribuiti2 Modelli di sistemi distribuiti fissare un appuntamento Roberto e Maria vogliono vedersi a pranzo e comunicano via ore ore ore ore ore Incontriamoci a mezzogiorno OK Ack “OK” Ack “Ack OK” caratteristiche del sistema: non esiste memoria comune trasmissione non sicura (non si sa se il messaggio e’ pervenuto correttamente..) ritardo di trasmissione non noto e non limitato caratteristiche del sistema: non esiste memoria comune trasmissione non sicura (non si sa se il messaggio e’ pervenuto correttamente..) ritardo di trasmissione non noto e non limitato

3 Algoritmi Distribuiti3 Modelli di sistemi distribuiti fissare un appuntamento Roberto e Maria vogliono vedersi a pranzo e comunicano per telefono caratteristiche del sistema: non esiste memoria comune ognuno dei due sente le parole dell’altro con un ritardo noto e limitato se la comunicazione cade entrambi ne vengono a conoscenza caratteristiche del sistema: non esiste memoria comune ognuno dei due sente le parole dell’altro con un ritardo noto e limitato se la comunicazione cade entrambi ne vengono a conoscenza Vediamoci a mezzogiorno OK. A presto

4 Algoritmi Distribuiti4 Modelli di sistemi distribuiti Occorre considerare tre dimensioni: tipo di failure schema di comunicazione sincronismo

5 Algoritmi Distribuiti5 Modelli di sistemi distribuiti Schemi di comunicazione  rete a scambio di messaggi  connessioni punto-a-punto  topologie specifiche (anello, stella, broadcast,..)  memoria condivisa

6 Algoritmi Distribuiti6 Modelli di sistemi distribuiti: reti punto-a-punto grafinodi processiarchilinee di comunicazione  Reti punto-a-punto si possono modellare come grafi, i cui nodi rappresentano i processi e gli archi le linee di comunicazione (eventualmente bidirezionali)  Si suppone che i processi comunichino tramite primitive tipo send/recv  send non bloccante  spesso si ipotizza un grafo completo  linee virtuali non necessariamente fisiche P Out buffer send Q In buffer recv

7 Algoritmi Distribuiti7 Modelli di sistemi distribuiti: reti punto-a-punto Caratteristiche delle reti punto-a-punto failure free  Per quanto riguarda i processi:  Se un processo non ha ancora raggiunto il suo stato finale, “prima o poi” eseguira’ certamente un altro step (liveness)  Per quanto riguarda la comunicazione:  P riceve un messaggio m da Q al piu’ una volta e solo se Q glielo ha precedentemente inviato (safety)  Se P manda un messaggio m a Q, Q “prima o poi” lo ricevera’ certamente (liveness)

8 Algoritmi Distribuiti8 Modelli di sistemi distribuiti Tipi di malfunzionamenti Malfunzionamento di processi : CRASH...un processo si blocca prima di raggiungere lo stato finale…. Processo fallitonon soddisfa la proprieta’ di liveness dei processi Processo correttosoddisfa la liveness dei processi Malfunzionamento di comunicazione: PERDITA DI MESSAGGI..un messaggio inviato non viene ricevuto… Linea fallitanon soddisfa la liveness della comunicazione Linea correttasoddisfa la liveness della comunicazione

9 Algoritmi Distribuiti9 Modelli di sistemi distribuiti Modello Sincrono Modello Sincrono limite di tempo massimostep locale  E’ noto un limite di tempo massimo per l’esecuzione di uno step locale da parte di un processo limite di tempo massimoritardo di trasmissione  E’ noto un limite di tempo massimo di ritardo di trasmissione orologi fisici sincronizzati  Si puo’ supporre che i processi abbiano orologi fisici perfettamente sincronizzati (o approssimativamente sincronizzati, cioe’ all’interno di un intervallo di tempo  )

10 Algoritmi Distribuiti10 Modelli di sistemi distribuiti Modello sincrono Modello sincrono- Conseguenze timeout Si possono usare timeout per scoprire malfunzionamenti di comunicazione t P Q send(Q,m) recv(m) t1t1 send(P,m’) t2t2 recv(m’) t3t3 Wait for timeout > max(t 1 + t 2 + t 3 )

11 Algoritmi Distribuiti11 Modelli di sistemi distribuiti Modello sincrono Modello sincrono Conseguenze fasi Si puo’ organizzare la computazione in fasi:  invio di messaggi a un insieme di processi P  ricezione di messaggi della fase da parte dei processi di P  cambio di stato t P Q R m2m2 m1m1 m3m3 fase1fase3fase2

12 Algoritmi Distribuiti12 Modelli di sistemi distribuiti Modello asincrono Modello Asincrono anche se il tempo d’esecuzione di uno step locale e’ finito, anche se il tempo d’esecuzione di uno step locale e’ finito, non e’ noto nessun limite di tempo massimo per la sua non e’ noto nessun limite di tempo massimo per la sua esecuzione esecuzione non e’ noto nessun limite di tempo massimo per la trasmissione non e’ noto nessun limite di tempo massimo per la trasmissione del messaggio del messaggio non si puo’ supporre l’esistenza di orologi fisici sincronizzati non si puo’ supporre l’esistenza di orologi fisici sincronizzati Il modello asincrono e’ il piu’ generale: un algoritmo progettato per sistemi asincroni funziona anche in sistemi sincroni Il modello asincrono e’ il piu’ generale: un algoritmo progettato per sistemi asincroni funziona anche in sistemi sincroni

13 Algoritmi Distribuiti13 Modelli di sistemi distribuiti sincrono/ asincrono Sfortunatamente: alcuni problemi computazionali non hanno soluzione in sistemi asincroni sistemi asincroni  se si desidera una soluzione fault tolerant  se si vuole usare un algoritmo deterministico quindi quindi per alcuni problemi di deve ricorrere a per alcuni problemi di deve ricorrere a  sistemi sincroni  algoritmi probabilistici

14 Algoritmi Distribuiti14 Modelli di sistemi distribuiti sincrono/ asincrono Per descrivere un sistema distribuito, occorre specificare: grafo di comunicazione  grafo di comunicazione (completo,anello, ecc…) fallimento di processi  possibilita’ di fallimento di processi fallimenti di comunicazione  possibilita’ e tipo di fallimenti di comunicazione numero massimo  ipotesi sul numero massimo di processi falliti  e/o di comunicazioni fallite sincronismo  tipo di sincronismo E’ cruciale essere chiari e precisi su questi aspetti poiche’ essi hanno una ricaduta essenziale su:  funzionamento dell’algoritmo  soluzione del problema computazionale

15 Algoritmi Distribuiti15 Modelli di sistemi distribuiti Modello sincrono G = (V,E) Grafo orientato G = (V,E) v  V e  E I nodi v  V rappresentano i processi, gli archi e  E rappresentano le linee di comunicazione distanza G distanza(i,j): lunghezza del cammino minimo tra i e j in G diametro diametro(i,j): distanza massima tra tutte le coppie di vertici (i,J) in G

16 Algoritmi Distribuiti16 Modelli di sistemi distribuiti Modello sincrono Processi Ogni processo e’ modellato da una quaterna: (start, states, msgs, trans) start start insieme degli stati iniziali ( sottoinsieme non vuoto di states) states states insieme di stati msgs msgs funzione di generazione dei messaggi ( ad ogni stato associa un insieme di messaggi in uscita) trans trans funzione di transizione ( ad ogni coppia associa uno stato) i

17 Algoritmi Distribuiti17 Modelli di sistemi distribuiti Modello sincrono Linee di comunicazione canale M  Ogni arco rappresenta un canale, cioe’ un posto per un unico messaggio m  M  {null} (assenza di messaggio). m i j

18 Algoritmi Distribuiti18 Modelli di sistemi distribuiti Modello sincrono Esecuzione fasi step. Nel modello sincrono, l’esecuzione procede in fasi. Inizialmente tutti i processi sono in uno stato iniziale e tutti i canali sono vuoti. Ogni fase e’ costituita da due step. Step1. Step1. Ogni processo applica la propria funzione di generazione dei messaggi (msg) e invia i messaggi generati nei propri canali di uscita. Step2. Step2. Si applica la funzione di transizione (trans) alla coppia per ottenere il nuovo stato; si rimuovono i messaggi dai canali.

19 Algoritmi Distribuiti19 Modelli di sistemi distribuiti Modello sincrono sisi STEP1 STEP2 L’assenza di messaggi sara’ implementata nei sistemi reali usando un timeout (nel modello con un messaggio null) m i1 m i2 m i3 m o1 m o2 m o3 m i1 m o1 m i3 m i2 m o3 m o2 SiSi S i+1

20 Algoritmi Distribuiti20 Modelli di sistemi distribuiti Modello sincrono  Malfunzionamento processi  Crash. Il processo si blocca prima o dopo lo step1 oppure in un qualsiasi punto dello step2  Fallimento bizantino. Si generano messaggi e stati arbitrari (non secondo le funzioni trans e msgs)  Malfunzionamento comunicazioni  Canali.Perdita di messaggi

21 Algoritmi Distribuiti21 Modelli di sistemi distribuiti Modello sincrono Modello formale di esecuzione sincrona Una esecuzione sincrona di un sistema distribuito e’ definita da una sequenza infinita: C 0,M 1,N 1,C 1,M 2,N 2,C 2,…, C r r C r assegnamento di stati alla fase r, cioe’ dopo r fasi M r r M r messaggi inviati alla fase r N r N r messaggi ricevuti alla fase r M r N r M r  N r significa che ci sono state perdite di messaggi

22 Algoritmi Distribuiti22 Modelli di sistemi distribuiti Modello asincrono G = (V,E) Grafo orientato G = (V,E) v  V e  E I nodi v  V rappresentano i processi, gli archi e  E rappresentano le linee di comunicazione distanza G distanza(i,j): lunghezza del cammino minimo tra i e j in G diametro diametro(i,j): distanza massima tra tutte le coppie di vertici (i,J) in G

23 Algoritmi Distribuiti23 Modelli di sistemi distribuiti Modello asincrono Automa I/O Un automa A consiste di 5 componenti:  azioni (A): un insieme di azioni. Una azione  puo’ essere interna, di input e di output, un’azione di output o interna e’ detta locale.  stati (A):insieme di stati  start (A): stati iniziali (sottoinsieme di stati(A))  trans (A): relazione di transizione tra stati. Una transizione e’ data da una terna  task (A): astrazione dei task interni, definita dalle azioni locali

24 Algoritmi Distribuiti24 Modelli di sistemi distribuiti Modello asincrono Un processo in un sistema distribuito puo’ essere modellato come una automa I/O: send (m) i,j tra le azioni di output esiste anche l’azionesend (m) i,j (j e’ un processo d’uscita del nodo i e m e’ un messaggio) receive (m) j,i tra le azioni di input esiste anche l’azione receive (m) j,i (j e’ un processo d’ entrata del nodo i e m e’ un messaggio) PiPi decide(v) init(v) receive(m) send(m)

25 Algoritmi Distribuiti25 Modelli di sistemi distribuiti Modello asincrono Esempio Processo P i (descritto da un I/O automa) V e’ un insieme di valori, azioni di input azioni di input:init(v) i v  V receive(v) j,i azioni di output azioni di output:decide(v) i send(v) i,j stati statival, un vettore [1,...,n] di elementi di Vtransizioni init(v) i v  Vval[i]:= v receive(v) j,i val[j] := v send(v) i,j nessuna transizione, precond. val(i) := v decide(v) i nessuna transizione, precond. v = val[1]+ …+ val[n]

26 Algoritmi Distribuiti26 Modelli di sistemi distribuiti Modello asincrono Linee di comunicazione canale send (m) i,j receive(m) i,j canale send (m)m receive(m)m Anche ilcanale, associato all’arco (i,j), puo’ essere definito come un automa I/O; con input della forma send (m) i,j e output della forma receive(m) i,j Il tipo di canale piu’ diffuso e’ il canale FIFO in cui ogni azione send (m) aggiunge un messaggio m alla fine della coda ed ogni azione receive(m) rimuove un messaggio m dall’inizio della coda. i j C ij i

27 Algoritmi Distribuiti27 Modelli di sistemi distribuiti Modello asincrono Esempio Canale C i,j M e’ l’alfabeto dei messaggi azioni di input azioni di input:send(m) i,j m  M azioni di output azioni di output:receive(m) j,i stati statiqueue una coda FIFO di elementi di M,inizialmente vuotatransizioni send(m) i,j aggiunge m alla coda receive(m) j,i rimuove il primo elemento della codatask {receive(m) j,j : m  M}

28 Algoritmi Distribuiti28 Modelli di sistemi distribuiti Modello asincrono Esecuzioni e tracce Un frammento di esecuzione di un automa A e’ una sequenza finita s 0,  1,s 1,  1,s 2,  2,…,s r o infinita: s 0,  1,s 1,  1,s 2,  2,…,s r,…, di stati e azioni tali che ogni terna sia una transizione. tracce Talvolta il comportamento di un automa A viene descritto solo dalle sequenze (finite o infinite) di azioni esterne; tali sequenze prendono il nome di tracce..

29 Algoritmi Distribuiti29 Modelli di sistemi distribuiti Modello asincrono Fairness fair Un frammento di esecuzione di un automa A e’ detto fair se valgono le seguenti condizioni:  Il frammento e’ finito e nello stato finale nessuna zione esterna e’ abilitata  Il frammento e’ infinito e contiene un numero infinito di ciascuna azione esterna oppure nessuna di tali azione e’ abilitata.

30 Algoritmi Distribuiti30 Modelli di sistemi distribuiti Modello asincrono Esecuzioni del canale [ ], send (1) i,j,[1], receive (1) i,j,[ ], send (2) i,j,[2], receive(2) i,j,[ ] [ ], send (1) i,j,[1], receive (1) i,j,[ ], send (2) i,j,[2] [ ], send (1) i,j,[1], send (1) i,j,[11], send (1) i,j,[111], …. La prima esecuzione e’ fair poiche’ nessuna receive e’ abilitata nello stato finale, La seconda esecuzione non e’ fair perche’ e’ finita e nello stato finale una azione receive e’ abilitata La terza esecuzione non e’ fair perche’ e’ infinita e in ogni punto della computazione l’azione receive e’ abilitata

31 Algoritmi Distribuiti31 Modelli di sistemi distribuiti Modello asincrono Consideriamo un sistema formato da due processi P 1 e P 2 e due canali C 1,2 e C 2,1. P1P1 P1P1 P2P2 P2P2 C 1,2 C 2,1 Traccia: init(2) 1, init(1) 2,send(2) 1,2, receive(2) 1,2,send(1) 2,1, receive(1) 2,1 init(4) 1,, init(0) 2 decide(5) 1, decide(2) 1

32 Algoritmi Distribuiti32 Modelli di sistemi distribuiti Modello asincrono  Malfunzionamento processi  Crash. Il crash e’ modellato includendo tra le azioni di input di un processo dell’azione di input stop  Fallimento bizantino. Il fallimento bizantino e’ modellato permettendo di sostituire l’automa P con un qualsiasi automa con la stessa interfaccia esterna.  Malfunzionamento comunicazioni  Canali.Perdita di messaggi

33 Algoritmi Distribuiti33 Modelli di sistemi distribuiti Modello asincrono  La programmazione di algoritmi distribuiti in sistemi asincroni e’ particolarmente complicata.  Tecniche per semplificare la programmazione nei sistemi asincroni:  uso di sincronizzatori  simulazione di memoria condivisa  uso di orologi logici  monitoraggio degli algoritmi a tempo di run

34 Algoritmi Distribuiti34 Modello asincrono con memoria comune  Un modello asincrono con memoria comune e’ un automa I/O con azioni di input e di output su un insieme di porte P1P1 P2P2 PnPn : : porte processi var. condivise

35 Algoritmi Distribuiti35 Modello asincrono con memoria comune Esempio di modello shared memory processi  un insieme P di processi {1, 2, …,n} variabile condivisa  una variabile condivisa x con valori in un insieme V  Azioni input  Azioni input:init(v) i con i  P e v  V output output:decide(v) i intern interne:access i  Stati:  Stati: definito dallo stato di ogni processo e dal valore della variabile  Transizioni  Transizioni: insieme di terne  Task  Task: uno per ciascun processo, costituito dalle azioni di access e di decide : :

36 Algoritmi Distribuiti36 Modello asincrono con memoria comune Esempio di modello shared memory  Stati  {idle, access,decide,done} input  V  {#} output  V  {#}  Transizioni init(v) i input := v, se stato=idle allora stato:=access decide(v) i precond. stato= decide e output = v effetto: stato:= done access i precond. stato= access effetto: se x = # allora x:= input output:= x stato:= decide : :

37 Algoritmi Distribuiti37 Modelli asincroni orologi logici relazione d’ordine  In un sistema distribuito spesso e’ necessario stabilire una relazione d’ordine tra eventi di nodi (processi) diversi:  un evento a di P 1 puo’ essere la causa di un evento b di P 2 ?  un evento a di P 1 puo’ non essere correlato a un evento b di P 2 ? ” happens before ”  Per descrivere queste relazioni si e’ introdotto nell’insieme degli eventi del sistema distribuito, un ordine parziale indicato come la relazione ” happens before ”

38 Algoritmi Distribuiti38 Modelli asincroni orologi logici A tempo B C Il re e’ morto lunga vita al re 1. lunga vita al re 2. Il re e’ morto

39 Algoritmi Distribuiti39 Modelli asincroni orologi logici Ipotesi 1)I processi comunicano tramite messaggi 2)In ogni processo gli eventi sono un insieme totalmente ordinato: 3) L’invio e la ricezione di un messaggio sono eventi a cb tempo locale

40 Algoritmi Distribuiti40 Modelli asincroni orologi logici La relazione Happens Before:  La relazione d’ordine  sull’insieme degli eventi di un sistema distribuito soddisfa le seguenti tre condizioni: (i) se a e b sono eventi di uno stesso processo e a precede b, allora a  b (ii) se a e’ l’evento di invio di un messaggio e b e’ l’evento di ricezione dello stesso, allora a  b (iii) se a  b e b  c allora a  c (transitivita’) ab a b

41 Algoritmi Distribuiti41 Modelli asincroni orologi logici Due eventi distinti a e b sono detti concorrenti (a || b) se a  b e b  a a  b significa che e’ possibile che l’evento a possa essere causa di b

42 Algoritmi Distribuiti42 Modelli asincroni orologi logici Diagramma Spazio-Tempo PQR p4 p3 p2 p1 q1 q2 q3 q4 q5 r4 r3 r2 r1 tempo p1  r4, q4  r3, p2  p4 q3 || p3, q3 || r2

43 Algoritmi Distribuiti43 Modelli asincroni orologi logici Orologi Logici C i P i P i C i  Un clock C i per un processo P i e’ una funzione che assegna ad ogni evento a di P i un numero C i (a) C C  Il clock del sistema distribuito e’ dato da una funzione C che assegna ad ogni evento b del sistema il numero C (b) dove CC j P j  C (b) = C j (b) se b e’ un evento del processo P j Ccondizione di clock  La funzione C deve soddisfare alla seguente condizione di clock: CC per ogni coppia di eventi a,b: a  b  C (a) < C (b)

44 Algoritmi Distribuiti44 Modelli asincroni orologi logici Condizione di clock La condizione di clock puo’ essere soddisfatta se valgono le due condizioni seguenti: P  CL1:se a e b sono eventi di P i e a  b, allora C i C i C i (a) < C i (b) P P  CL2: se a e’ l’evento di invio di un messaggio da parte di P i e b e’ l’evento di ricezione dello stesso messaggio da parte di P j, allora C i C j C i (a) < C j (b)

45 Algoritmi Distribuiti45 Modelli asincroni orologi logici Implementazione orologi logici Ogni processo P i ha un contatore C i e C i (a) e’ il valore contenuto in C i quando l’evento a si verifica. Regole implementative IR1ogni processo P i incrementa il proprio contatore C i subito dopo ogni evento locale Tm IR2(i) se a e’ l’evento dato dall’invio di un messaggio m da P i a P j allora m contiene anche il timestamp Tm = C i (a) (ii) il processo P j setta il clock dell’evento ricezione del messaggio m (evento b): Tm C j (b) := max(C j, Tm +1)

46 Algoritmi Distribuiti46 Modelli asincroni tempo virtuale P Q p1p1 p2p2 p3p3 p4p4 p5p5 q1q1 q2q2 q3q3 q4q4 (1)(2) (3)(4) (5) (1) (2) (3) (5) valori clock Il tempo virtuale e’ un tempo discreto; se non si verificano eventi il tempo virtuale e’ fermo!

47 Algoritmi Distribuiti47 Modelli asincroni Ordine Totale La relazione d’ordine totale  ordine ordine totale Gli orologi logici stabiliscono una relazione d’ordine parziale sull’insieme degli eventi. Per imporre un ordine totale si usa un ordine totale sulle identita’ dei processi.  Se a e’ un evento di P i e b e’ un evento di P j, l’ordine totale a  b e’ definita da:  a  b iff C i (a) < C j (b) oppure C i (a) = C j (b) & P i < P j


Scaricare ppt "Algoritmi Distribuiti1 Modelli di sistemi distribuiti problemi computazionali zQuali tipi di problemi computazionali si possono risolvere in un sistema."

Presentazioni simili


Annunci Google