Algorithmique - WordPress.com

publicité
M1 RSD : Algorithmique des systèmes et applications réparties
Feuille d’exercices n°3 : Algorithme d’Élection de la brute (Bully)
L’algorithme de Chang et Roberts vue en cours ne tolère pas les pannes et sa complexité est en O(n) (nombre de
messages nécessaires pour le protocole d’élection entre 2n et 3n - 1).
L’algorithme d’Élection de la brute (Bully) se base sur une demande d’élection par inondation. Il se caractérise
par une transmission fiable et un système synchrone (timeouts pour détecter les pannes). Il permet donc
l’occurrence de pannes dans tous les processus durant l’élection.
Le schéma suivant indique le temps nécessaire pour détecter la panne d’un processus.
DélaiTrans.
DélaiTrans.
DélaiTrait.
T = 2 DélaiTrans. + DélaiTrait.
Dans cet algorithme, chaque processus connaît tous les autres processus qui ont un plus grand identificateur que
lui et peut communiquer avec eux. Il y a aussi trois types de messages :
 Élection : pour déclencher une élection.
 OK : pour répondre à un message Élection.
 Coordinateur : pour annoncer le nouvel coordinateur.
Le principe de l’algorithme est comme suit :
Initialisation : Élu := Null (pour tous les processus).
Déclenchement d’une élection par pi :
Envoie le message (Élection, pi) à pj, sous la condition pj > pi.
Attendre l’arrivée des messages (OK, pj) depuis pj
Si aucun message (OK, pj) n’arrive durant T Alors
Élu := pi
envoie le message (Coordinateur, pi) à pj, sous la condition pj < pi
Sinon attendre l’arrivée d’un message (coordinateur)
FinSi
Réception d’un message (Élection, pj ) à pi :
Envoie le message (OK, pi) à pj
Déclenche une élection à moins qu’il en ait déjà déclenché une.
Réception d’un message (Coordinateur, pj) : Élu := pj
Questions :
1. Quel est le type de canal de communication utilisé dans cet algorithme? Pourquoi?
2. Appliquez cet algorithme sur le système distribué suivant dans le cas ou c’est le processus 10 qui lance l’élection
après la détection de la panne du processus 20.
10
15
20
9
17
3. Quelle est la complexité de cet algorithme dans le meilleur des cas et dans le pire des cas?
Téléchargement