Vous êtes sur la page 1sur 18

Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation

des Evènements dans les Applications


Réparties

Horloges matricielles
 Permettent de détecter l’arrivée de
messages dont la délivrance violerait
le respect de la causalité et
permettent de les différer

 Les horloges d’un site i et les


estampilles des évènements sont des
matrices carrées d’ordre n

62

Horloges matricielles
 Notations :

◦ HMi : l'horloge matricielle du site Si

◦ EMm : l'estampille matricielle du message m

◦ EMe : l'estampille matricielle d'un


événement e

63

1
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Horloges matricielles

Signification de HMi [j , k] :
 HMi [j , k] = nombre de messages issus de
pj vers pk dont pi a connaissance.

 HMi [j , j ] : ?
correspond au nombre d’événements locaux du
site j
64

Horloges matricielles
Règles d’évolution des horloges (sur un site i)

◦ Évènement local à Pi : HMi [i,i] = HMi [i,i] +1;

◦ Réception par Pi d’un message (m, EMm, j) de Pj


 HMi[i,i]++ ;
 HMi[j,i]++ ;
 pour tout k ≠ i et j et pour tout l ≠ i ,
HMi[k,l] = max( HMi[k,l] , EMm[k,l] )

◦ Emission par Pi d’un message (m, EMm, i) vers Pj


 avant émission : HMi [i,i] = HMi [i,i] +1
HMi [i,j] = HMi [i,j] +1
EMm = HMi

65

2
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Horloges matricielles
 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 avant de
mettre à jour l’horloge c-à-d que:

◦ EMm[j,i] = HMi[j,i] + 1 Cas 1


(ordre FIFO sur le canal (j,i))

◦ Pour tout k ≠ i et j , EMm[k,i] <= HMi[k,i] Cas I1


(tous les messages des sites différents de Sj ont été
reçus)

66

Horloges matricielles
◦ EMm[j,i] = HMi[j,i] + 1 Cas 1
(ordre FIFO sur le canal (j,i))

Pj

Pi

67

3
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Horloges matricielles
EMm[k,i] <= HMi[k,i] Cas I1
(tous les messages des sites différents de Sj ont été
reçus)

Pj

Pk

Pi
68

Horloges matricielles

 Si les conditions ne sont pas toutes


vérifiées, la délivrance du message est
différée jusqu`à ce qu'elles le
deviennent.

69

4
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Horloges matricielles
 Exemple :

? ? ? ?

? ?

70

Horloges matricielles
 Exemple :

71

5
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Horloges matricielles
 Exemple : lorsque l'ordre d'arrivée des messages n'est plus
satisfaisant

9 3 3
2 11 2
1 2 10

72

Résumé …
 Horloges scalaires :
HLi ce que Pi connaît du système, réduit à un nombre.
 Horloges vectorielles :
HVi[j] ce que Pi connaît de Pj.
 Horloges matricielles :
HMi[j,k] ce que Pi connaît de ce que Pj connaît de Pk.

73

6
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Exercice
 Soient 3 processus p1, p2 et p3. La valeur de
l’horloge matricielle du processus p1

est :

L’estampille vectorielle de l’événement


d’émission d’un message de p1 à p3 survenu
juste après cet instant est ???
◦ (5, 6, 4)
◦ (5, 6, 3)
◦ (5, 2, 1)

74

Définition d’un état global

 Dans certains cas il est nécessaire


d’avoir un état global, par exemple:

◦ Détection distribuée d’un interblocage


◦ Collection distribuée de processus
« garbage »
◦ Enregistrement périodique pour reprise
après panne
◦ Détection distribuée de la terminaison
◦ Débogage distribué 75

7
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Définition d’un état global


 Cependant, la notion même d’état n’est pas
évidente a priori pour un système réparti 
◦ Suppose un observateur universel ayant un
accès instantané à toutes les parties du
système  Physiquement non réalisable

◦ L’état enregistré doit être cohérent

◦ La cohérence est une propriété globale

76

Notion de coupure (cut)


 Coupure = un ensemble C d’évènements tel
que:
eC et (e’ précède localement e) e’C

 Une coupure est une « photographie »


(a snapshot) instantanée de l’état d’un
système: ensemble d’évènements; permet de
définir un passé et un futur (par rapport à la
coupure)

 On peut définir un ordre sur les coupures


par inclusion: C1 < C2 si C1  C2

77

8
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Notion de coupure : exemple


Comme son nom le suggère, une coupure établit
une frontière sur tous les sites entre un
ensemble d’événements qui sont « avant » et la
suite du calcul «après ».
P0

P1

P2

Coupure C
Évènements
appartenant à C
78

Notion de coupure consistante

 Une coupure est dite consistante (ou


cohérente) si : (e  C et e’->e)  e’ C

 Une coupure est consistante si, pour chaque


évènement qu’elle contient, elle contient
aussi tous les évènements qui se sont
produits avant cet évènement
79

9
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Notion de coupure consistante


t1 Une coupure cohérente :
Le message M1est capté avant les
deux enregistrements (instants
M2 t1 et t2) et le message M2 se
M1 trouve dans le canal (il a été
capté par l'émetteur mais pas
pour le récepteur).
t2

t1 Une coupure non cohérente :


Le message M2 n'a pas été envoyé
avant l'enregistrement
M2 du processus émetteur (instant t1)
et il a été capté par le processus
M1 récepteur en t2.

t2
80

Notion de coupure consistante


 Cette coupe est une capture de l'état de
chaque processus et de chaque canal de
communication de façon que les données qui
s'y trouvent soient cohérentes.
 Deux conditions doivent être respectées :
◦ (C1) : s'il y a eu émission d'un message avant le
moment de coupure de l'émetteur, soit le message
se trouve dans le canal de communication soit il a
été déjà reçu

◦ (C2) : si un évènement d'émission n'a pas été capté


par l'état de l'émetteur, le récepteur ne peut pas
le capter 81

10
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Notion de coupure consistante

 En particulier, tout message reçu dans la


coupure a été envoyé dans la coupure (mais
l’inverse n’est pas nécessairement vrai)

◦ Consistance = cohérence = respect de la


causalité (un message ne peut pas venir
du futur)

82

Notion de coupure consistante

83

11
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Notion d’état global consistant


 Un état global consistant est un état associé
à une coupure consistante

 Les coupures cohérentes permettent de


définir un ordre de précédence entre états
globaux cohérents
 Il est donc possible de définir l’exécution
d’une application distribuée comme une suite
de transitions entre les états globaux du
système

EG1 EG2 EG3 EG4 …


84

Notion d’état global consistant


 État du système
◦ E = {E1, E2, …, Ei, Ej, …, En} cohérent ssi il
correspond à une coupure cohérente:  i,j:
aucun message envoyé par Pi après Ei n’est
reçu par Pj avant Ej

 État des canaux


◦ État global du canal <i,j> pour l’état global
E: Tous les messages envoyés par Pi avant
Ei et non encore reçu par Pj dans l’état Ej
 Hypothèse: L’ordre des messages est préservé
85

12
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Exemple d’état enregistré


C
P e1

e2 m1
Q
m2
R e3

m3
S e4

 État enregistré pour C


◦ état de P : e1 état de Q : e2
◦ état de R : e3 état de S : e4

◦ état du canal PQ : { } état du canal RS : {m3 }


◦ état du canal PR : { } état du canal RP : { m2}
◦ état du canal PS : {m1} … 86

Construction d’état global :


Algorithme de Chandy et Lamport
 Aussi appelé algorithme du snapshot
 Hypothèses

◦ Existence d’un canal de communication


unidirectionnel

◦ Le graphe des processus et des canaux de


communications est fortement connecté (il
existe un chemin entre chaque paire de processus)

◦ Gestion de file d’attente de type FIFO


entre chaque composant
87

13
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Construction d’état global :


Algorithme de Chandy et Lamport
 Hypothèses (suite)

◦ Communication fiable (ni pertes, ni


duplications)

◦ Tout processus peut initier l’algorithme à


tout moment

◦ Les processus peuvent continuer leur


exécution et envoyer et recevoir
normalement les messages pendant que
l’état global est mis en place
88

Construction d’état global :


Algorithme de Chandy et Lamport
◦ Marqueur: message particulier que les
processus peuvent s’échanger pendant
leur exécution normale

◦ Règle du marqueur émetteur :Tous


les processus doivent envoyer un
marqueur après qu’ils aient enregistré
leurs états, mais avant l’envoi de tout
autre message

89

14
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Construction d’état global :


Algorithme de Chandy et Lamport

◦ Règle du marqueur récepteur: Tout


processus n’ayant pas déjà enregistré
son état doit le faire. Il doit aussi
enregistrer tous les autres messages
arrivant via d’autres canaux.

90

Construction d’état global :


Algorithme de Chandy et Lamport

 Un processus initiateur (un processus «


élu » particulier) agit comme s’il avait
reçu un marqueur et suit la règle du
marqueur récepteur 
◦ Il enregistre son état et commence à
enregistrer tous les messages entrants par
ses canaux de communications.

◦ Il envoie un marqueur aux autres processus


(diffusion du marqueur par « inondation »)

91

15
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Construction d’état global :


Algorithme de Chandy et Lamport
 Tous les processus sont connectés,
donc on aura un enregistrement des
états de tous les processus en un
espace fini de temps  l’algorithme se
termine.

 Un processus est dit avoir fini sa part


de l’algorithme quand il a reçu un
marqueur sur tous ses liens entrants

92

Construction d’état global :


Algorithme de Chandy et Lamport
 Algorithme (à exécuter par tout processus Pi)
◦ Première réception du marqueur (depuis Pj)
1. Enregistrer état(Pi)
2. Enregistrer état(canal <j,i>) comme vide
3. Diffuser le marqueur à tous ses voisins (processus
vers lesquels il a un canal)
{1, 2, 3} doit être atomique
◦ Réceptions suivantes du marqueur (depuis Pk)
Enregistrer état(canal <k,i>) comme: tous les
messages reçus de Pk entre l’enregistrement de
état(Pi) et la réception du marqueur de Pk

93

16
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Construction d’état global :


Algorithme de Chandy et Lamport
 L’état global enregistré est cohérent
(sûr)  correspond à une coupure
consistante (coupure de l’historique de
l’exécution)

◦ Si l’état était inconsistant, il existerait Pi,


Pj et un message m tels que Pi ait émis m
après l’enregistrement de son état et que
Pj l’ait reçu avant. Impossible grâce à ..
l’atomicité et à la propriété FIFO.
94

Construction d’état global :


Algorithme de Chandy et Lamport
 L’algorithme est vivace (progrès garanti,
pas de blocage) + l’algorithme se termine
(mais sans délai garanti)

 Comme il n’est pas possible de synchroniser la


prise de chaque état local à un instant t, la
prise d’un cliché global est asynchrone.

 Chaque processus peut décider de débuter


une phase d’évaluation d’un état local
complété par d’éventuels messages en transit. 95

17
Cours : Informatique Répartie Chapitre 3 : Horloges Logiques et Datation
des Evènements dans les Applications
Réparties

Etat global de Chandy et


Lamport
marqueur

etat
M
Q

Fin de l’algo

M
a b c M M d
Q Q Q

a b c a b c d
96

Gestion du temps dans un


environnement réparti
 Conclusions:
◦ Importance de dater les évènements dans
un environnement réparti
◦ Algorithmes de Lamport pour synchroniser
entre les horloges logiques => Reflète le
flux d’informations entre deux processus
◦ Certains algorithmes de synchronisation
nécessite d’avoir un état global du système
=> mécanisme de construction d’état global
de manière distribuée

97

18

Vous aimerez peut-être aussi