Vous êtes sur la page 1sur 29

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

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)

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
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é

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

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

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

Sûreté et Vivacité
 Spécifier et vérifier des propriétés d’un
système dynamique (évoluant dans le temps):

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 impossible de fixer une borne


supérieure à l’attente
9

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
10

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

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

11

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

12

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

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

13

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

14

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

La délivrance

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


consistant à le rendre accessible aux
applications clientes.
◦ Par exemple : le protocole TCP dans la
couche transport.
15

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

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.

17

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
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
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
19

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.
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 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
21

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’)

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


 Exemple

a, d, f, c précèdent u
v u ? b précède c
v u car v  b et b c et c  u 23

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

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


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

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)
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


 Exemple

 Passe(u) = {u,
? a, b, c, f , v, h, d}
 Futur(u) = {u,
? x, y}
 Concurrent(u) = {g}
?
27

Notion de précédence causale

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

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


 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. 29

Notion d’observation globale


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

30

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

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
31

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


32

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

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

33

Horloge logique de Lamport


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

34

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

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)35

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)
36

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

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

37

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

38

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

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’


39

Horloge logique de Lamport


Exemple 2:

? ? ? ? ? ? ?

? ? ? ? ? ?
? ? ?

? ? ? ? ? ? ? ? ?

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:

41

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

43

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

44

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

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

45

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’
46

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

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 sur qu’il P0


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

47

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
48

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

Limitation des horloges logiques

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

 Utiliser un délai de garde ?

49

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
50

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

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.

51

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
52

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

Datation par estampilles


vectorielles

53

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 54

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

Datation par estampilles


vectorielles
 Exemple :
? ? ? ? ? ? ?

? ? ? ?
? ? ?

? ? ? ? ? ? ? ?

55

Datation par estampilles


vectorielles
 Exemple :

56

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

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).

57

Datation par estampilles


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

58

29

Vous aimerez peut-être aussi