Globalno vreme i sinhronizacija satovaGlobalno vreme i sinhronizacija satova
1. Vreme i redosled
2. Merenje vremena
3. Interna sinhronizacija
4. Eksterna sinhronizacija
Vreme i redosled
U modelima prirodnih fenomena pojam vremenakao nezavisne promenljive.
Definisanje osnovnih fizi čnih konstanti u odnosu naosnovnu jedinicu vremena - sekundu.
Vreme i redosled doga đaja su od esencijalnog zna čajaza rad sistema u realnom vremenu - digitalni sat.
Garancija konzistentnog ponašanja distrubuiranog sis tema.
Vrste redosleda
Vremenski redosled
Redosled trenutaka na vremenskoj osi
Vremenska osa : Beskona čan skup trenutaka {{{{T}}}}sa slede ćim pravilima:
{{{{T}}}} je uređeni skup za koji važi da ako su p i q bilo kojadva trenutka, tada je p ili istovremen sa q, ili p prethodi q,ili q prethodi p, uz to da su ovi slu čajevi potpuno isklju čivi.
{{{{T}}}} je zbijeni skup ( dense) . Postoji makar jedno qizmeđu p i r ako p nije istovetan sa r, gde su p, q i rtrenutci.
Deo vremenske ose - trajanje ( duration ).
Događaj se može odigrati samo u odre đenom trenutkui nema svoje trajanje.
Simultani doga đaji - koji se odigraju u istom trenutku.
Trenutci potpuno ure đeniDogađaji delimi čno ure đeni (simultani doga đaji).Događaji delimi čno ure đeni (simultani doga đaji).
Potpuno ure đeni doga đaji – uvo đenjem dodatnih kriterijuma(broj čvora u kome se odigrao doga đaj).
Uzročni redosled
Značaj u RT primenama.
Alarmni pljusak – primarni doga đaj.
Vremenski redosled neophodan ali ne i dovoljan za određivanje uzro čnog redosleda.
Redosled isporuke
Zastupljen u distribuiranim komunikacionim sistemim a.
Komunikacioni sistem garantuje da će svi host ra čunari videti sekvencu doga đaja sa istim redosledom isporuke
Logi čki ili fizi čki sat
Logički sat vodi evidenciju samo u smislu uređenja događaja• unutar grupe zavisnih događaja
Fizički sat vodi evidenciju o dnevnom vremenu• Konzistentno kroz sistem
Kvarcni satovi
1880: Piezoelektri čni efekat• Braća “Curie”• Pritisak na kristal kvarca – generisanje električnog polja• Dovođenje električnog polja izaziva savijanje kristala
1929: Sat sa kristalom kvarca1929: Sat sa kristalom kvarca• Rezonator u obliku viljuške• Laserko trimovanje da osciluje na 32 768 Hz• Standardni rezonatori imaju tačnost 6 ppm na 31º C• Sat ubrza ili uspori po ½ sek/dan• Stabilnost bolja od tačnosti: 2 sek/mesec• Dobar rezonator može imati tačnost do 1 sekunde u 10 g.
Atomski sat
• Sekunda definisana kao trajanje od 9.192.631.770 periodaradijacije koja odgovara prelazu atoma Cezijuma-133između dva nivoa.
• Tačnost bolja of 1 sekunde na 6 miliona godina• Tačnost bolja of 1 sekunde na 6 miliona godina
• NIST standard od 1960
UTC
• UT0o Srednje solarno vreme na Griničuo Dobijeno od astronomskih osmatranja
• UT1o UT0 korgovan zbog pomeranja polova
• UT2o UT1 korigovan zbog sezonskih varijacija u rotaciji zemlje
• UTC
English CUT Coordinated Universal Time
French TUC Temps Universel Coordonné
compromise UTCunofficial English: “Universal Time, Coordinated”; unofficial French: “Universel Temps Coordonné”
• UTCo Civilno vreme mereno na bazi atomske skale
Fizički satovi u ra čunaru
Sat realnog vremena CMOS brojač koji se pobuđuje kvarcnim oscilatorom.
• Baterijsko napajanje za merenje vremena kada je računar isključen
Operativni sistem programira tajmersko kolo da generiše periodični prekid
• Primer: 60, 100, 250, 1000 prekida u sekundi• Programmable Intrval Timer (PIT) – Intel 8253, 8254• Prekidna procedura dodaje 1 brojaču u memoriji
Problem
Ujednačiti dva sistemma da imaju isto vreme• Dva sata se vrlo teško usaglašavaju• Kvarcni oscilatori osciluju na frekvencijama koje se za
malo razlikuju
Brzina otkucavanja satova se menja u toku vremena Brzina otkucavanja satova se menja u toku vremena • Clock Drift• Sve veća razlika u vremenu
Razlika između dva sata u nekom trenutku vremena• Clock Skew
Sept 18, 20068:00:00
8:00:00 8:00:00
Oct 23, 20068:00:00
8:01:24 8:01:48
Skew = +84 seconds+84 seconds/35 daysDrift = +2.4 sec/day
Skew = +108 seconds+108 seconds/35 days
Drift = +3.1 sec/day
Vre
me
u rač
unar
u, C
1d C
d t=
Idealni sat
Referentno UTC vreme , t
Vre
me
u rač 1
d t=
Sat u ra čunaru kasni
Vre
me
u rač
unar
u, C
Ofset (skew)
1d C <
Referentno UTC vreme , t
Vre
me
u rač 1
d C
d t<
Vre
me
u rač
unar
u, C
Ofset (skew)
1d C
d t>
Sat u ra čunaru žuri
Referentno UTC vreme , t
Vre
me
u rač
Sat realnog vremena
Mikrotakt – doga đaj koji inkrementira broja č.
Granularnost - trajanje izme đu dva uzastopna mikrotakta
Greška digitalizacije pri merenju vremena.
Mikrotakt i sata k je označen kao mikrotakt ik.
z(e) - apsolutni vremenski marker doga đaja e
Drift sata između mikrotakta i i i+1odnos frekvencija sata k i referntnog sata, u trenutku i.
Odnos trajanja granule sata k i granule referentnog sata
.)()( 1
k
ki
kik
in
mikrotaktzmikrotaktzdrift
−= +
kk
Referentni sat: jedinstveni sat z frekvencije fz koja ja usaglašena sa me đunarodnim standardom vremena.
.1)()( 1 −
−= +
k
ki
kik
n
mikrotaktzmikrotaktzρ
Uzroci: temperatura, napon napajanja, starenje.
Ofset između satova j i k na granuli iRazlika izme đu respektivnih mikrotaktova dva sata
)()( ki
ji
jki mikrotaktzmikrotaktzofset −=
Vre
me
u rač
unar
u, C
Idealni
Greške sata
Dobar
Dobar
Referentno UTC vreme , t
Vre
me
u rač
Greška u stanjubrojača
Vre
me
u rač
unar
u, C
IdealniDrift
Greške sata
Referentno UTC vreme , t
Vre
me
u rač
Maksimalni ofset izme đu bilo koja dva sataiz skupa od n satova.
{ }jki
nkji ofset
≤≤=Π
,1max
Preciznost u skupu satova
TačnostOfset sata k u odnosu na referentni sat z na mikrotaktu i
Periodi čna sinhronizacija.
Merenje vremena
Idealni slu čaj – sinhronizacija svih čvorova ref. satomMogućnost sinhronizacije čvorova – lokalni oscilator.Univerzalna vremenska referenca – globalno vreme.
Skup čvorova gde svaki ima lokalni fizi čki sat ckgranularnosti gk .
Svi satovi interno sinhronizivani sa preciznoš ću ΠΠΠΠ.
Podskup mikrotaktova svakog od lokaklnih satova zagenerisnje lokalne implementacije pojma:
globalno vreme
Uslov opravdanostiGlobalno vreme t se naziva opravdanim, ukoliko lokal neimplementacije globalnog vremena zadovoljavaju uslovimplementacije globalnog vremena zadovoljavaju uslov
g >>>> ΠΠΠΠSinhronizaciona gerška manja od jedne makrogranule.
Merenje intervala
),2()2( gddgd obstrueobs +<<−
Unutrašnja sinhronizacija satova
Unutrašnja sinhronizacija satova
Korekcija stanja:Podešavanje sata realnog vremena u računaru na pravo vreme
• Vraćanje sata može da dovede do konfuzije u uređivanju poruka ili višestrukog izvršavanja nekih procedura.
• Postavljanjem sata na buduće vreme neke procedure • Postavljanjem sata na buduće vreme neke procedure mogu biti neizvršene.
Unutrašnja sinhronizacija satova
Korekcija frekvencije:Promena brzine kojom se zahteva prekid.
• Ako je prekid dolazio svakih 50 ms a sistemsko vreme kasni, sledeće prekide zahtevati na (primer na) 35 ms.
• Redefinianjem intervala brojača• Redefinianjem intervala brojača
Promenom nagiba sistemskog vremena
Vre
me
u rač
unar
u, C
Ofset
1d C
d t>
Korekcija sata koji žuri
Primena linearne
1d C
d t<
Referentno UTC vreme , t
Vre
me
u rač
Primena linearnekompenzacione funkcije
Eksterna sinhronizacija sata
GPS (1 ms), WWV radio prijemnik (3 ms)- cena, veli čina, okruženje
Eksterna sinhronizacija sata
Sinhronizacija od druge mašine koja ima ta čniji sat
Mašina koja obezbe đuje ovaj servis
Time server
RPC – Remote Procedure Call
Najjednostavnija tehnika sinhronizacije– Poslati RPC za dobijanje vremena– Podesiti vreme
client serverKoliko je sati ?
Ne uzima se u obzir kašnjenje kroz mrežu
client serverKoliko je sati ?
3:42:19
Cristian -ov algoritam
Kompenzacija kašnjenja– Gde su:
• Trenutak slanja zahteva: T0
• Trenutak prijema odgovora: T1
– Pretpostavka da su kašnjenja kroz mrežu simetričnasimetrična
server
clienttime
request reply
T0 T1
Tserver
Procenjeni overhed
Cristian -ov algoritam
server
clienttime
request reply
T0 T1
Tserver
=− 21 TT
Klijent podešava vrednost sat na:
Procenjeni overhedu oba smera
=−2
21 TT
221 TT
TT servernew
−+=
GreškeAko je poznato minimalno vreme prenosa poruka (Tmin):
server
clienttime
request reply
T Tclient
timeT0 T1Tmin Tmin
Najranijidolazak poruke
Najkasnijipočetak slanja
range = T 1-T0-2Tmin
Tačnost rezultata = min21
2T
TT −−±
Primer Cristian -ovog algoritm a:
• Slanje zahteva u: 5:08:15.100 (T0)• Odgovor primljen u: 5:08:15.900 (T1)
– Odgovor sadrži: 5:09:25.300 (Tserver)
• Elapsed time: T1 -T0• Elapsed time: T1 -T0
5:08:15.900 - 5:08:15.100 = 800 msec• Najbolji slučaj: timestamp generisan pre 400
msec• Postavljanje na: Tserver+ elapsed time
5:09:25.300 + 400 = 5:09.25.700
Cristian -ov algorithm: primer
If best-case message time=200 msec
server
clienttime
request reply
T T
Tserver
T0 = 5:08:15.100T1 = 5:08:15.900Ts = 5:09:25:300Tmin = 200msec
clienttimeT0 T1
200 200
800
Error = ±200
• Gusella & Zatti, 1989
• Pretpostavka da mašine nemaju tačan sat
Berkeley - algoritam
• Dobijanje srednje vrednosti od svih računara
• Sinhronizacija svih satova na srednju vrednost
• Mašine izvršavaju time dæmon– Proces koji implementira protokol
• Jedna mašina je proglašena serverom(master )
Berkeley - algoritam
(master )– Sve ostale su slaves tipa
• Master očitava svaku mašinu periodično– Šalje upit za vreme
• Može koristiti Cristian-ov algoritam za kompenzaciju kašnjenja kroz mrežu
• Kada se sakupe svi rezultati, izračunava se srednja vrednost– Uključujući i vreme master-a
Berkeley - algoritam
– Uključujući i vreme master-a• Pretpostavka: usrednjavanje poništava tendenciju satova
da žure ili kasne• Šalje odgovarajuće ofsete svakom slejvu na osnovu
kojih svaki slejv vrši korekciju svog vremena• Izbegavaju se problemi kašnjenja koji nastaju ako se
šalje korigovana vrednost vremena
Berkeley - algoritam
Algoritam obezbeđuje ignorisanje sata sa prevelikim ofsetom
– Izračunavanje fault-tolerant average
Ako master otkaže– Bilo koji slejv preuzima njegovu ulogu
Berkeley algoritam: primer
3:25 2:50 9:10
3:00
2:50
3:25 2:50 9:10
1. Zahtev za vremenom od svih u česnika
3:25 2:50 9:10
3:00
2:50
Berkeley algoritam: primer
3:25 2:50 9:10
2. Izračunavanje fault-tolerant average :
05:33
00:350:225:3 =++
3:25 2:50 9:10
3:00
+0:15
+0.15
Berkeley algoritam: primer
3:25 2:50 9:10
3. Slanje ofseta svakom klijentu
Network Time Protocol, NTP
1991, 1992Internet Standard, version 3: RFC 1305
Ciljevi NTP
• Omogućava internet klijentima tačnu sinhronizaciju na UTC uprikos kašnnjenju poruka– Primena statističkih tehnika za filtriranje podataka i merenje
kvaliteta rezultata
• Omogućava pouzdan servis– Preživljavanje pri gubitku veze– Redundantni putevi– Redundantni serveri
• Omogućava čestu sinhronizaciju klijenata– Ofset utiče na drift sata
• Zaštita od interference– Authentikacija izvora podataka
NTP serveri
Aranžirani u stratum-ima– 1. stratum: mašine koje
su direktno vezane za izvore tačnog vremena
– 2. stratum: mašine koje
1
2
3
se sinhronišu sa 1. stratumom
– …
SiNCHRONIZACIONI SUBNET
4
Načini NTP sinhronizacije
Multicast– Za vrlo brze mreže– Manja tačnost ali velika efikasnost
Procedure call– Slično Cristianovom algoritmu– Slično Cristianovom algoritmu
Symmetric– Namenjeno master serverima– Par servera razmenjuje poruke i podatke da
poboljšaju sinhronizaciju u toku vremena
Sve poruke se šalju nepouzdano preko UDP protokola
SNTP
Simple Network Time Protocol– Bazirano na Unicast mode of NTP-a– Subset NTP-a, nije novi protokol– Radi u multicast ili procedure call načinu
RFC 2030, October 1996
SNTP
server
clienttime
request reply
T1
T2
T4
T3
Roundtrip delay:
d = (T4-T1) - (T2-T3)
Time offset:
SNTP example
server
clienttime
request reply
T1=1100
T2=800
T4=1200
T3=850
Offset =
Time offset:
Offset =
((800 - 1100) + (850 - 1200))/2=((-300) + (-350))/2= -650/2 = -325
Set time to T4 + t= 1200 - 325 = 875
Cristian’s algorithm
server
clienttime
request reply
T1=1100
T2=800
T4=1200
T3=850
Ts=825
Offset = (1200 - 1100)/2 = 50
Set time to Ts + offset= 825 + 50 = 875
Format vremena Network Tme Protocol (NTP) – Internet
Cele skunde UTC -4 bajta Binarni delovi sekunde-4 bajta
Opseg vremena sve do 2036, t.j, 136 godina ciklus k ruženja
Logi čki satovi
Dodela sekvence brojeva porukama– Svi kooperativni procesi mogu se složiti oko
redosleda dogoađaja– Nasutprot fizičkim satovima : dnevno vreme
Pretpostavka da ne postoji centralizovani taktni signalPretpostavka da ne postoji centralizovani taktni signal– Svaki čvor održava svoj lokalni sat– Nema totalnog uređenja događaja
• Nije implementiran koncept “happened-when”
Koncept “ Happened -before ”
Lamport-ova “happened-before” notacija
a →→→→ b događaj a desio se pre događaja bt.j: a: poruka je poslata, b: poruka je primljena
Transitivnost:if a →→→→ b and b →→→→ c then a →→→→ c
Logi čki satovi i konkurentnost
Dodela vrednosti “sata” svakom događaju– if a→→→→b then clock( a) < clock( b)– Vreme ne teče unazad
Ako a i b pripadaju različitim procesima koji ne razmenjuju poruke, tada ne važe a → b ib → a
– Ovi događaji su konkurentni
Primer brojanja doga đaja
• Tri sistema: P0, P1, P2
• Događaji a, b, c, …
• Lokalni brojači događaja na svakom • Lokalni brojači događaja na svakom sistemu
• Sistemi povremeno komuniciraju
a b
h i
k
P1
P2
P3
1 2
1 3
21
d f
g3
c
2
4 6
e5
j
Primer brojanja doga đaja
a b
h i
k
P1
P2
P3
1 2
1 3
21
d f
g3
c
2
4 6
e5
j
Primer brojanja doga đaja
Loše ure đeno:
e ���� h
f ���� k
Lamport -ov algoritam• Svaka poruka nosi vremenski marker (timestamp) sata
pošiljaoca poruke
• Kada poruka stigne:– Ako je sat prijemnika < timestamp poruke
sat prijemnika = (timestamp poruke + 1 )– U suprotnom ne korigovati– U suprotnom ne korigovati
• Sat mora biti uvećan izmađu svaka dva događaja u istom procesu
• Algoritam obezbeđuje vremensko uređenje međusobno povezanih događaja– Parcijalno ure đenje
Primer brojanja doga đaja
a b
i
kj
P1
P2
P3
1 2
1 7
21
d f
g3
c
2
4 6
6
7
h
e5
7
Sažetak
• Algoritam zahteva monotono rastući softverski brojač
• Koji se inkrementira barem kada neki događaj treba da dobije vremenski marker
• Svakom događaju se pridružuje Lamport -ov timestamp• Svakom događaju se pridružuje Lamport -ov timestamp
• Za svaka dva događaja, gde a → b:L(a) < L(b)
Problem: Identi čni vremenski markeri
a b
h i
kj
P1
P2
P3
1 2
1 7
71
d f
g3
c
6
4 6
e5
a→→→→b, b→→→→c, …: sekvenca lokalnih doga đaja
Konkurentni doga đaji mogu imati istitimestamp … ili ne
Jedinstveni vremenski markeri timestamp s - totalno ure đenje
Uvođenje jedinstvenog timestamp– Definišimo globalni logički timestamp (Ti, i)
• Ti predstavlja lokalni Lamportov timestamp• i predstavlja broj procesa (globalno jedinstveni)
– Na pr. (“host address”, “process ID”)– Upoređivanje markera:– Upoređivanje markera:
(Ti, i) < (Tj, j)Ako i samo ako (iff) je
Ti < Tj iliTi = Tj i i < j
Ne odnosi se na ure đenje doga đaja
a b
i
kj
P1
P2
P3
1.1 2.1
1.2 7.2
7.31.3
d f
g3.1
c
6.2
4.1 6.1h
e5.1
Jedinstveni markeri
Problem: Dete kcija kauzalnih relacija
Ako je L(e) < L(e’)– Ne može se zaključiti da je e→e’
Razmatranjem Lamportovih markeraRazmatranjem Lamportovih markera– Ne može se zaključiti koji su događaji
kauzalno povezani
Rešenje: primena vektorskih satova
Vektorski satovi
Pravilo:1. Inicijalizacija Vektora na 0 u svakom procesu
Vi [j ] = 0 for i, j = 1, …, N2. Proces inkremenira sopstveni element lokanog
vektora pre markiranje svakog događaja:Vi [i ] = Vi [ i ] +1
3. Slanje poruke Pi zajedno sa markerom Vi
4. Kada proces Pj primi poruku, upoređuje elemente vektora elemenat po elemenat i postavlja lokalni vektor na veću od dve vrednosti
Vj [i ] = max(Vi [i ], Vj [i ]) za i = 1, …, N
Upoređenje vektorskih markera
Definišimo (iff == “ako i samo ako”)
V = V’ iff V [i ] = V’[i ] for i = 1 … NV ≤ V’ iff V [i ] ≤ V’[i ] for i = 1 … N
Za bilo koja dva događaja e, e’ako e →→→→ e’ tada V(e) < V(e’)ako e →→→→ e’ tada V(e) < V(e’)• Kao u Lamportovom algoritmu
ako V(e) < V(e’) tada e →→→→ e’
Dva događaja su konkurentna ako ne važe:V(e) ≤ V(e’) ili V(e’) ≤ V(e)
Vektorski satovi
a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(1,0,0)
Vektorski satovi
Event timestampa (1,0,0)
a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(1,0,0) (2,0,0)
Vektorski markeri
Event timestampa (1,0,0)b (2,0,0)
a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(1,0,0) (2,0,0)
(2,1,0)
Vektorski satovi
Event timestampa (1,0,0)b (2,0,0)c (2,1,0)
a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(1,0,0) (2,0,0)
(2,1,0) (2,2,0)
Vektorski satovi
Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)
a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(1,0,0) (2,0,0)
(2,1,0) (2,2,0)
(0,0,1)
Vektorski satovi
Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)
a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(1,0,0) (2,0,0)
(2,1,0) (2,2,0)
(0,0,1) (2,2,2)
Vektorski satovi
Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)
(0,0,1)
(1,0,0)a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(2,0,0)
(2,1,0) (2,2,0)
(2,2,2)
Vektorski satovi
Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)
concurrentevents
(0,0,1)
(1,0,0)a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(2,0,0)
(2,1,0) (2,2,0)
(2,2,2)
Vektorski satovi
Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)
concurrentevents
(0,0,1)
(1,0,0)a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(2,0,0)
(2,1,0) (2,2,0)
(2,2,2)
Vektorski satovi
Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)
concurrentevents
(0,0,1)
(1,0,0)a b
c d
fe
(0,0,0)P1
P2
P3
(0,0,0)
(0,0,0)
(2,0,0)
(2,1,0) (2,2,0)
(2,2,2)
Vektorski satovi
Event timestampa (1,0,0)b (2,0,0)c (2,1,0)d (2,2,0)e (0,0,1)f (2,2,2)
concurrentevents
Rezime: Logi čki satovi & Parcijalnouređenje
• Kauzalnost– Ako a->b tada događaj a može uticati na
događaj b• Konkurentnost
– Ako ne važe a->b ni b->a tada događaji ne – Ako ne važe a->b ni b->a tada događaji ne utiču jedan na drugi
• Parcijalno uređenje– Sekvenciranje kauzalnih događaja
• Totalno uređenje– Sekvenciranje svih događaja