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?