(1/2). Petit exemple

publicité
Références
Shlomi Dolev
Self-Stabilization
Algorithmes distribuées auto-stabilisants.
E.W. Dijkstra
Self-stabilizing systems in spite of distributed control.
Commun. ACM 17 (1974), 11 : 643-644.
Johanne Cohen1
1 LORIA/CNRS,
Gérard Tel
Introduction to Distributed Algorithms
Nancy, France.
!
1
1/55
Sébastien Tixieul
Introduction to Self-stabilization
http ://sogea.loria.fr/.
2
2/55
Plan
Petit exemple (1/2).
Introduction
Considérons la suite un suivante
Définition
Système auto-stabilisant
Type de communications
• u0 = x
• un =
Le premier algorithme auto-stabilisant Dijkstra
n
un
Technique de preuve
distance dans un graphe.
0
17



un
2
3un +1
2
1
26
un pair
si
2
13
sinon (un impair )
3
20
4
10
5
5
6
8
7
4
8
2
9
1
10
2
11
1
Quelque soit la valeur initiale, elle converge vers le comportement :
121212121212121212121212121212
Composition d’algorithme d’auto-stabilisation
Conclusion
3
3/55
4
4/55
Plan
Petit exemple (2/2).
Introduction
Définition
Système auto-stabilisant
Type de communications
10
8
8
Le premier algorithme auto-stabilisant Dijkstra
6
5
Technique de preuve
5
4
4
distance dans un graphe.
3
2
1
5/55
2
1
2
1
2
1
2
1
2
1
2
2
1
2
1
2
Composition d’algorithme d’auto-stabilisation
1
Conclusion
5
6/55
6
Plan
Rappel de définition
Introduction
Definition
Définition
Système auto-stabilisant
Type de communications
Un système de transition est un couple S = (C , →) où
Le premier algorithme auto-stabilisant Dijkstra
Definition
Technique de preuve
Une exécution de S est une suite maximale (finie ou infinie)
E = (γ0 , γ1 , . . . , γn , . . . ) telle que
C est un ensemble de configurations
→ est une relation binaire sur C
distance dans un graphe.
pour tout i ≥ 0, on a γi → γi+1
Composition d’algorithme d’auto-stabilisation
Definition
Une spécification est un prédicat P sur l’ensemble des exécutions
Conclusion
7
7/55
8
8/55
Retour au petit exemple
Définition de l’auto-stabilisation
un système est auto-stabilisant est défini par Dijkstra en 1973
Regardless of its initial state, it is guaranteed
to arrive at a legitimate state in a finite number
of steps.
• Ensemble de configurations possibles (N + )
• fonction de transition →
:
γi → γi+1 SSi γi+1 =


γi
2
3γi +1
2
si
Plus formellement,
γi pair
Definition
Un système de transition S = (C , →) est auto-stabilisant pour une
spécification P s’il existe un ensemble L ⊆ C de configurations
légitimes vérifiant les propriétés suivantes
sinon (γi impair )
• une exécution : E = (17, 26, 13, 20, 10, 5, 8, 4, 2, 1, 2, 1)
• Un prédicat P(γ) = (γ == 1) ∨ (γ == 2)
1. Convergence : toute exécution atteint une configuration de
L.
2. Correction : toute exécution débutant par une configuration
de L satisfait P
9
9/55
10
10/55
Définitions sur les configurations
Complexité d’un algorithme auto-stabilisant
en espace : est la taille (en nombre de bits) des variables utilisées
localement pour chaque processeur.
en temps : est le nombre de tours nécessaires pour parvenir à
une configuration légitime (au cours d’un tour,
chaque processeur exécute ou tente d’exécuter son
code local).
configurations légitimes
configurations possibles
11/55
11
12/55
12
Retour au petit exemple
Retour au petit exemple
• Ensemble de configurations possibles (N + )
• fonction de transition →
:
• Ensemble de configurations possibles (N + )
• fonction de transition →
:
γi → γi+1 SSi γi+1 =


γi
2
si
γi → γi+1 SSi γi+1 =
γi pair


γi
2
si
3γi +1
2
sinon (γi impair )
γi pair
• Un prédicat P(γ) = (γ == 1) ∨ (γ == 2)
3γi +1
2
sinon (γi impair )
• Un prédicat P(γ) = (γ == 1) ∨ (γ == 2)
• Configurations légitimes : un = 1, un = 2, i.e : L = {1, 2}
• propriété de correction ? (i.e toute exécution débutant par
• Configurations légitimes : un = 1, un = 2, i.e : L = {1, 2}
une configuration de L satisfait P)
• propriété de correction
Si γi = 1 alors γi+1 = 2
Si γi = 2 alors γi+1 = 1
• propriété de convergence ? (i.e : toute exécution atteint une
configuration de L.)
• propriété de convergence ? (i.e : toute exécution atteint une
Conjecture à 1 000 000 Dollars pour la prouver.
configuration de L.)
Conjecture à 1 000 000 Dollars pour la prouver.
13
13/55
13
13/55
Retour au petit exemple
Retour au petit exemple
• Ensemble de configurations possibles (N + )
• fonction de transition →
 :γi
γi → γi+1 SSi γi+1 =


2
3γi +1
2
si
• Ensemble de configurations possibles (N + )
• fonction de transition →
 :γi
γi pair
γi → γi+1 SSi γi+1 =
sinon (γi impair )


2
si
γi pair
3γi +1
2
sinon (γi impair )
• Un prédicat P(γ) = (γ == 1) ∨ (γ == 2)
• Un prédicat P(γ) = (γ == 1) ∨ (γ == 2)
• propriété de correction : OUI
• propriété de correction : OUI
• Configurations légitimes : un = 1, un = 2, i.e : L = {1, 2}
• Configurations légitimes : un = 1, un = 2, i.e : L = {1, 2}
• propriété de convergence ? (i.e : toute exécution atteint une
• propriété de convergence ? (i.e : toute exécution atteint une
configuration de L.)
configuration de L.)
Conjecture à 1 000 000 Dollars pour la prouver.
Conjecture à 1 000 000 Dollars pour la prouver.
13
13/55
13
13/55
Notation
Communications par envoi de messages.
Commande
u
règle gardée → instruction
mes.
• une règle gardée : un prédicat sur les états des voisins.
v
mes.
• une action instruction : un prédicat sur les états des voisins.
• instruction : est exécutée si la règle gardée est vraie.
14/55
14
15/55
15
Communications par registres partagés.
Communications par mémoire partagée.
Definition
A chaque pas atomique, un processus
v
registre pour v → u
• peut lire les états de tous ses voisins
• peut modifier son état.
u
u
registre pour u → v
v
w
z
x
voisins
16
16/55
17
17/55
Plan
l’algorithme auto-stabilisant du jeton
Introduction
Définition
Système auto-stabilisant
Type de communications
• Contexte :
un anneau de taille N où chaque noeud a un voisin à gauche
et à droite.
• Objectif : exclusion mutuelle.
un unique jeton qui circule indéfiniment et de manière
équitable
Le premier algorithme auto-stabilisant Dijkstra
Technique de preuve
distance dans un graphe.
Composition d’algorithme d’auto-stabilisation
Conclusion
18
18/55
19
19/55
Hypothèse
Idée de l’algorithme
• Communications par mémoire partagée.
• Tous les processeurs sont activés par un ordonnanceur appelé
• Chaque site i possède une valeur : σi
• Ici, le démon est centralisé
• La présence du jeton dépendra de la différence entre sa valeur
Démon
et son prédécesseur (voisin de gauche)
• Il active un processeur à la fois pour faire une séquence
atomique d’instructions.
• Le démon centralisé est équitable
• Déplacement du jeton = la “propagation” de vagues
• Il active un processeur une infinité de fois pour toutes
exécutions infinies.
20/55
20
21/55
21
Algorithme Dijkstra
Exemple
• Soit k ∈ N + avec k > n avec n le nombre de processeurs
• Initialisation sur chaque machine i :
• σi pris au hasard entre [0, . . . , k − 1]
• Définition du jeton
• P0 détient le jeton ⇐⇒ σ0 = σn−1
• Pi détient le jeton ⇐⇒ σi )= σi−1
8
P0
4
4
23
Exemple
4
8
P0
P0!execute
8
5
4
4
4
4
4
8
4
23
8
8
8
P0
8 P1!execute 5
4
4
État : plusieurs jetons (site P1 , P4 ). Perte d’un jeton
Activation de P1 : Si σ1 )= σ0 alors σ1 := σ0 .
23/55
4
Exemple
P0
8 P7!execute 5
4
P0
5
23/55
Exemple
8
4
État : plusieurs jetons (site P1 , P4 , P7 en rouge).
Activation de P7 : Si σ7 )= σ6 alors σ7 := σ6 .
23
23/55
8
P6!execute
8
État : plusieurs jetons (site P1 , P4 , P6 en rouge).
Activation de P6 : Si σ6 )= σ5 alors σ6 := σ5 .
8
4
23/55
Exemple
4
4
État initial : plusieurs jetons (site en rouge).
Activation de P0 : Si σ0 = σn−1 alors σ0 := σ0 + 1 mod k.
22
8
4
8
• Exécution du code :
• pour P0 : σ0 = σn−1 → σ0 := σ0 + 1 mod k
• pour Pi : σi )= σi−1 → σi := σi−1
22/55
4
4
5
État : plusieurs jetons (site P2 , P4 ).
Activation de P2 : Si σ2 )= σ1 alors σ2 := σ1 .
23
23/55
23
Exemple
8
8
Exemple
8
8
P0
P2!execute
8
5
4
5
4
État : plusieurs jetons (site P3 , P4 ).
aucune supression de jeton ∀ la suite : Activation de P4 .
8
5
5
23
8
4
P0
5
5
5
5
5
5
23
4
5
P0
5
5
5
4
P0
5
P5+P7
5
5
État : 1 jeton sur site P6 .Ici, perte d’un jeton
Configuration légitime Activation de P6
23/55
5
Exemple
P5+P7
5
P0
5
23/55
Exemple
4
8
État : plusieurs jetons (site P5 , P7 ).
Activation de P7 et de P5
23
23/55
4
P4+P6
5
État : plusieurs jetons (site P4 , P6 ).
Activation de P6 et de P4
5
5
Exemple
P3+P5
4
5
23/55
Exemple
4
P0
5
État : plusieurs jetons (site P3 , P5 ).
Activation de P5 et de P3
23
23/55
8
P3!execute
4
5
8
5
5
État : 1 jeton sur site P7 .
Configuration légitime Activation de P7
23
23/55
23
Exemple
5
5
Remarques.
5
5
[σ1 , σ2 , . . . , σn ]
P0
5
P5+P7
5
• Une configuration est un vecteur de n valeurs entières
5
• Séquence atomique d’instructions = lire σi−1 ⊕ calculer σi
• A un pas donné, un seul processeur est activé à la fois :
Un seul processeur peut changer son état à la fois.
• Une exécution équitable est une suite de configurations
1. dans laquelles exactement un processeur change d’état.
2. dans laquelles chaque processeur change d’état une infinité de
fois pour toute exécution infinie.
5
État : 1 jeton sur site P0 .
Configuration légitime Activation de P0 , et ainsi de suite
23
23/55
24
24/55
Preuve (1/4)
Preuve (2/4)
Proposition 1
Les configurations légitimes sont de la forme tel que ∃j, ∃v < k
Il n’existe pas de configuration sans jeton.
σi = v ∀i < j et σi = v − 1 mod k ∀j ≤ i ≤ n
Démonstration.
Si aucun des Pi n’a de jeton, alors σ0 = σ1 = · · · = σn−1 . D’où la
contradiction
Proposition 3 :
Proposition 2
Démonstration.
Soit c une configuration contenant un seul jeton, alors le système
converge vers L (l’ensemble des configurations ayant 1 jeton).
Soit Pi le processeur capable d’activer une règle.
Il n’y a pas de configuration terminale (plus de règles activées).
Après son activation, seul le processeur Pi+1 est capable
d’activer la règle et ainsi de suite...
Démonstration.
Soit L l’ensemble des configurations ayant au moins 1 jeton.
Toute activation d’une règle fait passer le jeton d’une machine à la
suivante.
25
25/55
26
26/55
Preuve (3/4).
Preuve (4/4).
Proposition 5 :
Le système converge vers L, l’ensemble des configurations ayant
exactement 1 jeton.
Proposition 4 :
Dans une exécution infinie, P0 est activé une infinité de fois.
Démonstration.
• S(t) = {i : i )= 0 ∧ Pi a le jeton} et F (t) =
Démonstration.
$
i∈S(t) (N
• Il reste à prouver que pour une exécution infinie, l’algorithme
− i)
visite une configuration légitime.
• A chaque pas n’impliquant pas de P0 , F (t + 1) < F (t) : car le
jeton se déplace de 1 ou il disparaı̂t.
• Soit c la configuration où P0 est activé pour la 1ere fois.
• Avant c, σ0 = σn−1 = y , et dans c, σ0 = y + 1 mod k
• 0 ≤ F (t)
• Quand P0 de nouveau activé ? quand σn−1 = y + 1 via σn−2
• Donc dans une exécution infinie, P0 est activé une infinité de
• Comme n > 2, il y a deux processeurs ayant le m̂ numéro.
fois.
• Au fur et à mesure que P0 est activé, le nombre de )=
numéros diminue.
27/55
27
28/55
28
Plan
Technique de preuve
Introduction
Définition
Système auto-stabilisant
Type de communications
La méthode de la fonction de potentiel :
• Définir une fonction POIDS : ens des configurations → N
telle que
Le premier algorithme auto-stabilisant Dijkstra
pour toute configuration légitime L, on a POIDS(L) = 0.
l’exécution de l’algorithme A provoque une décroissance.
Technique de preuve
Si c →A c " alors POIDS(c) > POIDS(c " )
distance dans un graphe.
Composition d’algorithme d’auto-stabilisation
Conclusion
29
29/55
30
30/55
Méthode par raffinement
Plan
Preuve basée que l’exécution est composée de configurations
satisfaisant P1 , puis P2 , . . . , ensuite Pi ,
Introduction
Définition
Système auto-stabilisant
Type de communications
Le premier algorithme auto-stabilisant Dijkstra
P1 P2
Pi
Technique de preuve
configurations légitimes
distance dans un graphe.
Composition d’algorithme d’auto-stabilisation
Conclusion
configurations possibles
31
31/55
32
32/55
Distance dans un graphe
Exemple
Hypothèse
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
• G = (V , E ) un graphe, et un sommet u appelé racine
• Γ(i) : ensemble des voisins de i dans G
5
• Communication de message : mémoire partagée.
1
Objectif de v : trouver la distance entre u et v
2
5
6
5
Algorithme
3
• pour u : true → Distancei := 0
• pour v )= u : true → Distancei := minj∈Γ(i) {Distancej + 1}
33/55
33
34/55
34
Exemple
Exemple
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
5
2
1
5
6
3
5
2
3
5
2
5
3
34
34/55
34
34/55
Exemple
Exemple
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
3
0
1
5
2
3
2
0
3
1
3
2
2
1
34
34/55
34
34/55
Exemple
Exemple
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
1
0
1
3
2
1
2
0
1
34/55
1
1
2
2
2
1
34
34/55
34
Exemple
Exemple
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
1
0
1
2
2
1
2
0
1
1
2
2
2
1
34
34/55
34
34/55
Exemple
Exemple
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
1
0
3
2
2
1
2
0
1
3
2
3
3
1
34
34/55
34
34/55
Exemple
Preuve par rafinement
Lemme
A partir d’une configuration de départ C, l’algorithme converge
vers les états légitimes.
Graphe dont les étiquettes correspondent à la distance entre le
sommet rouge et tous les autres sommets du graphe.
1
0
Démonstration.
Prédicat Pi : tous les sommets à distance i de u connaissent leur
distance entre lui et u.
4
2
3
• Cas de base : i = 0. Comme l’exécution est équitable, u est
activé au moins une fois dans cette exécution (dans c0 ). La
valeur est initialisée à la bonne valeur.
• Cas d’induction :
4
1
• Comme l’exécution est équitable, un sommet v à dist. i est
activé après de ci−1 au moins 1 fois (dans ci" ).
• Comme v voisin d’un sommet à dist. i − 1, la distance est
réactualisée à la bonne valeur.
• et ainsi de suite pour tous les sommets à distance i.
34/55
34
35/55
35
Preuve par rafinement
Preuve par rafinement
Lemme
Lemme
A partir d’une configuration de départ C, l’algorithme converge
vers les états légitimes.
A partir d’une configuration de départ C, l’algorithme converge
vers les états légitimes.
Démonstration.
Démonstration.
Prédicat Pi : tous les sommets à distance i de u connaissent leur
distance entre lui et u.
Prédicat Pi : tous les sommets à distance i de u connaissent leur
distance entre lui et u.
• Cas de base : i = 0. Comme l’exécution est équitable, u est
• Cas de base : i = 0. Comme l’exécution est équitable, u est
activé au moins une fois dans cette exécution (dans c0 ). La
valeur est initialisée à la bonne valeur.
• Cas d’induction :
activé au moins une fois dans cette exécution (dans c0 ). La
valeur est initialisée à la bonne valeur.
• Cas d’induction :
• Comme l’exécution est équitable, un sommet v à dist. i est
• Comme l’exécution est équitable, un sommet v à dist. i est
activé après de ci−1 au moins 1 fois (dans ci" ).
• Comme v voisin d’un sommet à dist. i − 1, la distance est
réactualisée à la bonne valeur.
• et ainsi de suite pour tous les sommets à distance i.
activé après de ci−1 au moins 1 fois (dans ci" ).
• Comme v voisin d’un sommet à dist. i − 1, la distance est
réactualisée à la bonne valeur.
• et ainsi de suite pour tous les sommets à distance i.
35
35/55
35
35/55
Plan
Définition de la composition
Introduction
Définition
Système auto-stabilisant
Type de communications
• Soient deux systèmes S1 = (C1 , →1 ) et S2 = (C2 , →2 ) tels
que toutes variables écrites par S2 n’apparaissent pas dans S1 .
La composition S de S1 et de S2 notée S1 # S2 est un système tel
que
Le premier algorithme auto-stabilisant Dijkstra
Technique de preuve
• son ensemble des configurations S1 × S2
• sa relation de transition est (→1 , ×ID) ∪ (ID× →2 )
distance dans un graphe.
Composition d’algorithme d’auto-stabilisation
Conclusion
36
36/55
37
37/55
Théorème.
Application du théorème
Corollaire
• Soit S1 un algorithme stabilisant vers une spécification P1 .
Il existe un algorithme auto-stabilisant qui effectue l’exclusion
mutuelle dans un anneau anonyme.
• Soit S2 un algorithme stabilisant vers une spécification P2 si
P1 est vraie.
Démonstration.
• Supposons que S1 ne modifie pas les variables de S2 une fois
• Faire la composition des deux algorithmes S1 # S2
• S1 : correspond à l’algo. auto. orientant l’anneau.
• S2 : correspond à l’algo. auto. de circulation de jeton dans un
anneau orienté.
que P1 est vraie.
• Chaque processus exécute alternativement un pas de S1 et de
S2 .
Alors la composition S de S1 et de S2 notée S1 # S2 stabilise vers P2
38/55
• S1 et S2 satisfont les hypothèses du précédent théorème.
38
39/55
39
Orientation d’un anneau uniforme.
Idée de l’algorithme
• les processus envoient des jetons en fonction de leur
orientation
• lors de rencontre de deux jetons, ils disparaissent en modifiant
les orientations.
• Objectif : orienter les arêtes de l’anneau de telle façon que
l’anneau devient un anneau orienté.
• Hypothèse :
•
•
•
•
•
même code sur tous les processus.
anneau anonyme.
chaque processus possède deux liens :prec et succ.
Le mode de communication : par registres.
Le démon : centralisé et équitable
40
40/55
41
41/55
Description des variables et des états de l’algorithme
Différentes règles : règle (1)
Sp ∈ {S, R, I }
1. {Sp = I ∧ Sq = S ∧ lqp = preq} →
Variables locales
S : Send (prêt à émettre le jeton)
Sp ← R; si lpq = succ alors échanger succ et pred.
R : Receive (prêt à recevoir le jeton)
Sq = S
I : Idle
Sp = I
Sq = S
Sp = R
Un processus p tient un jeton
=⇒
1. S’il est dans l’état S.
2. S’il est dans l’état R et que son prédécesseur :
Actions q p p
−
→
−
→
(1)
S I R
p accepte le jeton et que q soit son prédécesseur
2.1 n’est pas dans l’état S.
2.2 est dans l’état S mais succ(prec(p)) )= p.
42
42/55
43
43/55
Différentes règles : règle (2)
Différentes règles : règle (3)
Sp ∈ {S, R, I }
3. {Sp = R ∧ lpq = pred ∧ ¬(Sq = S ∧ lqp = succ)} →
Sp ∈ {S, R, I }
2. {Sp = S ∧ lpq = succ ∧ Sq = R ∧ lqp = preq} →
Sp ← S;
Sp ← I ; transmission de jeton
Sq = R
Sp = S
Sq = R
Sq = I
Sp = I
Sq = I
Sp = S
=⇒
=⇒
Actions
q
−
→
(3)
¬S
p constate que q devient Iddle et il
Actions q
p
p
←
− ←
− ←
−
R S
I
(2)
p constate que q est son successeur et accepte son jeton.
44/55
Sp = R
44
45/55
p
p
→
−
→ −
R
S
se prépare à émettre un jeton.
45
Différentes règles : règle (4)
Différentes règles : règle (5)
Sp ∈ {S, R, I }
4. {Sp = Sq = S ∧ lpq = lqp = succ} →
Sp ∈ {S, R, I }
5. {Sp = Sq = I ∧ lpq = lqp = succ} →
Sp ← R; échanger succ et pred.
Sq = S
Sp = S
Sp ← S;
Sq = S
Sp = R
Sq = I
Sp = I
Sq = I
=⇒
Sp = S
=⇒
Actions q
p
p
−
→ ←
− −
→
(4)
S
S
R
p accepte le jeton de q et détruit son jeton
Actions
(5)
q
−
→
I
p
←
−
I
p
←
−
S
p observe un problème d’orientation et il crée un jeton.
46
46/55
47
47/55
Récapitulatif de l’algorithme
Etude de l’algorithme
Actions
(1)
(2)
(3)
(4)
(5)
Sp ∈ {S, R, I }
1. {Sp = I ∧ Sq = S ∧ lqp = preq} →
Sp ← R; si lpq = succ alors échanger succ et pred.
2. {Sp = S ∧ lpq = succ ∧ Sq = R ∧ lqp = preq} →
Sp ← I ; transmission de jeton
3. {Sp = R ∧ lpq = pred ∧ ¬(Sq = S ∧ lqp = succ)} →
Sp ← S;
Actions
(1)
(2)
(3)
(4)
(5)
Sp ← R; échanger succ et pred.
5. {Sp = Sq = I ∧ lpq = lqp = succ} →
Sp ← S;
48
q
•
×
??
•
×
p
×
•
•
•
×
q
−
→
S
←
−
R
−
→
¬S
−
→
S
−
→
I
p
I
←
−
S
−
→
R
←
−
S
←
−
I
49/55
q
•
×
??
•
×
p
×
•
•
•
×
→
→
→
→
→
→
• Après (2) : (1) ou (5)
• Après (3) : (1) ou (4)
• Après (4) : (3)
• Après (5) : (2) ou (4)
→
→
→
→
→
→
q
•
•
=
•
×
p
×
×
•
×
•
49
Actions
(1)
(2)
(3)
(4)
(5)
• Après (1) : (3)
• Après (2) : (1) ou (5)
• Après (3) : (1) ou (4)
• Après (4) : (3)
• Après (5) : (2) ou (4)
Mouvement des jetons
Actions
(1)
(2)
(3)
(4)
(5)
• Après (1) : (3)
Etude de l’algorithme
Enchaı̂nement des actions
p
−
→
R
←
−
I
−
→
S
−
→
R
←
−
S
Enchaı̂nement des actions
p
−
→
R
←
−
I
−
→
S
−
→
R
←
−
S
49/55
Etude de l’algorithme
Actions
(1)
(2)
(3)
(4)
(5)
p
I
←
−
S
−
→
R
←
−
S
←
−
I
Mouvement des jetons
4. {Sp = Sq = S ∧ lpq = lqp = succ} →
48/55
q
−
→
S
←
−
R
−
→
¬S
−
→
S
−
→
I
q
−
→
S
←
−
R
−
→
¬S
−
→
S
−
→
I
p
I
←
−
S
−
→
R
←
−
S
←
−
I
Enchaı̂nement des actions
p
−
→
R
←
−
I
−
→
S
−
→
R
←
−
S
• Après (1) : (3)
• Après (2) : (1) ou (5)
• Après (3) : (1) ou (4)
• Après (4) : (3)
• Après (5) : (2) ou (4)
Mouvement des jetons
q
•
•
=
•
×
p
×
×
•
×
•
Actions
(1)
(2)
(3)
(4)
(5)
49
49/55
q
•
×
??
•
×
p
×
•
•
•
×
→
→
→
→
→
→
q
•
•
=
•
×
p
×
×
•
×
•
49
Etude de l’algorithme
Actions
(1)
(2)
(3)
(4)
(5)
q
−
→
S
←
−
R
−
→
¬S
−
→
S
−
→
I
p
I
←
−
S
−
→
R
←
−
S
←
−
I
Etude de l’algorithme
Enchaı̂nement des actions
p
−
→
R
←
−
I
−
→
S
−
→
R
←
−
S
Actions
(1)
(2)
(3)
(4)
(5)
• Après (1) : (3)
• Après (2) : (1) ou (5)
• Après (3) : (1) ou (4)
• Après (4) : (3)
• Après (5) : (2) ou (4)
Mouvement des jetons
Actions
(1)
(2)
(3)
(4)
(5)
q
•
×
??
•
×
p
×
•
•
•
×
→
→
→
→
→
→
q
−
→
S
←
−
R
−
→
¬S
−
→
S
−
→
I
p
I
←
−
S
−
→
R
←
−
S
←
−
I
Enchaı̂nement des actions
p
−
→
R
←
−
I
−
→
S
−
→
R
←
−
S
• Après (1) : (3)
• Après (2) : (1) ou (5)
• Après (3) : (1) ou (4)
• Après (4) : (3)
• Après (5) : (2) ou (4)
Mouvement des jetons
q
•
•
=
•
×
p
×
×
•
×
•
Actions
(1)
(2)
(3)
(4)
(5)
49
49/55
q
•
×
??
•
×
p
×
•
•
•
×
→
→
→
→
→
→
q
•
•
=
•
×
p
×
×
•
×
•
49
49/55
Preuve (1/4)
Preuve (2/4)
A prouver la post-condition φ :
Soit L des configurations légitimes.
Lemme (propriété de correction du système)
pour tout processeur p et q, pred(p) = q ↔ succ(q) = p
1. Si σ ∈ L alors φ(σ)
Soit L des configurations légitimes (configuration où tous les
processeurs pointent dans la même direction).
2. Si σ ∈ L et σ ! σ # alors σ # ∈ L
Démonstration.
• Le point (1) est prouvé par définition.
• Seules les règles (1), (2) et (3) sont applicables et elles ne
modifient pas les orientations
50
50/55
51
51/55
Preuve (3/4)
Preuve (3/4)
Lemme
Lemme
Une configuration terminale (aucune règle à déclencher) est
légitime.
Une configuration terminale (aucune règle à déclencher) est
légitime.
Démonstration.
Démonstration.
• Soit σ une configuration terminale.
• Soit σ une configuration terminale.
• Par contradiction, supposons que σ n’est pas orienté :
• Par contradiction, supposons que σ n’est pas orienté :
• aucun processus n’est dans R (sinon application de (2) ou (3))
• aucun processus n’est dans R (sinon application de (2) ou (3))
Cela signifie que 2 processus pointent l’un vers l’autre.
52/55
Cela signifie que 2 processus pointent l’un vers l’autre.
• Si un des deux sont dans I ,
• Si un des deux sont dans I ,
1. si l’autre dans S, alors application de (1)
2. si l’autre dans I , alors application de (5)
• sinon les deux sont dans S : application de (4)
• sinon les deux sont dans S : application de (4)
52
52/55
52
Preuve (3/4)
Preuve (4/4)
Lemme
Théorème
Une configuration terminale (aucune règle à déclencher) est
légitime.
L’algorithme converge vers les états légitimes.
Démonstration.
Démonstration.
• Considérons la règle 5.
• c’est la seule règle qui crée un jeton
• les autres règles ne peuvent pas déclencher la règle 5.
• Son exécution est déclenchée par une mauvaise initialisation.
• Soit σ une configuration terminale.
• aucun processus n’est dans R (sinon application de (2) ou (3))
• Par contradiction, supposons que σ n’est pas orienté :
• Donc le nombre de jeton est bornée par n le nbre de processus.
Cela signifie que 2 processus pointent l’un vers l’autre.
• Si un jeton parcourt une distance n, alors il est orienté.
• Si un des deux sont dans I , application de (1) ou (5)
• Le nombre de pas où le jeton se déplace sans qu’une
configuration soit atteinte est au plus n(n − 1)
• sinon les deux sont dans S : application de (4)
52
52/55
53
53/55
Plan
Récapitulatif
Introduction
• Soit S = (C , →) un système distribué où
C : ens des configurations et →: relation de transition.
Définition
Système auto-stabilisant
Type de communications
• Soit L ⊆ C : ensemble de configurations légitimes
Le premier algorithme auto-stabilisant Dijkstra
Un algorithme est auto-stabilisant si
Technique de preuve
1. à partir toutes les configurations possibles γ, son exécution
converge vers une configuration légitime.
distance dans un graphe.
2. à partir toutes les configurations légitimes γ, son exécution est
composée uniquement de configurations légitimes.
Composition d’algorithme d’auto-stabilisation
Conclusion
54/55
54
55/55
55
Téléchargement