Download presentation
Presentation is loading. Please wait.
Published byClemens Holtzer Modified over 6 years ago
1
Agenti flexibili pentru executia protocoalelor medicale in OAA
Universitatea Tehnică Cluj-Napoca Timp si coordonare Tehnici avansate de retele de calculatoare Feier Cristina
2
Agenti flexibili pentru executia protocoalelor medicale in OAA
Concepte si algoritmi de cronometrare si coordonare a evenimentelor in sisteme distribuite Sincronizarea ceasurilor fizice ale diferitelor calculatoare Algoritmi de sincronizare: Cristian, Berkeley, NTP Determinarea ordinii in care apar evenimentele Introducerea unei relatii de ordine partiale peste evenimente: happened-before Ceasuri logice- numaratoare ce sunt modificate pentru a reflecta relatia happened-before Nevoia proceselor de a accesa resurse partajate in conditii de excludere mutuala Algoritmul serverului central, un algoritm ce foloseste ceasuri logice si un algoritm bazat pe inel Algoritmi pentru alegerea unui proces unic dintr-un set dat chiar daca multiple alegeri au loc concurent: Algoritmul bully si un algoritm bazat pe inel
3
Sincronizarea ceasurilor fizice
Ceasul fizic atasat unui calculator - disp. electronic ; valorile indicate sunt folosite pentru marcarea temporala a oricarui eveniment aparut in cadrul unui proces ce se executa la hostul respectiv Rezolutia ceasului- mai mica decat rata la care apar evenimentele( depinde de lungimea ciclului instructiune a procesorului). Problema compararii marcajelor generate de ceasuri similare d.p.d.v. al constructiei nu este suficienta cunoasterea deplasamentului datorat momentelor de initializare diferite in practica, ceasurile nu ticaie cu exact aceeasi frecventa: diferente infime, care prin acumulare devin de neneglijat deviatia ratei ceasului - schimbarea deplasamentului intre ceas si un ceas de referinta intr-o unitate de timp masurata de ceasul oficial. ceasurile cu cristal de cuart, deviatie de 10-6 s, adica 1s la 11.6 zile
4
Timpul universal coordonat(UTC)
Cele mai exacte ceasuri- oscilatoare atomice(acuratete, 1 la 1013) => standard pentru timpul real, Timpul Atomic International UTC- standard international bazat pe timpul atomic , dar care prin inserarea sau stergerea ocazionala a unei secunde tine pasul cu timpul astronomic. Semnale UTC- difuzate periodic prin statii radio, sateliti(GOES, GPS). Acuratetea unui semnal receptionat – functie de acuratetea sursei si distanta de la sursa ( GOES - 0.1ms, GPS - 1ms). Compensarea deviatiei ceasului timpul receptionat de la serviciu > timpul propriu => se sare la timpul respectiv ; altfel : timpul nu poate fi dat inapoi ( aplicatii care ar fi induse in eroare, ex. make ) => ceasul “va merge mai incet”, rata la care semnalele de ceas sunt transmise aplicatiilor este mai mica; la nivel hardware, rata ramane neschimbata.
5
Metoda lui Cristian pentru sincronizarea ceasurilor
Un server de timp S – furnizeaza la cerere timpul indicat de ceasul propriu ( se sincronizeaza cu un receptor UTC). Un client P - primeste de la server valoarea t,, timpul de transmisie de la S la P fiind Ttrans va seta timpul la t+Ttrans Ttrans- necunoscut(min+x) estimare pentru timpul lui P: t+Tround/2, unde Tround este timpul total scurs de la trimiterea lui mr la receptionarea lui mt ; daca timpul minim de transmitere a unui mesaj intre P si S este estimat la min se arata ca acuratetea estimarii anterioare este ±(Tround/2 - min). estimarea cea mai buna se face prin preluarea valorii minime pentru Tround din valorile obtinute in urma mai multor cereri la S.
6
Algoritmi de sincronizare – Cristian, Berkeley
Probleme pentru algoritmul lui Cristian: servere ce furnizeaza informatii gresite fie intentionat sau neintentionat(Berkeley) tehnici de autentificare, respectiv alg. Berkeley esecul serverului un grup de servere de timp sincronizate fiecare cu un receptor UTC. un client face o cerere multicast la toate serverele, folosind doar primul raspuns. Algoritmul Berkeley- Gusella si Zatti(1989) calculator coordonator - master master-ul sondeaza periodic valorile ceasurilor slave-urilor. estimeaza valorile locale ale ceasurilor pe baza timpului round-trip, si calculeaza o medie a valorilor obtinute (inclusiv valoarea proprie).
7
Algoritmi de sincronizare – Berkeley, NTP
valoare maxima fixata pentru timpul round-trip -influenteaza acuratetea. fiecarui slave i se trimite cantitatea cu care trebuie sa isi modifice ceasul propriu se elimina citirile de la ceasuri care au deviatia mare - medie toleranta la erori, alegerea unui subgrup de ceasuri esecul masterului – proces de alegere NTP-Network Time Protocol Scopuri: sa permita sincronizarea cu acuratete la UTC a clientilor de Internet sa nu esueze in caz de intreruperi lungi ale conectivitatii clientii(nr. mare) sa se poata resincroniza suficient de frecvent sa ofere protectie impotriva interferentelor cu serviciul de timp, fie accidentale sau malitioase
8
Algoritmi de sincronizare-NTP
retea de servere cu acces la Internet servere primare- conectate la un receptor UTC servere secundare- sincronizate relativ la primele ierarhie logica numita subretea de sincronizare(mai multe straturi) reconfigurabila in cazul unui esec serverele aflate pe un strat cu nr. mai mare- acuratete mai mica Trei moduri de sincronizare a serverelor NTP:(UDP) multicast :- folosit in LAN de mare viteza, acuratete redusa, suficienta in majoritatea cazurilor apel de procedura - similar cu algoritmul lui Cristian, folosit cand hardware-ul nu suporta multicast sau se vrea o acuratete mai buna simetric- doar pentru servere ce furnizeaza timpul in LAN-uri si la nivelele mai inalte ale subretelei de sincronizare- o pereche de servere ce schimba mesaje
9
Algoritmi de sincronizare-NTP
Sincronizarea procedure-call, simetrica se realizeaza prin perechi de mesaje, pentru fiecare pereche definindu-se: oi - estimare a deplasamentului intre cele doua ceasuri di - timpul total de transmisie pentru cele doua mesaje algoritm de filtrare a datelor pentru perechi succesive (oi,di) (cele mai recente 8) => o estimare a deplasamentului o , calitatea estimarii fiind data de dispersia de filtrare. un server schimba mesaje cu mai multe alte servere; utilizeaza un algoritm de selectie a perechii - favorizate serverele cu nr. de strat mai mic si dispersie de sincronizare mai joasa dispersia de sincronizare - suma intre dispersiile de filtrare masurate intre server si radacina subretelei de sincronizare
10
Timp logic si ceasuri logice
Problema ordonarii evenimentelor intr-un sistem distribuit nu se poate face pe baza timpului fizic Lamport - introducerea unei relatii de ordine “happened-before”, cunoscuta si ca ordonare cauzala, sau ordonare potential-cauzala prin notatia x->p y, se intelege ca x a aparut inainte de y, unde x,y – evenimente ale procesului p Axiome ce definesc relatia happened-before(->): HB1: daca x->p y, atunci x->y; HB2: pentru orice mesaj m, send(m)->rcv(m); HB3: daca x,y,z evenimente si x->y, y->z => x->z Exista evenimente ce nu pot fi ordonate prin aceasta relatie: Evenimente concurente: a||e.
11
Timp logic si ceasuri logice
Ceas logic -capturarea numerica a relatiei happened-before; -numarator software crescator monoton, independent de ceasul fizic -fiecare proces – propriul ceas logic Cp, Cp(a) fiind marcajul temporal al unui eveniment a al procesului p; prin C(b) se intelege marcajul temporal al lui b Reguli de modificare si transmitere a ceasurilor logice de catre procese LC1: inainte de fiecare eveniment al procesului p: Cp = Cp +1 LC2: la transmiterea unui mesaj m, se ataseaza valoarea t= Cp LC3: la primirea unei perechi (m,t), un proces q calculeaza: Cq =max(Cq,t) si aplica LC1 inainte de marcarea evenimentului rcv(m)
12
Timp logic si ceasuri logice
Daca a->b => C(a)<C(b). Invers nu e valabil (ex. C(b)>C(e), dar b||e) Ceasuri logice total-ordonate: ceasuri logice - ordonare partiala extinderea la ordonare totala - prin luarea in considerare a identificatorului procesului marcajul global al unui ev. a ce apare in executia procesului pa cu marcajul temporal logic Ta este definit ca (Ta ,pa). (Ta,pa)<(Tb,pb) Ta<Tb sau ( Ta=Tb si pa<pb ).
13
Coordonare distribuita
Problema “sectiunii critice”, accesul la resurse partajate, in cazul distribuit: servere ce nu au incorporate mecanisme de sincronizare a accesului clientilor la resursele pe care le administreaza servere fereastra in care mai multi clienti tiparesc iesirea => necesitatea unor mecanisme de sincronizare auxiliare: Excluderea mutuala distribuita Cerinte: ME1(siguranta) - cel mult un proces in CS la un moment dat ME2(liveness) - un proces care a solicitat intrarea in cele din urma o va obtine; nu vor exista blocaje ME3(ordonare)- intrarea in CS trebuie sa fie acordata in ordinea “happened-before”. -un proces poate efectua alte operatii cat timp asteapta dreptul de a intra in CS.
14
Algoritmul serverului central
-un server care se ocupa de managementul unei regiuni critice -conceptul de token – acesta este detinut de procesul care se afla in CS sau de catre server in cazul in care un astfel de proces nu exista -2 mesaje- necesare pentru intrarea si iesirea din regiunea critica -serverul – punct critic, susceptibil de esec; crearea unui nou server prin initiarea unui proces de alegere; noul server va trebui sa obtina starea tuturor clientilor, ordonarea cererilor de intrare va fi diferita -ce se intampla in cazul esecului unui client aflat in CS?
15
Un algoritm distribuit folosind ceasuri logice
Principiu: colaborare distribuita Asumptii: procesele p1,..,pn isi cunosc adresele doua cate doua, toate mesajele sunt in cele din urma livrate, fiecarui pi ii corespunde un ceas logic Procesul care doreste intrarea- trimite un mesaj de cerere multicast de forma <T,pi> si poate intra cand celelalte procese i-au raspuns la acest mesaj Apare si aici conceptul de token Starea unui proces:RELEASED, WANTED, HELD On initialization: state=RELEASED; To obtain the token: state=WANTED; Multicast request to all processes; T=request’s timestamp; Wait until(number of replies=(n-1)); State=HELD; On receipt of a request <Ti,pi> la pj(i=j): if (state=HELD or (state=WANTED and (T, pj)<(Ti, pi))) then queue request from pi without replying else reply immediately to pi; endif To release token: State=RELEASED reply to any queued requests;
16
Algoritmi distribuiti
Algoritmul cu ceasuri logice(continuare): obtinerea token-ului: 2(n-1) mesaje; n-1 pentru a difuza cererea si n-1 raspunsuri sau (1, n-1) , in cazul in care exista suport hardware pentru multicast esecul oricarui proces- blocaj fiecare din procesele implicate primesc si proceseaza fiecare cerere Un algoritm bazat pe inel procesele - inel logic, fiecare stie adresa vecinului sau din avale. obtinerea tokenului sub forma unui mesaj care este transmis de la un proces la altul in sensul acelor de ceasornic un proces ce nu vrea sa intre in CS inainteaza tokenul la procesul urmator ordinea de intrare nu este neaparat happened-before. problema esecului unui proces; daca e chiar procesul care detine tokenul - initiarea alegerii unui proces care va regenera token-ul
17
Concluzii despre algoritmii de excludere mutuala distribuita
nu fac fata in cazul esecului unui proces sau a unei masini algoritmul serverului central necesita cel mai mic numar de mesaje dar poate duce la un blocaj de comunicatie se recomanda ca serverul care administreaza o resursa sa furnizeze si excluderea mutuala intre clientii ce acceseaza resursa.
18
Alegeri Algoritmul “bataus”(bully)
Fiecare membru stie identificatorii si adresele celorlalti membri Se alege dintre membrii supravietuitori pe cel cu cel mai mare identificator pe post de coordonator Mesaje ‘alegere’, mesaje ‘coordonator’ si mesaje ‘ales’ Initiere: un proces trimite cate un mesaj ‘alegere’ la procesele cu identificator mai mare ca al sau, asteptand un mesaj raspuns; daca raspunsul nu apare intr-un interval de timp trimite mesaje coordonator la toate procesele cu identificator mai mic un proces ce primeste un mesaj de alegere trimite inapoi un mesaj raspuns si incepe o noua alegere; daca are cel mai mare identificator decide ca este coordonatorul restartare proces esuat -initializare proces de alegere; daca are cel mai mare id devine coordonator chiar daca mai exista alt coordonator Cazul optim: procesul cu al doilea id anunta esecul coordnatorului, se realege=> n-2 mesaje coordonator Cazul cel mai rau=> O(n2) mesaje
19
Un algoritm de alegere bazat pe inel
procese functionale si accesibile pe tot parcursul operatiei procese aranjate intr-un inel logic alegerea unui singur coordonator - procesul cu cel mai mare id initial- procese neparticipante procesul initiator-> participant -> trimite un mesaj de alegere in care si-a plasat propriul id; proces ce recepteaza mesaj de alegere-> daca are id-ul mai mic decat cel din mesaj trimite pachetul mai departe; daca id-ul primit e mai mic decat al sau si nu este participant substituie id-ul respectiv cu id-ul propriu si trimite mai departe; daca e participant nu trimite mesajul mai departe orice proces ce inainteaza un mesaj devine participant daca id-ul primit= id-ul propriu->coordonator->neparticipant -> trimite mesaj ales la vecinul sau proces ce primeste mesaj ales -> neparticipant-> inainteaza mesajul cel mai rau caz: 3n-1 mesaje
20
Intrebari….
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.