Chap Syn Hor
Chap Syn Hor
Chap Syn Hor
MIRA-BEJAIA
FACULTE DES SCIENCES EXACTES
DEPARTEMENT INFORMATIQUE
SUPPORT DE COURS
SYSTEMES DISTRIBUES
SYNCHRONISATION D’HORLOGE
I- INTRODUCTION
Les applications distribuées ont les propriétés suivantes:
• les processus prennent des décisions sur la base des informations locales
1. Algorithmes distribués
Un algorithme distribué est un ensemble de processus qui réalisent un but commun par communi-
cations de messages.
Caractéristiques:
• Etat global ou local: connaissance des variables locales et avoir une copie des variables glob-
ales.
• Le calcul diffusant: le principe est un processus racine qui émet des messages vers ses suc-
cesseurs, chaque processus qui reçoit un message le transmet à ses successeurs et attend des
réponses qu’il transmet au père. Un processus feuille retourne immédiatement une réponse
et le processus racine ayant reçu toutes les réponses termine le calcul. C’est un algorithme
utilisé pour contrôler la terminaison d’un traitement ou des situations d’interblocage.
1
• Le jeton circulant: faire circuler un privilège dans un anneau (logique) de processus. L’algorithme
est utilisé en exclusion mutuelle et terminaison.
• Estampillage: pour avoir un ordre total, chaque processus Pi gère une horloge logique hi et
estampille ses messages <m, hi, i>. A la réception de ce message par Pj celui-ci met à jour son
horloge: hj=max(hi, hj)+1 (à chaque événement un processus met à jour son horloge local
h=h+1). On peut établir un ordre de précédence entre les processus grâce à ces estampilles
(si hi=hj alors l’ordre est donné par i<j)
2. Horloge physique
Utile pour les systèmes temps réel, bancaires, spatiale, etc.
Pour mesurer le temps:
- jour solaire = intervalle entre deux transits solaires (soleil au plus haut)
- en général on mesure le jour solaire dans plusieurs endroits de la terre et on calcule la moyenne.
- le problème est que le jour solaire s’allonge et le nombre de jours dans l’année se réduit.
(Temps absolu de rotation de la terre est fixe)
2- la seconde atomique= intervalle de temps que prend l’atome de Césium 133 pour faire ex-
actement 9192631770 transitions.
- solution: a chaque retard de 800ms, on ajoute une seconde (sautée) au TAI⇒ temps universel
coordonné (TUC)
3- des radios spécialisés WWV donnent l’heure (TUC) avec une précision de 1ms.
- des satellites (comme GEOS) donnent le TUC avec une précision de 0.5ms
- un système informatique doit pouvoir à chaque instant synchroniser son horloge sur le TUC
(avec un récepteur WWV ou une liaison par satellite)
3. Horloge logique
Chaque ordinateur dispose d’un temporisateur: c’est un circuit composé d’un cristal de quartz
oscillant plus un registre de sauvegarde initialisé à une valeur fixe et un compteur. Le compteur
décompte de la valeur initiale et une interruption est générée à chaque valeur zéro du compteur.
Cette interruption est l’impulsion de l’horloge (clock tick). Dans le cas distribué il est impossible de
garantir que le quartz des différentes machines vibre à la même fréquence ⇒ une dérive de l’horloge.
Lamport (1978) a proposé un algorithme de synchronisation d’horloge basé sur l’ordre des
événements:
2
Remarque
Horloge logique: la cohérence entre les horloges existe mais pas par rapport au temps réel.
Horloge physique: il doit y avoir une cohérence avec l’heure et la date réelle.
2. La relation de précédence
(notée: →) A précède B s’écrit A→B. Les événements d’un seul processus sont totalement ordonnés.
Un message n’est reçu qu’aprés avoir été envoyé (loi de causalité). La relation de précédence est
définie par:
ii) si A est l’événement (envoyer message m) et B l’événement (recevoir message m) alors: A→B
La relation de précédence est non réflexive, non commutative et transitive. C’est une relation
d’ordre partiel. Si (A, B) ne sont pas liés par la relation de précédence alors A et B sont dits
concurrents.
3. Ordre partiel
Soit l’exemple suivant:
Site1 Site2
A1
B1
A2
B2 temps
A3
B3
A4
B4
A5
3
• Loi de causalité:
A2 → B2
B3 → A4
• Par transitivité:
A1→A2→B2→B3→B4.
B1→B2→B3→A4→A5.
A1→A2→B2→B3→A4→A5.
4. Ordre global
L’ordre partiel des evenements induit des incoherences sur un système distribué.
Exemple : soit un parking et trois gardiens éloignés. Etat initial: 100 places vides. Les trois
gardiens (G1, G2, G3) diffusent les messages suivants: M1 <20 places libérés>, M2 <10 places
occupés>, M3 <10% des places réservés pour le nettoyage>. Résultat on peut avoir plusieurs
situations:
Ordre Initialement Sequence Total
G1 100 M1, M3, M2 98
G2 100 M2, M1, M3 99
G3 100 M3, M1, M2 100
Pour un problème d’allocation de ressources: dans un cas centralisé les requêtes et avis de
libération sont ordonnés. Dans un cas réparti soit les messages arrivent un à la fois et l’ordre est
strict, soit plusieurs messages (requêtes ou libérations) arrivent en même temps et la machine les
range dans une file d’attente pour les traiter en exclusion mutuelle. On doit les ranger dans l’ordre
de leur émission donc le système doit pouvoir ordonner globalement l’émission des messages.
Solution: il faut un algorithme qui permet d’ordonner globalement les événements.
4
Figure 1: Exemple coupure
• Cohérence est le respect de la causalité (un message ne peut pas venir du futur)
• Coupure cohérente est une coupure férmee par la relation de dependance causale:
(a ∈ C) et (b → a) alors (b ∈ C)
• Les coupures cohérentes permettent de définir un ordre de précédence entre états globaux
cohérents, et permettent aussi la reprise après une panne.
Figure 2: Coherence
5
Donc A→B mais E(A)>E(B)
Solution: quand un processus reçoit un message avec une estampille supérieur à son horloge
alors il avance son horloge à la valeur de l’estampille plus 1.
2. Horloge de Lamport:
• chaque site est muni d’un compteur à valeur entière Hs appelé horloge logique
• un site émetteur marque d’une estampille E son message (E=valeur courante He)
• le site récepteur reçoit le message et met à jour son horloge logique: si Hr<E alors Hr=E+1
(l’événement réception est daté par Hr), et on obtient une relation d’ordre totale:
A→B⇔Hi(A)<Hj(B).
Pour avoir un ordre total stricte on associe le numéro d’un site à l’estampille: A→B ⇔
(Hi(A)<Hj(B))ou(Hi(A)=Hj(B) et i<j)
3. Horloges vectorielles
Horloge de Mattern et Fidge (vectorielles) assure la réciproque de la dépendance causale (H(e)
< H(e’) ⇒ e→ e’), permet également de savoir si 2 événements sont parallèles (non dépendants
causalement), mais ne définit pas un ordre total global!.
Utilisation d’estampilles sur les messages: Vecteur V de taille égale au nombre de processus.
Localement, chaque processus Pi a un vecteur Vi telque chaque case Vi[j] du vecteur contiendra
des valeurs de l’horloge du processus Pj.
Fonctionnement
6
• Initialement, Vi = (0, ... , 0)
Caracteristiques:
7
C est cohérente si V(C)=(V(e1)[1], ... ,V(ei)[i], ... , V(eN)[N])
Pour un processus Pi, si l’événement ei est le plus récent c’est lui qui a la date la plus récente
pour C; sinon un événement ej d’un processus Pj (i6=j) s’est deroulé après un événement ei’ de Pi
avec ei’ plus recent que ei: ei→ ei’ et ei’→ ej avec ei ∈ C, ej ∈ C et ei’¬ ∈C
4. Horloges matricielles
Dans un système de n sites, les horloges d’un site i et les estampilles des événements (et des
messages) sont des matrices carrées d’ordre n.
HMi désigne l’horloge matricielle du site Si,
EMm désigne l’estampille matricielle du message m,
Mémorisation dans une matrice :
element (i, i) : état du processus i
element (i, j) : nombre de messages que Pi a envoyé à Pj
• mémoriser le nombre de messages que le site Si a envoyé aux différents autres sites: cette
information est fournie par la ième ligne de la matrice.
• mémoriser, pour chacun des autres sites j, le nombre de messages émis par ce site dont le site
i a connaissance.
• ainsi sur le site i, la valeur EMi [j,k] donne le nombre de messages en provenance du site
Sj délivrables sur le site Sk dont le site Si a connaissance (i.e dont lenvoi est causalement
antérieur à tout ce qui arrivera dorénavant sur Si).
8
• lorsqu’un evenement local se produit sur le site Si: HMi[i,i] est incrementé;
• lorsqu’un message est expedié à partir du site Si vers le site Sj: HMi[i,i] et HMi[i,j] sont
incrementés;
• lorsqu’un message m en provenance du site Sj est reçu sur le site Si , il faut s’assurer que tous
les messages envoyés antérieurement au site Si y sont effectivement arrivés. Cela suppose
donc que Si ait reçu : d’une part tous les messages precedents de Sj, et d’autre part tous ceux
envoyés plus tôt causalement depuis d’autres sites. Cela correspond aux conditions suivantes:
1. HMm [j,i] = HMi [j,i] + 1 (ordre FIFO sur le canal (j,i))
2. pour tout k 6=i et j, HMm[k,i] ≤ HMi[k,i] (tous les messages en provenance des sites
différents de Sj ont été reçus).
• si toutes ces conditions sont vérifiées, le message est délivrable et l’horloge du site Si est mise
à jour :
1. HMi[i,i] est incrémenté;
2. HMi[j,i] est incrémenté;
3. pour le reste de la matrice : HMi[k,l]=max(HMi[k,l], EMm[k,l])
• sinon, la délivrance du message est différée jusquà ce qu’elles le deviennent et l’horloge nest
pas mise à jour. La délivrance dun message pourra ainsi provoquer celle des messages arrivés
prématurément.
Exercice: On considère un système distribué constitué de deux sites utilisant des horloges
matricielles pour dater les événements de chaque
à processus.
!
0 0
L’tat initial du chaque processus est : .
0 0
Après
à quelques! instantsà d’exécution,
! les horloges des processus indiquent les dates suivantes:
3 0 0 0
HM1 = HM2 =
1 1 1 2
i) Combien de messages ont été échangés ?
ii) Combien d’événements ont eu lieu ?
iii) Réaliser le chronogramme de ce système.
5. Séquenceur:
les estampilles laissent des trous dans la numérotation des événements. Si c’est nécessaire, on définit
un mécanisme basé sur le principe du ticket afin de respecter l’ordre d’arrivée des demandeurs. Le
séquenceur est le mécanisme (processus ou serveur) qui exécute la fonction ticket() (un compteur)
et génère des numéros uniques consécutifs. La première valeur retournée est 0 et tous les numéros
retournés sont distincts.
Inconvénient: l’exécution en exclusion mutuelle de la fonction ticket()doit être garantie et limite
le parallélisme des sites participants.
Mme YAICI