3-globalno vreme i sinhronizacija taktaes.elfak.ni.ac.rs/rts/materijal/nastava_2012/pdf_ppt/3... ·...

Post on 09-Jul-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related