La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

/26 Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano.

Presentazioni simili


Presentazione sul tema: "/26 Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano."— Transcript della presentazione:

1 /26 Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

2 /26 Sincronizzazione dei Clock- 3 Orologi Fisici- 7 Sincronizzazione di Orologi Fisici- 10 Sincronizzazione dei Clock - Algoritmi- 11 Orologi logici - 17 Timestamp di Lamport - 18 Totally-Ordered Multicasting- 21 Clock Vettoriali- 23 Conclusioni 26 Indice dei Contenuti Sistemi Distribuiti, LM Ing. Informatica – 6 CFU – Docente: Marcello Castellano2

3 /26 Sincronizzazione dei Clock In un sistema centralizzato la funzione precedenza non presenta ambiguità. (è il kernel a mantenere una data ed un’ora comuni a tutte le macchine) In un sistema distribuito definire un tempo globale non è semplice. - È impossibile garantire che i vari clock avanzino tutti alla stessa esatta frequenza (unico clock fisico condiviso da tutti i processi) Soluzioni: - Clock Synchronization: Il middleware di ogni nodo del SD aggiusta il valore del suo clock fisico in modo coerente con quello degli altri o con quello di un clock di riferimento - Logical Clocks: in un SD non è necessario l’accordo degli orologi fisici ma solo l’ordine relativo nel tempo degli eventi Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano3

4 /26 Sincronizzazione dei Clock(2)-Timestamping Tecnica del timestamping: ogni processo etichetta (con un timestamp) gli eventi – In questo modo è possibile realizzare una storia globale del sistema Soluzione banale: ogni processo etichetta gli eventi con il proprio clock fisico Problematiche: – L’ordinamento degli eventi di uno stesso processo si può ricostruire – Ma non è sempre valido per l’ordinamento di eventi tra processi diversi – In un sistema distribuito è impossibile avere un unico clock fisico condiviso da tutti i processi Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano4

5 /26 Sincronizzazione dei Clock(3)-SD sinc/asinc SD sincroni – La velocità di esecuzione di ciascun processo deve essere determinabile Il tempo di esecuzione di ciascuno passo è limitato, sia con lower bound che con upper bound – Ciascun messaggio trasmesso su un canale di comunicazione deve essere ricevuto in un tempo limitato e conosciuto (determinato) – Ciascun processo ha un clock locale con un tasso di scostamento del clock (clock drift rate) dal clock reale conosciuto e limitato SD asincroni − Non ci sono vincoli sulla velocità di esecuzione dei processi, sul ritardo di trasmissione dei messaggi e sul tasso di scostamento dei clock Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano5

6 /26 Sincronizzazione dei Clock (4) Esempio: il programma make Fig. 1 – discrepanze temporali possono causare azioni non volute Quando ogni macchina ha il proprio clock, è possibile che ad un evento temporalmente successivo a quello di riferimento venga assegnato un tempo anteriore Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano6

7 /26 Orologi Fisici All’istante di tempo reale t, il sistema operativo legge il tempo dal clock hardware H i (t) dell’ i-mo computer Quindi produce il clock software C i (t)= aH i (t) + b che è una misura approssimata di t a cui può far riferimento il processo P i - In generale il clock software non è completamente accurato e pertanto potrebbe misurare un tempo diverso dal tempo vero t - Diversamente, C i potrebbe essere usato come timestamp per gli eventi che occorrono in P i Risoluzione del Clock: periodo che intercorre tra due aggiornamenti del valore del clock Quale deve essere la risoluzione del clock per poter distinguere due eventi? T risoluzione < ΔT tra due eventi rilevanti Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano7

8 /26 Orologi Fisici (2) Valori Diversi per Diversi clock locali Skew: differenza istantanea fra il valore di due qualsiasi clock Drift: i clock contano il tempo con frequenze differenti (fenomeno dovuto a variazioni fisiche dell’orologio), quindi divergono nel tempo rispetto al tempo reale Drift Rate: differenza per unità di tempo di un clock rispetto ad un orologio ideale – Ad es. drift rate di 2 μsec/sec significa che il clock incrementa il suo valore di 1 sec+2 μsec ogni secondo – I normali orologi al quarzo deviano di circa 1 sec in 11-12 giorni (10 -6 sec/sec) – Orologi al quarzo ad alta precisione hanno un drift rate di circa 10 -7 o 10 -8 sec/sec – Anche se i differenti clock di un SD vengono sincronizzati in un certo istante, a causa del drift rate, dopo un certo intervallo di tempo, saranno di nuovo disallineati quindi occorre eseguire una sincronizzazione periodica per riallineare i clock Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano8

9 /26 Orologi Fisici (3) uno standard internazionale utile alle compagnie elettriche per sincronizzare la cadenza dei loro clock è il Universal Time Coordinated (UTC) Basato ( Numero di transizioni al secondo dell’atomo di cesio 133 ) sul tempo atomico ma occasionalmente aggiustato utilizzando il tempo astronomico: I clock fisici che usano oscillatori atomici sono i più accurati (drift rate = 10 -13 ) L’output dell’orologio atomico è inviato in broadcast da stazioni radio e da satelliti su terra (es. GPS) – In Italia: Istituto Galileo Ferraris Computer con ricevitori possono sincronizzare i loro clock con questi segnali – Segnali da stazioni radio su terra hanno un’accuratezza di circa 0,1- 10 msec – Segnali da GPS hanno un’accuratezza di circa 1 μsec Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano9

10 /26 Sincronizzazione di Orologi Fisici Sincronizzazione interna: un insieme di N computer si dicono sincronizzati internamente quando: - | C i (t) - C j (t)| < D per ogni i,j = 1, 2, … N - In questo caso i due clock C i e C j si accordano all’interno del bound Sincronizzazione esterna: I clock C i (per i = 1, 2, … N ) sono sincronizzati con una sorgente di tempo S (UTC), in modo che, dato un intervallo I di tempo reale: - |S(t) - C i (t)| < D per i = 1, 2, … N e per tutti gli istanti in I - I clock C i hanno un’accuratezza nel range del bound D I clock sincronizzati internamente non sono necessariamente sincronizzati esternamente. Tutti i clock possono deviare collettivamente da una sorgente esterna sebbene rimangano sincronizzati entro il bound D Se l’insieme dei processi P e’ sincronizzato esternamente entro un bound D allora segue dalle definizioni che e’ anche internamente sincronizzato entro un bound 2D Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano10

11 /26 Sincronizzazione dei Clock - Algoritmi Un clock hardware H si dice corretto se il suo drift rate si mantiene all’interno di un bound ρ > 0 limitato (es. 10 -6 secs/ sec), il drift rate di un clock corretto è compreso tra -ρ e + ρ Se il clock H è corretto, allora l’errore che si commette nel misurare un intervallo di istanti reali [t, t’] (con t’>t) è limitato: (1 - ρ) (t’ - t) ≤ H(t’) - H(t) ≤ (1 + ρ) (t’ - t) – Si evitano “salti” del valore del clock Per il clock software C spesso basta una condizione di monotonicità : t' > t → C(t’) > C(t) Un approccio comune a molti algoritmi è quello proposto da Cristian nel 1989 secondo il quale i client possono contattare un time server Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano11

12 /26 Sincronizzazione dei Clock – Algoritmi (2) Se esiste una costante ρ tale che 1- ρ<= dC/dt <= 1 + ρ (maximum drift rate) dopo ∆t la differenza tra due clock può essere al massimo: 2ρ ∆t - In questo caso si dice che il clock sta funzionando secondo le sue specifiche (ρ è definito dal costruttore e specifica di quanto può oscillare il disallineamento del clock) Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano12 Fig. 2 – Clock time e UTC con i clocks tick a 3 differenti velocità

13 /26 Sincronizzazione dei Clock – Algoritmi (3) Ipotesi: I computer ricevono periodicamente il tempo corrente da un time server Due problemi: Il tempo non deve mai scorrere all’indietro (per il clock del server più lento) La risposta del server del C UTC richiede un tempo pari a : (T1 -T0 -I)/2 Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano13 Fig. 3 – Algoritmo di Cristian

14 /26 Algoritmo di Berkeley Algoritmo per la sincronizzazione interna di un gruppo di macchine Il master (time server attivo) richiede, attraverso broadcast, il valore dei clock delle altre macchine (slave) Il master usa i RTT (il Round Trip Time o Round Trip Delay è una misura del tempo impiegato da un pacchetto di dimensione trascurabile per viaggiare da un computer della rete ad un altro e tornare indietro) per stimare i valori dei clock degli slave Il server ha un ruolo attivo, ma non ha il valore esatto del tempo da fornire alle macchine: 1) Il server chiede a tutte le macchine il valore del loro clock. 2) Ogni macchina risponde al server. 3) Il server invia a tutte le macchine il nuovo valore medio del clock Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano14

15 /26 Algoritmo di Berkeley(2) L’accuratezza dell’algoritmo dipende da un RTT nominale massimo: il master non considera valori di clock associati a RTT superiori al massimo Tolleranza ai guasti – Se il master cade, un’altra macchina viene eletta master – Tollerante a comportamenti arbitrari (slave che inviano valori errati di clock) Il master prende un certo numero valori di clock (da un sottoinsieme di slave); questi valori non differiscono tra loro per una quantità specificata Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano15

16 /26 Algoritmo di Berkeley – Sincronizzazione nelle reti senza fili 1. Il time daemon richiede a tutte le altre macchine i valori dei loro orologi 2. Le macchine rispondono 3. Il time daemon indica a tutti come corregere i loro orologi Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano16 Fig. 4 – Sincronizzazione di una rete senza fili

17 /26 Orologi logici I Clock Logici sono usati quando è necessario avere un valore del tempo consistente per tutti i nodi del sistema distribuito, ma questo non necessariamente deve essere il valore del tempo reale assoluto Proposta di Lamport: a) Se due processi non interagiscono non è necessario sincronizzare i loro clock. b) Quello che è importante per due o più processi interagenti è rispettare l’ordine corretto in cui gli eventi avvengono Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano17

18 /26 Timestamp di Lamport Per sincronizzare i clock logici è stata definita la relazione: happens-before o “di precedenza” ( → ) a → b significa “a avviene prima di b” Se a e b sono due eventi nello stesso processo e a avviene prima di b, allora: a → b è vera In due processi, se a è l’evento di invio di un messaggio m e b è l’evento di ricezione di un messaggio m, allora: a → b è vera Se a → b e b → c, allora: a → c Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano18

19 /26 Timestamp di Lamport(2) Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano19 Fig. 5 – a)Tre processi, ognuno con il proprio clock. I clock hanno diverse velocità. b)L’algoritmo di Lamport corregge i clock Considerando due eventi x e y in due processi non-interagenti, allora x → y non è vero, ma neanche y → x è vero x e y sono detti concorrenti. Per ogni evento non concorrente a è necessaria una misura globale del tempo da assegnare ad a : C(a) valido in tutti i nodi di un sistema distribuito o concorrente (processi/processori) Se a → b allora C(a) < C(b)

20 /26 Timestamp di Lamport(3) Total ordering può essere definito se : Ogni messaggio contiene il tempo del suo invio sul mittente (basato sul clock del nodo mittente) Quando un messaggio arriva il clock del ricevente deve essere maggiore di almeno un tick del tempo del mittente (segnato sul messaggio). Tra due eventi il clock deve avanzare almeno di un tick Non si possono avere due eventi che accadono nello stesso esatto istante di tempo Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano20 Fig. 6 – Orologi Logici di Lamport nei SD

21 /26 un’operazione di multicast attraverso la quale tutti i messaggi sono consegnati nello stesso ordine a tutti i destinatari Due aggiornamenti contemporanei su repliche diverse, possono portare ad uno stato inconsistente. La tecnica del timestamp di Lamport garantisce l’operazione di multicast con la caratteristica del “totally-ordered” Esempio: Totally-Ordered Multicasting Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano21 Fig. 7 – Database Replicato in due siti

22 /26 Totally-Ordered Multicasting (2) Come si applica la tecnica del multicasting totalmente ordinato: Un gruppo di processi comunica tramite multicast tra loro nel seguente modo: 1. Ogni messaggio è inviato a tutti i processi in multicast e con un timestamp del logical time del mittente e poi messo in coda dai processi in ricezione nell’ordine del timestamp. 2. Si supponga che messaggi sono consegnati nell’ordine in cui vengono inviati e che non ne vengano perso 3. Ogni processo destinatario invia un acknowledgement in multicast agli altri processi 4. Non è possibile che due messaggi abbiamo lo stesso timestamp Ogni processo avrà la stessa copia della coda locale dei messaggi quindi tutti i messaggi sono consegnati ovunque nello stesso ordine Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano22

23 /26 Clock Vettoriali Il clock logico vettoriale per un sistema di N processi è dato da un vettore di N interi Ciascun processo pi mantiene il proprio clock vettoriale V i Per il processo p i, V i [ i ] è il clock logico locale Ciascun processo usa il suo clock vettoriale per assegnare il timestamp agli eventi Analogamente al clock scalare di Lamport, il clock vettoriale viene allegato al messaggio m ed il timestamp diviene vettoriale Con il clock vettoriale si catturano completamente le caratteristiche della relazione happended-before Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano23

24 /26 Clock Vettoriali (2) Ogni processo p i inizializza il proprio clock vettoriale V i V i [ j ]=0 per ogni j = 1, 2, …, N Prima di eseguire un evento (interno o esterno), p i incrementa la sua componente del clock vettoriale V i [ i ]= V i [ i ] + 1 Quando p i invia il messaggio m a p j – Incrementa il valore di Vi per la sua componente – Allega al messaggio m il timestamp t = V i – Esegue l’evento send(m) Quando pj riceve il messaggio m con timestamp t – Aggiorna il proprio clock logico V j [ j ] = max(t[ j ], V j [ j ]) per ogni j = 1, 2, …, N – Incrementa il valore di V j per la sua componente – Esegue l’evento receive(m) Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano24

25 /26 Clock Vettoriali (3) Dato un clock vettoriale V i – V i [ i ] è il numero di eventi generati da p i – V i [ j ] con i ≠ j è il numero di eventi occorsi a p j di cui p i potrebbe avere conoscenza V = V’ se e solo se V [ j ] = V’ [ j ] per ogni j = 1, 2, …, N V ≤ V’ se e solo se V [ j ] ≤ V’ [ j ] per ogni j = 1, 2, …, N V < V’ e quindi l’evento associato a V precede quello associato a V’ se e solo se V ≤ V’ and V ≠ V’ – per ogni i = 1, 2, …, N V’[ i ] ≥ V [ i ] – Э i є {1, …, N} | V’[ i ] > V [ i ] Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano25

26 /26 Conclusioni Lasciate ai discenti del Corso … Sistemi Distribuiti, LM Ing. Informatica – 6 CFU –Docente: Marcello Castellano26


Scaricare ppt "/26 Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano."

Presentazioni simili


Annunci Google