Master Rseaux et Systmes Distribus RSD Algorithmique des
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes et applications réparties Accord et coordination Élection d’un maître Badr Benmammar badr. benmammar@gmail. com
Accord et coordination q Une famille de problèmes en algorithmique distribuée. q Catégories de problèmes de cette famille : q Accord sur l’accès à une ressource partagée q Exclusion mutuelle distribuée q Accord sur l’ordre d’envoi de messages à tous q Diffusion atomique q Accord sur un processus jouant un rôle particulier q Élection d’un maître q Accord sur une valeur commune q Consensus q Accord sur une action à effectuer par tous ou personne q Transaction 2
Accord sur un processus jouant un rôle particulier « Élection d’un maître » 3
Plan q Élection : motivations q Élection : principes q Phases d’Élection q Phase de préparation q Phase de décision q Phase de proclamation du résultat q Algorithmes d’Élections q Algorithme de Chang et Roberts (1979) 4
Élection : motivations q De nombreux algorithmes de contrôle, bien que dits distribués, sont en fait centralisés dans le sens qu’un processus particulier joue le rôle de coordinateur et effectue certains services à la demande des autres processus. q C’est le schéma du modèle « client-serveur » . q Ce type d’algorithme présente un inconvénient majeur : la panne du processus coordinateur qui entraîne l’arrêt du fonctionnement du système. q Il faut alors que les processus en état de fonctionnement puissent s’entendre pour décider lequel d’entre eux prend désormais le rôle de coordinateur. q Cet accord s’obtient grâce aux algorithmes d’élection 5
Élection : principes q Les protocoles d’élection peuvent aussi être utilisés chaque fois qu’un processus, sans nécessairement être coordinateur, joue un rôle particulier. q Les processus sont en général identifiés par des numéros et on décide que le processus qui joue un rôle à part est celui qui possède le plus grand numéro. q Un algorithme d’élection a donc pour objectif de déterminer le processus de plus grand numéro. 6
Phases d’Élection q Phase de préparation, dans laquelle sont déterminés les processus participant à l’élection ainsi que les candidats. q Phase de décision, dans laquelle un processus candidat est désigné par un certain mécanisme. q Possédant le plus grand numéro, par exemple. q Phase de proclamation du résultat, où chaque processus participant est informé du processus élu. 7
Algorithmes d’Élections q But : élire un seul processus Pi parmi un groupe de processus P 1…Pn. q Utilité : élire un processus maître, un coordinateur ou un serveur central. q Chaque processus Pi maintient une variable Élui (null s’il n’est pas l’élu). q Propriétés à satisfaire : pi, q Sûreté : Élui = null ou Élui = Vrai (processus élu). q Vivacité : Pi participe et aura Élui = null ou Élui = Vrai. 8
Algorithme de Chang et Roberts (1979) q Topologie en anneau unidirectionnel entre les processus, où chaque processus sait adresser un message à son voisin de gauche. q Un ou plusieurs processus peuvent décider de lancer un protocole d’élection. 9
Algorithme de Chang et Roberts (1979) q Les messages sont de deux types : q Les messages de type élection : un processus envoie un tel message soit quand il décide de lancer une élection, soit quand il devient participant. q Les messages de type élu qui font circuler, après qu’il a été déterminé, le plus grand numéro de processus ; un processus qui reçoit un message de type élection portant son numéro sait qu’il est celui de plus grand numéro et envoie le premier message de type élu ; ce message est alors retransmis en faisant le tour de l’anneau. 10
Algorithme de Chang et Roberts (1979) q Initialisation pour tous les processus : q Participanti : = FAUX q Élui : = Null q Déclenchement d’une élection par Pi : q Participanti : = VRAI q Envoie le message <élection, Pi> à son voisin 11
Algorithme de Chang et Roberts (1979) Réception d’un message d’élection <élection, Pi> à Pj : Si Pi > Pj Alors q Envoie le message <élection, Pi> à son voisin q Participantj : = VRAI Sinon (//deux cas) Si (Pi < Pj ET Participantj = FAUX) Alors q Alors Envoie le message <élection, Pj> à son voisin q Participantj : = VRAI Sinon (Pi = Pj) q Éluj : = VRAI q Participantj : = FAUX q Envoie le message <élu, Pj> à son voisin (initié la proclamation des résultats) Fin. Si 12
Algorithme de Chang et Roberts (1979) q Réception d’un message <élu, Pj> à Pi : q Participanti : = FAUX q Si (Pi Pj) alors Envoie le message <élu, Pj> à son voisin (proclamer le résultat) q Fin. SI 13
Exemple q Initialisation : 15 Participant : = FAUX Élu : = Null 13 10 Participant : = FAUX Élu : = Null 20 Participan : = FAUX Élu : = Null 14
Exemple q Processus 15 déclenche l’élection. Participant : = VRAI 15 <é ion t lec , 1 5> 13 10 20 15
Exemple q Processus 15 déclenche l’élection. 15 13 Participant : = VRAI le <é 20 ct io n, 15 > 10 16
Exemple q Processus 15 déclenche l’élection. 15 13 10 lec <é 0> 2 n, tio 20 Participant : = VRAI 17
Exemple 15 <é lec tio n, 2 0> q Processus 15 déclenche l’élection. Participant : = VRAI 13 10 20 18
Exemple q Processus 15 déclenche l’élection. Participant : = VRAI 15 <é le ct io n, 20 > 13 10 20 19
Exemple q Processus 15 déclenche l’élection. 15 13 10 Participant : = VRAI > 20 e l <é io ct 0 , 2 n 20
Exemple q Processus 15 déclenche l’élection. 15 13 10 lu, <é > 20 20 Élu : = VRAI Participant : = FAUX 21
Exemple q Processus 15 déclenche l’élection. > 0 , 2 15 lu é < Participant : = FAUX 13 10 20 22
Exemple q Processus 15 déclenche l’élection. Participant : = FAUX 15 , 2 lu <é 0> 13 10 20 23
Exemple q Processus 15 déclenche l’élection. 15 Participant : = FAUX 13 <é 20 lu , 2 0> 10 24
Exemple q Processus 15 déclenche l’élection. 15 10 Fin de l’Election: le processus 20 est élu 13 20 25
Algorithme de Chang et Roberts (1979) Réception d’un message d’élection <élection, Pi> à Pj : Si Pi > Pj Alors q Envoie le message <élection, Pi> à son voisin q Participantj : = VRAI Sinon (//deux cas) Si (Pi < Pj ET Participantj = FAUX) Alors q Alors Envoie le message <élection, Pj> à son voisin q Participantj : = VRAI Sinon (Pi = Pj) q Éluj : = VRAI q Participantj : = FAUX q Envoie le message <élu, Pj> à son voisin (initié la proclamation des résultats) Fin. Si 26
Exemple q Processus 15 déclenche l’élection. Participant : = VRAI 15 <é , 1 ion t lec 5> 13 10 20 27
Exemple q Processus 15 déclenche l’élection. Participant : = VRAI n, tio lec <é 15 15 > 13 Participant : = VRAI <é 20 le ct io n, 15 > 10 28
Exemple q Processus 10 déclenche une nouvelle élection. 15 <é n tio lec c le <é n tio 0> 1 , Participant : = VRAI 5> , 1 Participant : = VRAI 13 10 15 > Participant : = VRAI ct le 20 <é 15 a déjà envoyé son identifiant io n, 10 : aucune chance d’être élu. 29
Exemple q Processus 10 déclenche une nouvelle élection. , 15 tio lec le é < Participant : = VRAI <é on i t c > 10 1 n, Participant : = VRAI 5> 13 le <é 20 ct io n , 1 10 : aucune chance d’être élu. 15 a déjà envoyé son identifiant Participant : = VRAI 5> 10 30
Evaluation q Du point de vue de la performance en temps, il faut toujours le temps d’un tour d’anneau entre le moment où le vainqueur sait qu’il est vainqueur et la fin du protocole. 15 Participant : = VRAI 13 10 lu, <é > 20 20 20, il sait que c’est lui le vainqueur e l <é io ct 0 , 2 > n 31
Evaluation q On peut cependant distinguer deux cas extrêmes : q Le futur vainqueur lance en premier (éventuellement en même temps que d’autres processus) une élection ; il faut alors le temps de la transmission de n messages (le tour de l’anneau) pour qu’il sache qu’il est vainqueur. q 2 n messages pour atteindre la fin de l’élection. 15 13 10 <é lec tio n, 20 > 20 Participant : = VRAI 32
Evaluation q On peut cependant distinguer deux cas extrêmes : q Le futur vainqueur est à droite d’un unique processus déclenchant l’élection ; il faudra alors le temps de n – 1 messages pour que le futur vainqueur devienne participant puis le temps de n messages pour que celuici découvre qu’il est vainqueur, puis le temps de n messages pour atteindre la fin du protocole d’élection (envoyer le message élu pour proclamer le résultat) soit le temps de la transmission de 3 n – 1 messages. q Dans tous les cas, le temps requis est en O(n). 20 Participant : = VRAI 13 15 <é lec tio n, 1 3> 10 33
- Slides: 33