26) Come si inquadrano le problematiche di clock nella sincronizzazione?

Clock fisico, abbiamo un unico tempo se assumiamo di avere :

purtroppo,

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

 


Back
Index
Next