Sistemi Distribuiti. La Nozione di Tempo nei Sistemi Distribuiti. dott. Ing. Silvia Bonomi. bonomi@dis.uniroma1.it



Documenti analoghi
Il passaggio del tempo nei sistemi distribuiti

Coordinamento e sincronizzazione

Sincronizzazione nei Sistemi Distribuiti

22/05/2013. Indice dei Contenuti. Sincronizzazione dei Clock. Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.

NTP. (Sincronizziamo gli orologi)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Coordinazione Distribuita

Tempo fisico e logico

LINUXDAY ottobre 2009 Besnate (VARESE)

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Mutua esclusione distribuita

Calcolatori Elettronici A a.a. 2008/2009

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita

Sistemi Operativi SCHEDULING DELLA CPU

Coordinamento e sincronizzazione

3. Introduzione all'internetworking

Le reti. Introduzione al concetto di rete. Classificazioni in base a

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Introduzione all analisi dei segnali digitali.

Gianluigi Pessina, Lorenzo Rota * UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA ISTITUTO NAZIONALE DI FISICA NUCLEARE, SEZIONE DI MILANO BICOCCA

Reti di calcolatori. Lezione del 10 giugno 2004

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Reti di Telecomunicazione Lezione 6

Elementi di teoria dei segnali /b

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Il Sistema Operativo

Lo scenario: la definizione di Internet

Modulo 8 Ethernet Switching

Appunti di Sistemi Distribuiti

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

LIVELLO DATA LINK (DI LINEA)

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

STRUTTURE DEI SISTEMI DI CALCOLO

Classificazione delle applicazioni multimediali su rete

L integrità delle informazioni quale elemento fondante della sicurezza nell evoluzione degli apparati di segnalamento

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

SVM. Veronica Piccialli. Roma 11 gennaio Università degli Studi di Roma Tor Vergata 1 / 14

Dal protocollo IP ai livelli superiori

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

FPf per Windows 3.1. Guida all uso

Computational Game Theory

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Soluzioni verifica parte 4

4. Indirizzi Internet

Modulo plug&play MKMB-3-e-3. Interfaccia Modbus/RTU per contatori Iskraemeco MT831 / MT860

Valutazione delle Prestazioni

Operazioni di Comunicazione di base. Cap.4

Esame di INFORMATICA

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

Architettura hardware

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

ALLEGATO 1 Analisi delle serie storiche pluviometriche delle stazioni di Torre del Lago e di Viareggio.

Reti di Calcolatori. Il software

Registratori di Cassa

L applicazione dei vettori di collaudo

Corso di Calcolo Numerico

RETI DI COMPUTER Reti Geografiche. (Sez. 9.8)

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Esempio: aggiungere j

Sistema operativo: Gestione della memoria

RETI DI TELECOMUNICAZIONE

E naturale chiedersi alcune cose sulla media campionaria x n

Elementi di Psicometria con Laboratorio di SPSS 1


Esercitazione su UML Ingegneria del Software - San Pietro

SUITE BY Pannello Misure BY11250

Basi di Dati Distribuite

Creare una Rete Locale Lezione n. 1


5. Traduzione degli indirizzi di rete in indirizzi fisici: ARP

DMA Accesso Diretto alla Memoria

Introduzione alle applicazioni di rete

Indice dei Contenuti

Reti di Telecomunicazione Lezione 8

Introduzione all acquisizione Dati

Lezione 8. La macchina universale

Mining Positive and Negative Association Rules:

Gestione degli indirizzi

Scheduling. Scheduling 14/12/2003 1/7

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

Transmission Control Protocol

Sistemi Distribuiti. Ing. Sara Tucci Piergiovanni

Multimedialità e digitalizzazione

Transcript:

Sistemi Distribuiti La Nozione di Tempo nei Sistemi Distribuiti dott. Ing. Silvia Bonomi bonomi@dis.uniroma1.it

Introduzione In un Sistema Distribuito 1. I processi girano su macchine diverse connesse in rete 2. I processi cooperano per portare al termine una computazione 3. La comunicazione avviene esclusivamente attraverso lo scambio di messaggi OSSERVAZIONE: Molti algoritmi richiedono sincronizzazione per essere portati al termine Molti algoritmi richiedono che gli eventi siano ordinati CONSEGUENZA: Il tempo è un fattore critico!!!

Modello della Computazione Componenti del sistema: n processi e canali di comunicazione Ogni processo genera una sequenza di eventi interni ed esterni (send/receive) e k i, k-simo evento generato da P i L evoluzione di una computazione può essere visualizzata con un diagramma spazio-tempo. La nozione di tempo è vitale nei sistemi distribuiti per dare ordine agli eventi che si susseguono; Es. Differenti computer devono ordinare transazioni di commercio elettronico in modo consistente. 3

Storia di una Computazione Denotiamo con i la relazione di ordinamento su un processo p i tra due eventi: e i e se e solo se e è accaduto prima di e in p i Storia locale E la sequenza di eventi generati da un singolo processo history(p 1 ) = h 1 = <e 11, e 12, e 1 3, e 1 4, e 1 5, e 16 > Storia locale parziale prefisso della storia locale h 1 m = e 1 1 e 1 m Storia globale: insieme delle storie locali H = i h i per 1 i n

Il Tempo nei Sistemi Distribuiti (1/2) Soluzione Si usa la tecnica del timestamping: ogni computer etichetta (con un timestamp) un evento. In questo modo è possibile realizzare una history globale del sistema Soluzione banale: Ogni processo etichetta gli eventi con il proprio clock fisico Funziona? L ordinamento degli eventi di uno stesso processo si può ricostruire!!! E l ordinamento di eventi tra processi diversi? In un sistema distribuito e impossibile avere un unico clock fisico condiviso da tutti i processi

Il Tempo nei Sistemi Distribuiti (2/2) Prima soluzione: Tentare di sincronizzare con una certa approssimazione i clock fisici locali ad ogni processo attraverso opportuni algoritmi. In questo caso il processo può etichettare gli eventi con il valore del suo clock fisico (che risulta sincronizzato con gli altri con una certa approssimazione). Il timestamping e quindi basato sulla nozione di tempo fisico (clock fisico). E sempre possibile mantenere l approssimazione dei clock limitata? In un modello asincrono NO!! In un modello asincrono il timestamping non si puo basare sul concetto di tempo fisico. A questo scopo verra introdotta la nozione di clock basata su un tempo logico (clock logici).

Il Clock Fisico All istante di tempo reale t, il sistema operativo legge il tempo dal clock hardware H i (t) del computer, quindi produce il software clock C i (t)= αh i (t) + β che approssimativamente misura l istante di tempo fisico t per il processo p i. Es. C i (t) e un numero a 64 bit che da i nanosecondi trascorsi all istante t da un istante di riferimento (es. boot della macchina). In generale il clock non e completamente accurato: può essere diverso da t. Se C i si comporta abbastanza bene allora può essere usato come timestamp per gli eventi che occorrono in p i. Quanto deve essere la risoluzione del clock (periodo che intercorre tra gli aggiornamenti del valore del clock) per poter distinguere due differenti eventi? T risoluzione < ΔT tra due eventi rilevanti

Clock Fisici in un Sistema Distribuito Diversi clock locali possono avere valori diversi: Skew: the difference in time between two clocks (Galli) (differenza istantanea fra il valore di due qualsiasi clock) Drift: i clock contano il tempo con differenti frequenze (fenomeno dovuto a variazioni fisiche dell orologio), quindi divergono Drift Rate: the gradual misalignment of once synchronized clocks caused by the slight inaccuracies of the time-keeping mechanisms (differenza per unita di tempo rispetto ad un orologio ideale), es. drift rate di 2microsec/sec significa che il clock incrementa il suo valore di 1sec+2microsec ogni secondo. Normali orologi al quarzo deviano di circa 1 sec in 11-12 giorni. (10-6 secs/sec). Orologi al quarzo ad alta precisione hanno un drift rate di circa 10-7 o 10-8 secs/sec

Coordinated Universal Time (UTC) UTC è uno standard internazionale per mantenere il tempo. Basato su International Atomic Time, quindi e basato sul tempo atomico ma e occasionalmente aggiustato utilizzando il tempo astronomico. I clock fisici che usano oscillatori atomici sono i piu accurati (drift rate 10-13 ) L output dell orologio atomico e inviato in broadcast da stazioni radio su terra e da satelliti (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 millisecondi; segnali da GPS hanno un accuratezza di circa 1 microsec.

Sincronizzazione di Clock Fisici (1/2) 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 che si mantiene all interno del bound D. Sincronizzazione interna I clock di due computer sono sincronizzati l uno con l altro in modo che: C i (t) - C j (t) < D per i = 1, 2, N nell intervallo I In questo caso i due clock C i e C j si accordano all interno del bound D.

Sincronizzazione di Clock Fisici (2/2) Osservazioni I clock sincronizzati internamente non sono necessariamente esternamente sincronizzati. 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

Nozione di clock corretto (1/2) Un clock hw H e 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 e almeno -ρ e al massimo +ρ Se il clock H e corretto allora l errore che si commette nel misurare un intervallo di istanti reali [t,t ] (con t >t) e limitato: (1 - ρ ) (t - t) H(t ) - H(t) (1 + ρ ) (t - t) (in questo modo si evitano salti del valore del clock) perfect clock fast clock slow clock

Nozione di Clock Corretto (2/2) Per il clock sw C spesso basta una condizione di monotonicita t' > t implica C(t ) > C(t) - Es. condizione facility Unix make: 200 files compilati alle 17,00 con C(17,00)=17,30, 3 modificati alle 17,15. - Se no monotonicita e C(17,15)=17,20 non ricompila nulla! Si puo garantire monotonicita con un clock hw che va veloce: scelgo opportunamente i valori a e b Clock guasto: se non rispetta le condizioni di correttezza crash failure un clock che smette di funzionare arbitrary failure qualsiasi altro guasto (es. Y2K bug che dopo il 31/1/1999 mette 1/1/1900 anziche 1/1/2000) Si noti che la correttezza non implica accuratezza...

Sincronizzazione interna in un sistema sincrono Caratteristiche di un sistema Sincrono Il tempo di esecuzione di ciascuno step è limitato (sia con lower bound che con upper bound) Ciascun messaggio trasmesso su un canale è ricevuto in un tempo limitato Ciascun processo ha un clock locale con in drift rate dal clock reale conosciuto e limitato Algoritmo 1. Un processo p 1 manda il suo tempo locale t ad un processo p2 tramite un messaggio m 2. p2 setta il suo clock a t+ttransito dove Ttransito è il tempo di trasmissione del messaggio m 3. Ttransito è sconosciuto ma min Ttransito max 4. Chiamiamo u=(max-min) l incertezza sul tempo di trasmissione 5. Se il ricevitore setta il suo tempo a t+(max+min)/2 allora è possibile mantenere lo skew al più a u/2 SISTEMA ASINCRONO: T trans = min + x con x >= 0

Sincronizzazione mediante Time Server Time Service Centralizzati Request-driven Esempio Cristian Algorithm Broadcast-based Esempio Berkeley Unix algorithm - Gusella & Zatti (1989) Distribuiti (Network Time Protocol)

Algoritmo di Cristian Un time server S riceve il segnale da una sorgente UTC (sincronizzazione esterna) Un processo p richiede il tempo con m r e riceve t in m t da S p setta il suo clock a t + T round /2 T round e il round trip time registrato da p mr p mt Time server,s Osservazioni: Un singolo time server potrebbe guastarsi, Cristian suggerisce l uso di un gruppo di server sincronizzati Non prevede server maliziosi

Accuratezza dell algoritmo di Cristian Caso 1 Il tempo impiegato dal messaggio di ritorno è maggiore rispetto alla stima fatta utilizzando RTT/2 ed in particolare è uguale a (RTT-min) Δ = stima del messaggio di ritorno - tempo reale = (RTT/2) - (RTT - min) = (-RTT+2min)/2 = -RTT/2 +min = -(RTT/2 - min) Caso 2 Il tempo impiegato dal messaggio di ritorno è minore rispetto alla stima fatta utilizzando RTT/2 ed in particolare è uguale a (RTT-min) Δ = stima del messaggio di ritorno - tempo reale = (RTT/2) - min = + (RTT/2 - min) Quind l accuratezza dell algoritmo di Cristian è ± (T round /2 - min) dove min e il minimo tempo di trasmissione p S m r min m r RTT m t RTT/2 m t min

Request-Driven Synchronization RTT=20

Algoritmo Berkeley Algoritmo Berkeley: algoritmo per la sincronizzazione interna di un gruppo di computer Il master richiede, attraverso broadcast, il valore dei clock delle altre macchine del sistema distribuito, quindi colleziona i valori dei clock degli altri (slaves) Il master usa i round trip time per stimare i valori dei clock degli slave Prende la media di questi Manda l aggiustamento opportuno agli slave (se l aggiustamento prevede un salto indietro nel tempo, lo slave non setta il nuovo valore ma rallenta) L accuratezza del protocollo dipende da un round-trip time nominale massimo: il master non considera valori di clock associati a RTT superiori al massimo Fault tolerance: se un master cade un altra macchina viene eletta master (in un tempo non limitato a priori) E 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.

Berkeley Algorithm: esempio T S1 = 690 T new = 690 + 5 = 695 T new = 700-5 = 695 T M = 700 d 1 =690-700 = -10 d 2 =705-700 = 5 d 1 =695-700 = - 5 Avg= (0-10 - 5 + 5)/2= - 5 Adj S1 = -5 +10= 5 Adj S2 = -5-5 = -10 Adj S3 = -5 +5 = 0 Adj M = -5 + 0 = - 5 T S2 = 705 T S3 = 695 T new = 705-10 = 695 T new = 695 + 0 = 695

Berkeley Algorithm Osservazione: Che cosa significa rallentare un clock? Non si può pensare di imporre un valore di tempo passato ai processo slave che si trovano con un valore di clock superiore a quello calcolato come clock sincrono. Ciò provocherebbe un problema di ordinamento causa/effetto di eventi e verrebbe violata la condizione di monotonicità del tempo. Quindi la soluzione e quella di mascherare una serie di interrupt che fanno avanzare il clock locale in modo di rallentare l avanzata del clock stesso. Il numero di interrupt mascherati è pari al tempo di slowdown diviso il periodo di interrupt del processore.

Network Time Protocol (NTP) Time service per Internet - sincronizza client a UTC: Reliability da server e path ridondanti, e scalabile, autentica time sources Primary servers are connected to UTC sources Secondary servers are synchronized to primary servers Synchronization subnet - lowest level servers in users computers 1 2 2 3 3 3

NTP sincronizzazione di server La sottorete di sincronizzazione si riconfigura in caso di guasti es. Un primary che perde la connessione alla sorgente UTC puo diventare un server secondario Un secondario che perde la connessione al suo primary (crash del primary) può usare un altro primary Modi di sincronizzazione: Multicast: un server all interno di una LAN ad alta velocita manda in multicast il suo tempo agli altri che settano il tempo ricevuto assumendo un certo ritardo (non molto accurato) Procedure call: un server accetta richieste da altri computer (come algoritmo di Cristian). Alta accuratezza. Utile se non e disponibile un multicast hw. Simmetrico: coppie di server scambiano messaggi contenenti info sul timing. Usata quando e necessaria un accuratezza molto alta (per gli alti livelli della gerarchia)

Messaggi scambiati da coppie di peers Tutti i modi di sincronizzazione usano UDP Ogni msg porta timestamps di eventi recenti: Local times di Send e Receive del messaggio precedente Local times di Send del messaggio corrente Il ricevente segna il tempo in cui riceve il msg T i ( si ha T i-3, T i-2, T i-1, T i ) Nel modo simmetrico il ritardo tra l arrivo di un messaggio e l invio del successivo potrebbe essere non trascurabile Server B T i-2 T i-1 Time m m' Server A T i- 3 T i Time

Accuratezza di NTP Per ogni coppia di msg scambiati tra i due server, NTP stima un offset o i tra i 2 clock ed un ritardo d i (tempo di trasmissione totale per i 2 msg) Supponi che il vero offset del clock di B rispetto ad A sia o e i tempi di trasmissione dei msg m ed m siano rispettivamente t e t T i-2 = T i-3 + t + o e T i = T i-1 + t - o Quindi il tempo totale di trasmissione dei msg: d i = t + t = T i-2 - T i-3 + T i - T i-1 E (sottraendo le equazioni) o = o i + (t - t )/2 con o i = (T i-2 - T i-3 + T i - T i-1 )/2 Considerando che t, t >0 si può dimostrare che o i - d i /2 o o i + d i /2. Quindi o i è una stima dell offset e d i è una misura dell accuratezza della stima NTP servers filtrano le coppie <o i, d i >, stimano l affidabilita dei dati dalla differenza con la stima, cosi seleziona i peers che usa per sincronizzarsi Accuratezza di 10 millisecs su Internet paths (1 su LANs)

Il tempo in un sistema asincrono Tempo Fisico: proprietà globale osservabile? NO in un sistema distribuito asincrono: clock diversi e impossibilità di sincronizzarli? L impossibilità di una sincronizzazione precisa deriva dall impredicibilità dei ritardi della comunicazione Quindi, il tempo di due eventi che accadono in processi diversi non può generalmente essere utilizzato per decidere quando un evento precede l altro