26) Come si inquadrano le problematiche di clock nella sincronizzazione?
Clock fisico, abbiamo un unico tempo se assumiamo di avere :
purtroppo,
Uso di trasmissione radio dell'ora.
Clock logici, il clock assegna un numero ad ogni evento significativo
La funzione TS(i) assegna un valore ad ogni evento. Se a-> b, allora il timestamp logico degli eventi è tale che TS(a) < TS(b)
Condizione di clock: per qualunque a e b, se a-> b, allora LC(a) < LC(b)
La funzione di clock logico globale LC è tale che per ogni evento a che appartenga al processo i, si ha LC(a) = LCi(a)
Condizioni
C1. per qualunque a e b, se a-> b nel processo Pi, allora LCi(a) < LCi(b)
C1.per qualunque a e b, se a è l'invio di un messaggio nel processo Pi e b la ricezione nel processo Pj, allora LCi(a) < LCj(b)
I1. ogni processo Pi incrementa LCi tra due eventi
I2. per qualunque a, invio di un messaggio nel processo Pi, il messaggio contiene il clock come timestamp: TS = LCi(a)
I3.per qualunque b, ricezione di un messaggio nel processo Pj, il processo mette il clock logico al valore maggiore del clock corrente e del timestamp: LCj = max (TSricevuto, LCjcorrente) + 1
Questo produce una relazione d'ordine parziale,
E' necessario introdurre una relazione di ordine totale tra tutti i processi del sistema
Relazione d'ordine totale: se a è un evento in un processo Pi e b un evento in un processo Pj, allora a=> b se e solo se
R1) LCi(a) < LCj(b) oppure
R2) LCi(a) = LCj(b) e Pi < Pj