La synchronisation d`horloge - Université de Reims Champagne
Transcription
La synchronisation d`horloge - Université de Reims Champagne
Université de Reims Champagne-Ardenne La synchronisation d'horloge F. Nolot DESS RSI 20042005 1 Université de Reims Champagne-Ardenne La synchronisation d'horloge Les types de synchronisation F. Nolot DESS RSI 20042005 2 Université de Reims Champagne-Ardenne Les types de synchronisation Synchronisation des horloges physiques But : mettre tous les ordinateurs à la même heure. Rapport avec le temps physique (ou universel) Synchronisation des horloges de phases But : s'assurer que des ordinateurs fonctionnant à la même vitesse maintienne une horloge digitale à la même valeur Aucun rapport avec le temps physique Exemple : Tous les ordinateurs doivent exécuter une action à 15h14, nécessité d'avoir des ordinateurs à la même heure Tous les ordinateurs doivent exécuter l'action 3 avant l'action 4, aucun rapport avec le temps physique mais nécessité d'avoir un ordre sur les actions F. Nolot DESS RSI 20042005 3 Université de Reims Champagne-Ardenne La synchronisation d'horloge Synchronisation de phase F. Nolot DESS RSI 20042005 4 Université de Reims Champagne-Ardenne Spécifications Débute avec Misra en 91 : synchronisation globale (non auto-stab) sur système synchrone. Pour tout i tel que i>=0 aucun processus ne commence à exécuter la phase i+1 tant que tous les processus n'ont pas terminés la phase i (initialement, tous les processus ont terminés la phase 0). quand tous les processus ont terminé la phase i, chaque processus finira par exécuter la phase i+1. Sur les systèmes asynchrones, synchro. de voisinage, dit aussi unisson asynchrone définie en 92 par Couvreur, Francez et Gouda Soient deux processeurs voisins u et v. Alors u et v doivent vérifier la condition suivante : C_u=C_v ou C_u=C_v+1 ou C_u+1=C_v. Pour les horloges bornées par une valeur K, toutes les opérations sont effectuées modulo K F. Nolot DESS RSI 20042005 5 Université de Reims Champagne-Ardenne Suivre son maître Horloge infinie, modèle à états, système synchrone Utilisation d'une distance entre la racine et les processus Racine : d=0; C=C+1 Les autres : S'il existe un voisin v tel que pour tout voisin w, d(w) ≥d(v) alors d(u):=d(v)+1 et C(u)=C(v)+1 Problème en cas de défaillance ? F. Nolot DESS RSI 20042005 6 Université de Reims Champagne-Ardenne Suivre la valeur minimale Idée de Gouda et Herman en 90 : propager la valeur minimale du réseau C(u)=Min( C(u),Min(C(v), v voisin de u) )+1 Si les valeurs d'horloges sont finies ? F. Nolot DESS RSI 20042005 7 Université de Reims Champagne-Ardenne Calcul modulo K Arora, Dolev et Gouda en 91 C(u)=Min( C(u),Min(C(v), v voisin de u) )+1 mod K Est-ce que cela marche pour toute valeur de K ? Idée de la preuve ? F. Nolot DESS RSI 20042005 8 Université de Reims Champagne-Ardenne Sur les systèmes asynchrones Sur arbres enracinés : Alima, Beauquier, Datta et Tixeuil en 98 4K états pour propager la valeur d'horloge de la racine F. Nolot DESS RSI 20042005 9 Université de Reims Champagne-Ardenne F. Nolot DESS RSI 20042005 10 Université de Reims Champagne-Ardenne Sur les systèmes asynchrones Puis en 99 avec l'algorithme de Bui, Datta, Petit et Villain 3K états pour propager la valeur d'horloge de la racine F. Nolot DESS RSI 20042005 11 Université de Reims Champagne-Ardenne F. Nolot DESS RSI 20042005 12 Université de Reims Champagne-Ardenne La synchronisation d'horloge Horloge physique F. Nolot DESS RSI 20042005 13 Université de Reims Champagne-Ardenne Synchronisation des horloges Objectif : obtenir la même heure sur toutes les horloges des ordinateurs d'un réseau 2 types de synchronisation Synchronisation externe : utilisation d'une source externe comme référence, estimer avec précision l'heure de cette source Synchronisation interne F. Nolot DESS RSI 20042005 14 Université de Reims Champagne-Ardenne Les paramètres Vitesse des horloges (connue ou bornée) Acheminement des messages : délai incertain Fiabilité des liens et des processeurs Type de communication : diffusion ou point à point F. Nolot DESS RSI 20042005 15 Université de Reims Champagne-Ardenne Le Modèle Une horloge local assigne une heure local à chaque événement Vitesse de l'horloge est bornée Quand la vitesse est « égale » au temps réel, elles sont dites à « dérive libre » Le délai d'acheminement des messages est borné F. Nolot DESS RSI 20042005 16 Université de Reims Champagne-Ardenne Approximation de la dérive libre Objectif : borner le décalage relatif des horloges locales δ(v,u) = LTv (p)-LTu (p) = const ant e Avec un seul m essage : si le délai est dans [ L,H] alors Délai virt uel : différence ent re les horloges locales VD(q,p)= LTv (q)-LTu (p) D'où δ (v,u) ∈[ VD(q,p)-H , VD(q,p)-L] LTu(p) LTv(p) LTv(q) F. Nolot DESS RSI 20042005 17 Université de Reims Champagne-Ardenne Problème δ (v,u) ∈[ VD(q,p)-H , VD(q,p)-L] Que se passe-t-il si H = ∞ ? ou si le délai d'achem inem ent n'a pas de borne sup ? Observat ion : δ (v,u) = - δ (u,v) donc δ (v,u) ∈[ a,b] ⇔ δ (u,v) ∈[ -b,-a] Solut ion : ut iliser un deuxièm e m essage : de v vers u u Calcul de l'intervalle pour m2 et intersection avec l'intervalle reçu F. Nolot v m1 m2 Calcul de l'intervalle pour m1 et envoie à u DESS RSI 20042005 18 Université de Reims Champagne-Ardenne Technique du « round trip » Technique de base utilisée par la plupart des algorithmes de synchronisation Calcule du temps total d'acheminement du message Suppose que l'allée prend autant de temps que le retour Produit une estimation Exemple : protocole NTP t(i-3) t(i-2) t(i) t(i-1) delay = [t(i) - t(i-3)] - [t(i-1) – t(i-2)] décalage = [(t(i-2) - t(i-3)) + (t(i-1) – t(i))]/2 F. Nolot DESS RSI 20042005 19 Université de Reims Champagne-Ardenne Problème Sur plusieurs liens, on ajoute les dérives Soient u, v et w 3 noeuds du graphe δ(u,w) = δ(u,v) + δ(v,w) donc si δ (u,v) ∈[ a,b] et δ (v,w) ∈[ c,d] alors δ (u,w ) ∈[ a+ c,b+ d] F. Nolot DESS RSI 20042005 20 Université de Reims Champagne-Ardenne Algorithme de Bellman-Ford Problème des plus courts chemins à origine unique avec poids pouvant être négatif Graphe orienté pondéré G=(S,A), fonction de pondération w, origine s, d[v] poids du chemin depuis s vers v L'algo retourne un boolean s'il existe ou pas un circuit de longueur <0 accessible depuis s. S'il en existe pas, l'algo donne les plus court chemins ainsi que leur poids. F. Nolot DESS RSI 20042005 21 Université de Reims Champagne-Ardenne Algo. de Bellman-Ford (2) relacher(u,v,w) { si d[v] > d[u]+w(u,v) alors d[v] ← d[u]+w(u,v); π[v] ← u } init(G,s) { pour chaque sommet v ∈ S[G] faire d[v] ← ∞; π[v] ← NIL d[s] ← 0 } Bellman-Ford(G,w,s) { init(G,s) pour i de 1 à |S[G]| faire pour chaque arc(u,v) faire relacher(u,v,w) pour chaque arc(u,v) ∈ A[G] faire si d[v] > d[u]+w(u,v) alors retourner Faux retourner Vrai } F. Nolot DESS RSI 20042005 22 Université de Reims Champagne-Ardenne Application à la synchronisation Chaque message de u vers v contient < LTu, π u(v,u), π u(u,v), du(s,u), du(u,s) > quand v reçoit un message avec un délai dans [L,H] VD = LTv - LTu π v(u,v) = Min { H-VD, π u(u,v), π v(u,v) } π v(v,u) = Min { VD-L, π u(v,u), π v(v,u) } dv(v,s) = Min { du(u,s)+ π u(v,u), dv(v,s) } dv(s,v) = Min { du(s,u)+ π u(u,v), dv(s,v) } Time = current + [dv(v,s)-dv(s,v)]/2 Error = [dv(v,s)+dv(s,v)]/2 F. Nolot DESS RSI 20042005 23