Upload
cristian-murariu
View
214
Download
0
Embed Size (px)
DESCRIPTION
Clock synchronization using Christian's algorithm
Citation preview
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 1/12
Sincronizarea ceasurilor - algorimul lui Cristian
1. Descrierea problemei
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre
exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
2. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.
3. Algoritm
a. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
b. Pseudocod
c. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
d. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
e. Analiza complexitatii
f. Implementare
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 2/12
g. Testare
4. Concluzii
Sincronizarea ceasurilor - algorimul lui Cristian
4. Descrierea problemei
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre
exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
5. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.
6. Algoritm
h. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
i. Pseudocod
j. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
k. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 4/12
q. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
r. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
s. Analiza complexitatii
t. Implementare
u. Testare
4. Concluzii
Sincronizarea ceasurilor - algorimul lui Cristian
10. Descrierea problemei
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre
exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
11. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.12. Algoritm
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 5/12
v. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
w. Pseudocod
x. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
y. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
z. Analiza complexitatii
aa. Implementare
bb. Testare
4. Concluzii
Sincronizarea ceasurilor - algorimul lui Cristian
13. Descrierea problemei
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 6/12
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
14. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.
15. Algoritm
cc. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
dd. Pseudocod
ee. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
ff. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
gg. Analiza complexitatii
hh. Implementare
ii. Testare
4. Concluzii
Sincronizarea ceasurilor - algorimul lui Cristian
16. Descrierea problemei
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 7/12
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre
exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
17. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.
18. Algoritm
jj. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
kk. Pseudocod
ll. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
mm. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
nn. Analiza complexitatii
oo. Implementare
pp. Testare
4. Concluzii
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 8/12
Sincronizarea ceasurilor - algorimul lui Cristian
19. Descrierea problemei
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre
exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
20. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.
21. Algoritm
qq. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
rr. Pseudocod
ss. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
tt. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 9/12
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
uu. Analiza complexitatii
vv. Implementare
ww. Testare
4. Concluzii
Sincronizarea ceasurilor - algorimul lui Cristian
22. Descrierea problemei
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre
exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
23. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.
24. Algoritm
xx. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
yy. Pseudocod
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 10/12
zz. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
aaa. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
bbb. Analiza complexitatii
ccc. Implementare
ddd. Testare
4. Concluzii
Sincronizarea ceasurilor - algorimul lui Cristian
25. Descrierea problemei
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre
exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
26. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.27. Algoritm
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 11/12
eee. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
fff. Pseudocod
ggg. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
hhh. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
iii. Analiza complexitatii
jjj. Implementare
kkk. Testare
4. Concluzii
Sincronizarea ceasurilor - algorimul lui Cristian
28. Descrierea problemei
Algoritmul de sincronizare a ceasurilor este utilizat pentru a ajusta timpul de pe o masina
locala cu timpul unui server. Problema sincronizarii ceasurilor se pune deoarece timpul local
aflate pe un calculator s-ar putea sa difere fata de timpul aflat pe un alt calculator. Chiar
daca initial diferite calculatoare au fost setate cu acelasi timp, in realitate timpul local tinde
sa difere datorita abaterilor de ceas care au loc pe diferite instante. Acest fenomen este o
cumulare de factori diversi, printre care putem enumera diferenta de voltaj dintre diverse
surse ale calculatoarelor, temperatura ambianta, gradul de utilizare al unui calculator etc.
Acesta problema este importanta in analiza ordinii producerii evenimentelor. Spre exemplu, avand doua evenimente, a si b, cu conditia ca evenimentul b sa se produca dupa
7/21/2019 Cloccckkk Sync
http://slidepdf.com/reader/full/cloccckkk-sync 12/12
evenimentul a, este important sa stim exact cand evenimentul a si-a incheiat executia astfel
incat evenimentul b sa poata sa inceapa.
29. Idei de rezolvare
Algoritmul lui Cristian (creat de inginerul roman Flaviu Cristian) rezolva problema
deviatiei ceasurilor localizate pe calculatoare diferite folosind timpul unui server. Acest
server isi mentine ora exact utilizand o sursa de incredere, iar timpul de pe acest server va fi
folosind ca timp de referinta. Un calculator isi va ajusta timpul facand un apel catre aces
server.
30. Algoritm
lll. Descriere
Descrierea algoritmului lui Cristian este urmatoarea: un proces p face un request la
server intru-un mesaj mr si primeste timpul acestuia t intr-un alt mesaj mt; timpul t este
introdus in mesaj chiar inainte de plecarea acestuia de la serverul S. Instanta locala (cea
care face request la server) ajusteaza apoi acest timp primit ca raspuns cu valoarea timpului
care a trecut intre momentul in care a solicitat ajustarea timpului si momentul in care a primit
raspuns.
mmm. Pseudocod
nnn. Exemplu de aplicare
Presupunand ca avem un server de timp cu ora exacta. O instanta locala P va face un
request la momentul T0, serverul S va procesa mesajul si va trimite inapoi un raspuns cu
timpul t, care va ajunge la P in momentul T1. Atunci cand P va primi raspunsul, trebuie sa isi
seteze timpul local cu valoarea primita ca raspuns t la care se adauga timpul necesar
transimiterii mesajului, adica (T0 + T1) / 2 .
ooo. Corectitudine
Corectitudinea rezolvarii problemei depinde de timpul necesar serverului pentru a trimite
raspunsul. Considerand Tmin ca fiind timpul minim de transmitere a mesajului intr-o directie,
P primeste raspunsul de la S intr-un interval de forma: [ t + Tmin, t + (T0 + T1) / 2 - min ],
adica ± ((T0 + T1) / 4 - min).
ppp. Analiza complexitatii
qqq. Implementare
rrr. Testare
4. Concluzii