Le model-checker Spin
C´edric Meuter
1 Election de leader dans un token ring
Un token ring (ou anneau `a jeton) est une topologie de r´eseau dans laquelle chaque station
est connect´ee `a deux autres stations (gauche et droite) en anneau. Cet anneau peut ˆetre uni-
ou bi-directionel. Dans un tel token ring, l’acc`es au esaux est contrˆol´e par un jeton (token).
Lorsqu’une station veut ´emettre un message sur le r´eseau, elle doit attendre de disposer de
ce jeton pour pouvoir le faire. Cependant, il arrive qu’un tel jeton soit perdu (panne d’une
station, erreur de transmission, ...). Dans de tels cas, il est indispensable de reg´en´erer un jeton
unique. Pour d´ecider de quelle station ce jeton va ˆetre ´emis, il est n´ecessaire d’initier un protocol
d’´election de leader.
2 Algorithme de Dolev, Klawe & Rodeh
Dans le cadre de cette s´eance, nous nous placerons dans le cas d’un token ring unidirectionel,
et o`u les communications entre station sont suppos´ees fiables. Chaque station dispose d’une
identificateur entiers (id). Dans ce cas, Dolev, Klawe et Rodeh on mis au point un algorithme
d’´election de leader. L’id´ee est de choisir parmis les diff´erentes stations celle dont l’id est le
plus grand. Initiallement, chaque station est dans ´etat actif (c`ad participant au protocol). D`es
qu’une station d´ecouvre qu’elle n’est pas celle dont lid est le maximum global, elle passe en
mode passif, et n’agit plus alors que comme un relai pour les messages. L’algorithme utilise pour
chaque station deux variables enti`eres : left et max, ainsi que deux types de messages : <1, i>
et <2, i> ou iest un entier. Notons que la variables max contient initiallement l’identificateur
de la station. L’agorithme, tel que pr´esent´e dans l’article original [DKR81] est repris `a la figure
1.
A0 Send a message <1, max>
A1 If a message <1, i> arrives do as follows :
1 If i6=max then send the message <2, i>, and assign ito left
2 Otherwise, halt, max is the global maximum
A2 If a message <2, j> arrives do as follows :
1 If left is greater that both jand max then assign left to max and
send the message <1, max>.
2 Otherwise becomme passive.
Fig. 1 – Algorithme de Dolev, Klawe et Rodeh
1
3 Exercices
Impl´ementez en promela l’algorithme de la figure 1.
Sous cette version, seul une des stations connait le moment o`u le protocol se termine.
Modifiez le mod`ele promela afin de rem´edier `a cette situation.
erifier formellement que ce protocol fonctionne correctement, `a savoir qu’une et une seule
station soit leader `a la fin du protocoles.
R´ef´erences
[DKR81] Danny Dolev, Maria Klawe and Michael Rodeh. An O(n log n)Unidirectional Dis-
tributed Algorithm for Extrema Finding in Circle, Journal of Algorithmics, 1981
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !