Vous êtes sur la page 1sur 48

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

des Evènements dans les Applications


Réparties

Chapitre 3

Horloges Logiques et Datation


des Evènements dans les
Applications Réparties

Problématique

 Raisonner sur un système ou une


application

◦ Définir des prédicats, ce qui implique


d’accéder à un état

◦ Coordonner des activités, ce qui implique


de définir un ordre

Informatique Répartie M1 IDEAS 22-23 2

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

Problématique

 Systèmes répartis => évolution


asynchrone

◦ Communication par messages => Pas de


mémoire commune (support habituel de
l’état)

◦ Pas d’horloge commune (définit le


séquencement des évènements)

Informatique Répartie M1 IDEAS 22-23 3

Problématique

◦ Propriétés du système de
communication (asynchronisme)
 Temps de communication potentiellement
longs
 Temps de transmission variables
 Ordre des messages non forcément
préservé

◦ Asynchronisme des traitements


 Pas de bornes sur le rapport relatif des
vitesses d’exécution
Informatique Répartie M1 IDEAS 22-23 4

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

Problématique
Ceci implique :
◦ Perception différente des mêmes
évènements depuis des sites
distincts

◦ Impossibilité de définir simplement


un état global instantané

Informatique Répartie M1 IDEAS 22-23 5

Problématique
Ceci implique aussi :
◦ Problème si besoin d’algorithmes
répartis basés sur le temps

◦ Conséquences sur
 La synchronisation
 L’observation et la mise au point

Informatique Répartie M1 IDEAS 22-23 6

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

Problématique
Exemple: Conséquences de l’absence d’une
heure unique sur le programme make du
système UNIX
 Un programme composé de 100 fichiers
source
 Fin de modification d’un des fichiers
source => on exécute make qui compare les
dates auxquelles tous les fichiers source
et objet ont été modifiés pour la dernière
fois
Informatique Répartie M1 IDEAS 22-23 7

Problématique
Exemple: illustration

Temps en accord
2144 2145 2146 2147 2148 avec l’horloge
Machine sur laquelle
est exécuté le compilateur locale
Création de output.o
Temps en accord
Machine sur laquelle 2142 2143 2144 2145 2146 avec l’horloge locale
est exécuté l’éditeur
Création de output.c
Car machine un peu
en retard
temps

Informatique Répartie M1 IDEAS 22-23 8

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

Sûreté et Vivacité (1/2)


 Spécifier et vérifier des propriétés d’un
système dynamique (évoluant dans le temps):
 Classication de Leslie Lamport

1. Sureté (safety): un évènement indésirable


n’arrivera jamais
2. Vivacité (liveness): un évènement
désirable finira par arriver un nombre de
fois (plus difficile à établir)
Remarque : Il est souvent difficile/impossible de fixer
une borne supérieure à l’attente
Informatique Répartie M1 IDEAS 22-23 9

Sûreté et Vivacité (2/2)


Sureté (safety):
◦ Exemple 1 : jamais deux agents écrivant
simultanément la même ressource
◦ Exemple 2 : deux philosophes adjacents ne
peuvent manger simultanément
Vivacité (liveness):
◦ Exemple 1 : un agent en attente pour écrire finira
par écrire
◦ Exemple 2 : absence de famine pour les
philosophes
Informatique Répartie M1 IDEAS 22-23 10

10

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

Etude de la synchronisation
Système = ensemble de processus (1 par site)
+ canaux de communication

Processus = séquence d’évènements locaux +


mémoire locale + horloge locale
 ne communique que par messages

Évènement = changement d’état du processus


(évènement local), ou émission d’un
message, ou réception d’un message
Informatique Répartie M1 IDEAS 22-23 11

11

Etude de la synchronisation
Exemple :

e11 e12 e13


P1
m1 m3 m5
e21 e22 e23 e24 e25
P2
m2 m4
e31 e32 e33 e34
P3

Informatique Répartie M1 IDEAS 22-23 12

12

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

Etude de la synchronisation
 Tentative pour modéliser certains
aspects du monde réel (asynchronisme
des communications et des traitements)
◦ Peut être renforcé:
 borne sup sur le traitement et/ou la
durée de transmission
 borne sup sur le rapport des vitesses
d’exécution des processus

Informatique Répartie M1 IDEAS 22-23 13

13

A propos des messages


 La communication entre les nœuds est en
général assurée par une couche de
communication spécifique utilisée par des
entités de la couche supérieure pour
émettre/recevoir des messages.

 Disponibilité d’un système de communication


permettant d’envoyer des messages entre
processus

Informatique Répartie M1 IDEAS 22-23 14

14

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

A propos des messages


◦ Propriétés:
 Un message finit par arriver à destination, mais
son temps de transmission n’est pas borné

 Un message arrive intact (utilisation de


mécanismes de détection et recouvrement
d’erreur)

 Selon le cas, canal FIFO entre deux processus ou


pas

Informatique Répartie M1 IDEAS 22-23 15

15

La délivrance

 La délivrance d’un message : l’opération


consistant à le rendre accessible aux
applications clientes.

Informatique Répartie M1 IDEAS 22-23 16

16

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

Datation dans un système réparti

 Exécution d’un processus = suite


d’évènements (local, émission, réception)
ordonnée par l’horloge locale du
processus

 Synchroniser deux processus = dater


deux processus = imposer un ordre entre
des évènements appartenant à ces deux
processus
◦ Ex: exclusion mutuelle Informatique Répartie M1 IDEAS 22-23 17

17

Datation dans un système réparti

Question: « Est il possible de synchroniser


toutes les horloges pour produire un seul
standard de temps, non ambigu? »

Réponse de Lamport: OUI mais


 Pour toute une classe d’algorithmes,
c’est la cohérence interne des
horloges qui importe et non le fait
qu’elles affichent le temps réel.
Informatique Répartie M1 IDEAS 22-23 18

18

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

Notion de précédence
Problème: chaque processus considère sa
propre horloge

P1 P2 P3

t1=6s A
t2=16s Le message C part de P3 à 60
B secondes et arrive à P2 à 56
t3=40s  IMPOSSIBLE

C t3=60s
De même pour D
t2=56s
D t2=59s

t1=54s
Informatique Répartie M1 IDEAS 22-23 19

19

Notion de précédence
La réception du message C par P2 permet de
synchroniser entre les horloges logiques de P3
et P2
P1 P2 P3

t1=6s A
t2=16s
B
t3=40s

C t3=60s

t2=61s
D t2=69s

t1=70s
Informatique Répartie M1 IDEAS 22-23 20

20

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

Notion de précédence
 Le problème :
1. Définir une relation globale de
précédence
2. et ceci sur la seule base
d’informations locales

 Solution:
utiliser le principe de causalité  la
cause précède l’effet.
Informatique Répartie M1 IDEAS 22-23 21

21

Notion de précédence causale


Un évènement a précède un évènement b ssi:
 Ou bien a et b se déroulent sur le même site
(sont des évènements d’un même processus)
et a se produit avant b.

 Ou bien a est l’évènement associé à un


message m envoyé par un processus et b est
associé à la réception du même message m
par un autre processus.

Précède est une relation transitive:


a précède b, b précède c, alors a précède c
Informatique Répartie M1 IDEAS 22-23 22

22

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

Notion de précédence causale


Lamport
e précède causalement e’ (e -> e’) si:

◦ e précède localement e’

◦ message m tq e = émission(m)
et e’ = réception(m)

◦ e” tq (e précède e”) et (e” précède e’)

Informatique Répartie M1 IDEAS 22-23 23

23

Notion de précédence causale


 Exemple

a, d, f, c précèdent u
v u ? b précède c
v u car v Informatique
b et bRépartie
 c et c  u
M1 IDEAS 22-23 24

24

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

Notion de précédence causale

 Si e -> e’, e est une cause (potentielle) de


e’, en revanche e’ ne peut pas être la cause
de e (avec certitude)

 La relation de précédence causale est


invariante par toute transformation des
temps locaux qui préserve l’ordre local et
respecte la causalité pour les messages

Informatique Répartie M1 IDEAS 22-23 25

25

Notion de précédence causale


 A un événement e trois ensembles d’événements
sont associés :

◦ Passe(e) : ensemble des événements antérieurs


à e dans l’ordre causal (e appartient à cet
ensemble) ;

◦ Futur(e) : ensemble des événements


postérieurs à e dans l’ordre causal (e
appartient à cet ensemble) ;

◦ Concurrent(e) : ensemble des événements


concurrents avec e. Notation e || e’ : deux
événements e et e’ sont concurrents
Informatique Répartie M1 IDEAS 22-23 26

26

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

Notion de précédence causale


 Évènements concurrents
 causalement indépendants

e || e’  ¬ (e->e’) et ¬ (e’->e)

 Aucun des deux évènements ne peut


influer l’autre

 Précédence causale => établit une relation


d’ordre partiel (uniquement entre
évènements non concurrents)
Informatique Répartie M1 IDEAS 22-23 27

27

Notion de précédence causale


 Exemple

 Passe(u) = {u,
? a, b, c, f , v, h, d}
 Futur(u) = {u,
? x, y}
 Concurrent(u) = {g}
?
Informatique Répartie M1 IDEAS 22-23 28

28

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

Notion de précédence causale

 Calculer Passé(o), Futur(o) et Concurrent(o).

Informatique Répartie M1 IDEAS 22-23 29

29

Notion de précédence causale


 Pour calculer Passé(o) :
l’évènement o appartient à son propre passé
l’évènement o est précédé directement par d et n.
donc Passé(o) = {o} + Passé(d) + Passé(n)
 Passé(n) = {n} + Passé(m)
Passé(d) = {d} + Passé(c)
etc.

 De même pour Futur(o).

 Les événements n'appartenant ni à Passé(o), ni


à Futur(o) sont concurrents avec o.Répartie M1 IDEAS 22-23
Informatique 30

30

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

Notion d’observation globale


 Objectif:
◦ Construire un système de datation
des évènements compatible avec la
causalité

Informatique Répartie M1 IDEAS 22-23 31

31

Notion d’observation globale


 1ère Solution:
◦ Processus observateur p0 informé par
messages de tout évènement du
système

◦ La suite (ou l’enchaînement) des


évènements enregistrés par p0
constitue une observation globale du
système
Informatique Répartie M1 IDEAS 22-23 32

32

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

Notion d’observation globale


 Deux cas:
◦ Canal non FIFO: l’observation viole la causalité
◦ Canal FIFO: la causalité peut encore être violée

Exemple :
p0

p1 e11 e12

p2 e21 e22

 Pas de validité des observations


Informatique Répartie M1 IDEAS 22-23 33

33

Notion d’observation globale


 Condition de validité faible des observations:
Observations ordonnées par des estampilles h

 e -> e’ ==> h(e) < h(e’)

◦ Pas d’horloge donnant le temps réel et


temps de propagation des messages non
borné NEANMOINS un système d’horloge
assurant une observation valide

Informatique Répartie M1 IDEAS 22-23 34

34

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

Horloge logique de Lamport


 Objectif:
◦ Réaliser une datation des évènements
assurant la condition de validité
faible et déterminable par
consultation locale

Informatique Répartie M1 IDEAS 22-23 35

35

Horloge logique de Lamport


 2ème Solution: Lamport
◦ La synchronisation d’horloges n’a pas à être
absolue

◦ Si Pi et Pj n’interagissent pas, il n’est pas


nécessaire de synchroniser leurs horloges

◦ L’important n’est pas que tous les


processus s’accordent exactement sur
l’heure qu’il est, mais plutôt qu’ils
s’entendent sur l’ordre dans lequel les
évènements se produisent (exemple : make)36
Informatique Répartie M1 IDEAS 22-23

36

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

Horloge logique de Lamport


 On associe à chaque site i un compteur hi à
valeurs entières

 Un évènement e constitué de l’émission d’un


message m émis à partir du site i est daté par
la valeur courante de hi, soit hi(e)

 Un message m émis à partir du site i porte une


estampille égale à sa date d’émission =>
estampillage des messages (message
timestamping)
Informatique Répartie M1 IDEAS 22-23 37

37

Horloge logique de Lamport


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

◦ Initialisation: hi = 0

Message m du processus Pi  (m, hi , i)

◦ Évènement local: hi = hi + 1;

◦ Réception par Pi d’un message (m, hj, j)


hi max(hi, hj) + 1

◦ Emission par Pi d’un message (m, hi, i)


hi hi +1

Informatique Répartie M1 IDEAS 22-23 38

38

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

Horloge logique de Lamport


 Si plusieurs messages sont reçus en
même temps, il est désormais possible
de les distinguer

=> ordonnancement de la file basé sur


les estampilles

Informatique Répartie M1 IDEAS 22-23 39

39

Horloge logique de Lamport


Exemple 1:

1 2 3 6
0
2
1 2 3 4
0 5
3
1 4 5 6
0

 h satisfait la condition de validité faible:


e->e’ => h(e) < h(e’)

MAIS h(e) < h(e’) => e->e’


Informatique Répartie M1 IDEAS 22-23 40

40

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

Horloge logique de Lamport


Exemple 2:

? ? ? ? ? ? ?

? ? ? ? ? ?
? ? ?

? ? ? ? ? ? ? ? ?

Informatique Répartie M1 IDEAS 22-23 41

41

Horloge logique de Lamport


Exemple 2:

Informatique Répartie M1 IDEAS 22-23 42

42

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

Horloge logique de Lamport


 Ordre non strict: Deux évènements
peuvent avoir la même estampille => ils
sont causalement indépendants

◦ On ajoute le critère du numéro de


processus (unique) pour avoir un ordre
strict
 e dans pi, e’ dans pj alors
(h(e), i) < (h(e’), j) ssi h(e) < h(e’)
ou
h(e) = h(e’) et i < j
Informatique Répartie M1 IDEAS 22-23 43

43

Horloge logique de Lamport


 Ordre non strict: Deux évènements
peuvent avoir la même estampille => ils
sont causalement indépendants

◦ On estampille avec le numéro du


processus pr Si deux événements
surviennent à la même date dans
deux processus P1 et P2 différents,
40 par ex, estampille 40.1 et 40.2

Informatique Répartie M1 IDEAS 22-23 44

44

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

Horloge logique de Lamport


 Avec la technique d’estampillage et les
horloges logiques de Lamport, on
dispose d’un ordre total sur les
évènements, détectable à partir
d’informations locales uniquement

Informatique Répartie M1 IDEAS 22-23 45

45

Utilisation des horloges logiques


 Algo utilisant une « file d’attente virtuelle »
répartie
◦ Exclusion mutuelle répartie
◦ Mise à jour de copies multiples
◦ Diffusion cohérente (ordre de réception
uniforme)

 Détermination de l’accès le plus récent


◦ Gestion cohérente de caches multiples
◦ Fichiers répartis
◦ Mémoire virtuelle répartie

Informatique Répartie M1 IDEAS 22-23 46

46

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

Limitations des horloges logiques


de lamport
 Il ne doit pas y avoir de communications
« cachées » (via d’autres canaux que ceux qui
estampillent les messages )

 Les estampilles « effacent » artificiellement


la notion de dépendance causale (évènements
concurrents) => ordre artificiel entre
évènements

 Les estampilles ne sont pas « denses »


si h(e) < h(e’) on ne peut pas savoir s’il existe
e" tel que e précède e” et/ou e” précède e’
Informatique Répartie M1 IDEAS 22-23 47

47

Limitation des horloges logiques


Exemple:
p0 reçoit des messages des autres processus. On
souhaite qu’ils lui soient délivrés dans l’ordre de leurs
estampilles (Rappel : délivrance ≠ réception)

On a délivré (m, 3, 1) et on reçoit (m’, 6, 3). Peut on le délivrer ?

si h(e) < h(e’) est-on certain qu’ilP0


e m, 3,1
n’existe pas de e” tq e->e”->e’ ? P1 m", 5,2
e" m’, 6,3
P2
NON !!! C’est la propriété de
P3 e’
VIVACITE

Informatique Répartie M1 IDEAS 22-23 48

48

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

Limitation des horloges logiques


 Une solution au problème de délivrance
de messages dans l’ordre est de définir
une stabilité des messages
◦ Un message est stable si aucun message
portant une estampille inférieure ne
parviendra au destinataire

◦ Règle: On ne délivre un message que s’il est


stable => attendre d’avoir reçu un
message de tous les émetteurs potentiels
Informatique Répartie M1 IDEAS 22-23 49

49

Limitation des horloges logiques

◦ Problèmes:
 Connaître tous les émetteurs
potentiels ?

 Utiliser un délai de garde ?

Informatique Répartie M1 IDEAS 22-23 50

50

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

Datation par estampilles


vectorielles
 Mécanisme de datation par les horloges
de Lamport respecte l’ordre causal mais
ne permet pas d’avoir l’implication
réciproque h(e) < h(e’) => e->e’ (slide 39 !)

 Fidge, Mattern

 On associe à chaque site Si ou (processus


pi) un vecteur Vi constitué de n entiers (n
est le nombre de composants du système)
qui représente son horloge vectorielle
Informatique Répartie M1 IDEAS 22-23 51

51

Datation par estampilles


vectorielles

 La composante Vj[i] d’un vecteur dans un

site j indique le nombre d’événements


ayant eu lieu sur le site i et qui précède
causalement cette date.

Informatique Répartie M1 IDEAS 22-23 52

52

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

Datation par estampilles


vectorielles
 Règles d’évolution des horloges
(sur un site i)

◦ Évènement local: Vi [i] = Vi [i] + 1;

◦ Réception par Pi d’un message (m, Vj, j)


Vi [i] = Vi [i] +1 et pour tout k ≠ i
Vi [k] = max(Vi [k], Vj [k] )

◦ Emission par Pi d’un message (m, Vi, i)


avant émission : Vi [i] = Vi [i] +1
Informatique Répartie M1 IDEAS 22-23 53

53

Datation par estampilles


vectorielles

Informatique Répartie M1 IDEAS 22-23 54

54

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

Datation par estampilles


vectorielles
 Soit Ve l’estampille vectorielle de e
 Propriétés :
◦ Pour tout i
Ve [i] = card({ e’ /e’ Є Si et e’ -> e})

◦ Ve ≤ Ve’  pour tout i, Ve [i] ≤ Ve’ [i]

◦ e -> e’ ssi Ve ≤ Ve’

◦ e || e’ ssi Ve || Ve’

 refléter exactement la relation de précédence


causale entre événements Informatique Répartie M1 IDEAS 22-23 55

55

Datation par estampilles


vectorielles
 Exemple :
? ? ? ? ? ? ?

? ? ? ?
? ? ?

? ? ? ? ? ? ? ?

Informatique Répartie M1 IDEAS 22-23 56

56

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

Datation par estampilles


vectorielles
 Exemple :

Informatique Répartie M1 IDEAS 22-23 57

57

Datation par estampilles


vectorielles
 L'estampille vectorielle de
l'événement m est [1, 4, 1]
 Passé(m) contient :
◦ 1 événement sur P (a);
◦ 4 événements sur Q (j, k, l, m);
◦ 1 événement sur R (u).

Informatique Répartie M1 IDEAS 22-23 58

58

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

Datation par estampilles


vectorielles
◦ Cependant la datation par estampilles
vectorielles ne permet pas de garantir une
délivrance causale des messages.
Exemple :

Informatique Répartie M1 IDEAS 22-23 59

59

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

Informatique Répartie M1 IDEAS 22-23 63

63

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

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

Informatique Répartie M1 IDEAS 22-23 64

64

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
Informatique Répartie M1 IDEAS 22-23 65

65

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

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

Informatique Répartie M1 IDEAS 22-23 66

66

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)

Informatique Répartie M1 IDEAS 22-23 67

67

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

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

Pj

Pi

Informatique Répartie M1 IDEAS 22-23 68

68

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
Informatique Répartie M1 IDEAS 22-23 69

69

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

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.

Informatique Répartie M1 IDEAS 22-23 70

70

Horloges matricielles
 Exemple :

? ? ? ?

? ?

Informatique Répartie M1 IDEAS 22-23 71

71

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

Horloges matricielles
 Exemple :

Informatique Répartie M1 IDEAS 22-23 72

72

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

9 3 3
2 11 2
1 2 10

Informatique Répartie M1 IDEAS 22-23 73

73

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

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.

Informatique Répartie M1 IDEAS 22-23 74

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é 76
Informatique Répartie M1 IDEAS 22-23

76

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

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é 77
Informatique Répartie M1 IDEAS 22-23

77

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

Informatique Répartie M1 IDEAS 22-23 78

78

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

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

Informatique Répartie M1 IDEAS 22-23 79

79

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
Informatique Répartie M1 IDEAS 22-23 80

80

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

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
Informatique Répartie M1 IDEAS 22-23 81

81

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
Informatique Répartie M1 IDEAS 22-23 82

82

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

Notion de coupure consistante


 Coupure consistante 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 Informatique Répartie M1 IDEAS 22-23 83

83

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)

Informatique Répartie M1 IDEAS 22-23 84

84

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

Notion de coupure consistante

Informatique Répartie M1 IDEAS 22-23 85

85

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 …


Informatique Répartie M1 IDEAS 22-23 86

86

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

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é
Informatique Répartie M1 IDEAS 22-23 87

87

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} …
Informatique Répartie M1 IDEAS 22-23 88

88

42
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
 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
Informatique Répartie M1 IDEAS 22-23 89

89

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
Informatique Répartie M1 IDEAS 22-23 90

90

43
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
◦ 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

Informatique Répartie M1 IDEAS 22-23 91

91

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.

Informatique Répartie M1 IDEAS 22-23 92

92

44
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

 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 »)
Informatique Répartie M1 IDEAS 22-23 93

93

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

Informatique Répartie M1 IDEAS 22-23 94

94

45
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
 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

Informatique Répartie M1 IDEAS 22-23 95

95

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.
Informatique Répartie M1 IDEAS 22-23 96

96

46
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’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. 97
Informatique Répartie M1 IDEAS 22-23

97

Construction d’état global :


Algorithme 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
Informatique Répartie M1 IDEAS 22-23 98

98

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

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

Informatique Répartie M1 IDEAS 22-23 99

99

48

Vous aimerez peut-être aussi