Algorithmique Distribuée Élection distribuée

Documents pareils
L exclusion mutuelle distribuée

Introduction aux algorithmes répartis

Propagation sur réseau statique et dynamique

Chapitre 4 : Exclusion mutuelle

Examen Médian - 1 heure 30

Cours de Systèmes d Exploitation

Recherche dans un tableau

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Pourquoi l apprentissage?

Algorithmique répartie

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Vers l'ordinateur quantique

KL5121. Pour activer des sorties en fonction de la position d'un codeur

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Cours Programmation Système

LE PROBLEME DU PLUS COURT CHEMIN

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Ebauche Rapport finale

Application 1- VBA : Test de comportements d'investissements

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Algorithmique et programmation : les bases (VBA) Corrigé

Programmation parallèle et distribuée

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Parallélisme et Répartition

Correction TD algorithmique

Les arbres binaires de recherche

Algorithmes d exclusion mutuelle : tolérance aux fautes et adaptation aux grilles

Ordonnancement temps réel

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Peut-on tout programmer?

Un ordonnanceur stupide

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours de Génie Logiciel

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Chapitre 5 : Flot maximal dans un graphe

Programmation C++ (débutant)/instructions for, while et do...while

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

Sommaire. Couverture de zone de surveillance dans les réseaux de capteurs. De quoi parle-t-on ici (1/2)? Objectif. De quoi parle-t-on ici (2/2)?

Exercices de dénombrement

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

Organigramme / Algorigramme Dossier élève 1 SI

Algorithmique des Systèmes Répartis Protocoles de Communications

Introduction à la programmation concurrente

Présentation du PL/SQL

Livre blanc. CRM: Quels sont les bénéfices pour votre entreprise?

Cours A7 : Temps Réel

Partie 7 : Gestion de la mémoire

Paiement sécurisé sur Internet. Tableau de bord Commerçant


Les réseaux cellulaires

Principe de symétrisation pour la construction d un test adaptatif

Algorithmique & programmation

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

... /5. Bases de Données I (J. Wijsen) 23 janvier 2009 NOM + PRENOM : Orientation + Année : Cet examen contient 11 questions.

Algorithmes d'apprentissage

La prise illégale d intérêts

Programmation linéaire

Corrigé des TD 1 à 5

Master Poly Trader. Manuel d utilisateur. Group IV Benoît Perroud Marius Erni Lionel Matthey David Wenger Lotfi Hussami

PREINSCRIPTION EN LIGNE

Chapitre 4 Pierre, papier, ciseaux

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Poudlard But Matériel : Mise en place Prologue d'emplacements différents

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Travail collaboratif avec OpenOffice Texte (Writer)

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Algorithmique avec Algobox

TRANSMETTEUR TELEPHONIQUE TTX = SINTEL X

CAHIER DE S CHARGE S Remote Workload Manager

REGLEMENT DU PROGRAMME INTERNATIONAL DE LA SOLVAY BRUSSELS SCHOOL OF ECONOMICS & MANAGEMENT

PROGRAMMATION EVENEMENTIELLE sur EXCEL

HYBIRD 120 GE POUR LES NULS

18 TCP Les protocoles de domaines d applications

Systèmes et algorithmes répartis

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Mystères au PLUS! Jeu pédagogique pour les Sciences de la Vie et de la. Frédéric BLASSELLE, PLUS de Cappelle-la-Grande

Network musical jammin

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

Probabilités conditionnelles Loi binomiale

Transactionnel et transactionnel réparti. Source R.CHEVANCE G.Gardarin

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Chapitre 1 Le routage statique

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Java Licence Professionnelle CISII,

Régime de retraite patronal-syndical (Québec) de l'association internationale des machinistes (A.I.M.)

Pourquoi le projet VoIp à la SIC

Concept de machine virtuelle

STATUT DU TRIBUNAL INTERNATIONAL DU DROIT DE LA MER. Article premier Dispositions générales SECTION 1. ORGANISATION DU TRIBUNAL. Article 2 Composition

Arbres binaires de recherche

CHAPITRE VIII : Les circuits avec résistances ohmiques

Problèmes liés à la concurrence

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

I. Cas de l équiprobabilité

Transcription:

Algorithmique Distribuée Élection distribuée Laurent PHILIPPE Master 2 Informatique UFR des Sciences et Techniques 2013/2014 Laurent PHILIPPE Élection distribuée 1 / 35

Sommaire Introduction 1 Introduction 2 3 4 5 Laurent PHILIPPE Élection distribuée 2 / 35

Références Introduction Distributed Systems, Principle and Paradigms, A.Tanenbaum, Pearson Ed. Une introduction aux principes des systèmes répartis (3 tomes), M. Raynal, EyrollesEd. (1991) Cours de C.Kaiser du Cnam. Introduction to Distributed Algorithms, G. Tel, Cambridge University Press Laurent PHILIPPE Élection distribuée 3 / 35

Algorithmes d'élection Objectif Elire un processus parmi d'autres Pourquoi? En AD : algorithmes utilisent un coordinateur ou initiateur Exemple : algorithme d'exclusion mutuelle centralisé Le plus souvent : coordinateur = processus de plus grand numéro Panne du coordinateur : nommer un nouveau coordinateur élection Laurent PHILIPPE Élection distribuée 4 / 35

Algorithmes d'élection : systèmes sans mobilité, ni panne Hypothèses Chaque processus a un numéro unique (ex : adresse réseau) Chaque processus connaît le numéro de tous les autres processus Mais un processus ne sait pas qui est actif et qui ne l'est pas Les réponses aux messages sont reçues au bout d'un temps borné par TEMPO Condition déclanche une élection La condition devient vraie sur 1 ou plus processus, pas forcément tous (par exemple le coordinateur ne répond plus) Laurent PHILIPPE Élection distribuée 5 / 35

Algorithmes d'élection Exercice Proposer un algorithme d'élection Laurent PHILIPPE Élection distribuée 6 / 35

Algorithmes d'élection Diérentes topologies Arbre ou arbre de recouvrement Anneau Quelconque Laurent PHILIPPE Élection distribuée 7 / 35

Sommaire Introduction 1 Introduction 2 3 4 5 Laurent PHILIPPE Élection distribuée 8 / 35

Algorithme du plus fort ou Bully algorithm (Garcia-Molina) Déclanchement : Quand un processus P s'aperçoit que le coordinateur ne répond plus à ses requêtes (time-out sur TEMPO), il lance l'algorithme d'élection Lancement d'une élection par P : Envoi d'un message ELECTION à tous les autres processus dont le numéro est plus grand que le sien Réception d'un message ELECTION depuis P par un processus Q : Le processus Q envoie un message ACK à P lui signiant qu'il est actif A son tour Q, lance une élection si ce n'est pas déjà fait Laurent PHILIPPE Élection distribuée 9 / 35

Algorithme du plus fort ou Bully algorithm Sur le processus P : Si aucun processus ne lui répond avant TEMPO, P gagne l'élection et devient le coordinateur Si un processus de numéro plus élevé répond, c'est lui qui prend le pouvoir. Le rôle de P est terminé. Annonce de l'élu Le nouveau coordinateur envoie un message à tous les participants pour les informer de son rôle. L'application peut alors continuer à s'exécuter Laurent PHILIPPE Élection distribuée 10 / 35

Algorithme du plus fort ou Bully algorithm Réveil d'un processus inactif Déclenche une élection S'il détient le plus grand numéro de processus en cours de fonctionnement, il gagne l'élection et devient le nouveau coordinateur Laurent PHILIPPE Élection distribuée 11 / 35

Algorithme du plus fort ou Bully algorithm Déroulement de l'algorithme Application composée de 8 processus numérotés de 0 à 7 Processus de numéro 7 tombe en panne, Processus de numéro 4 est le premier à détecter cette panne Laurent PHILIPPE Élection distribuée 12 / 35

Sommaire Introduction 1 Introduction 2 3 4 5 Laurent PHILIPPE Élection distribuée 13 / 35

Algorithme pour un arbre Principe Un (ou plusieurs) processus détecte la panne du coordinateur Il informe l'ensemble de processus du début de l'algorithme avec un message < wakeup > car la seconde partie de l'algorithme doit être initié par toutes les feuilles Lorsque le message < wakeup > a parcouru tout l'arbre l'élection commence les feuilles émettent un message le processus ayant le plus grand numéro est élu Laurent PHILIPPE Élection distribuée 14 / 35

Algorithme pour un arbre Variables var ws p : booléen init faux (* ws p est vrai si p est réveillé *) wr p : integer init 0 (* compte les messages de reveil reçus *) req p [q], q Neigh p : booléen init faux (* vrai si p a reçu un message de q *) v p : numéro de processus init p (* plus grand processus *) etat p : (sleep, leader, lost) init sleep V p : voisins du processus Laurent PHILIPPE Élection distribuée 15 / 35

Algorithme pour un arbre Partie réveil : début si p est initiateur alors ws p := true pour tant que q Neigh q faire envoie < wakeup > à q wr p < V p faire reçoit < wakeup > si ws p = faux alors ws p := true pour q Neigh q faire envoie < wakeup > à q n Laurent PHILIPPE Élection distribuée 16 / 35

Algorithme pour un arbre Partie election : début n (q : req p [q] = faux) > 1 faire reçoit < tok, r > de q tant que rec p [q] := vrai v p := max(v p, r ) envoie < tok, v p > à q 0 tel que rec q [q 0 ] est faux reçoit < tok, v p > de q 0 v p := max(v p, r ) si v p = p alors state p := leader sinon state p := lost pour q Neigh p, q q 0 faire envoie < tok, v p > à q Laurent PHILIPPE Élection distribuée 17 / 35

Sommaire Introduction 1 Introduction 2 3 4 5 Laurent PHILIPPE Élection distribuée 18 / 35

Un algorithme pour anneau Structure d'anneau Processus sont organisés en anneau virtuel Chaque processus connaît la structure de l'anneau (donc son successeur Suivant p ) Comme pour l'arbre l'anneau peut être virtuel, et pour l'application, les processus communiquent entre eux directement, sans passer par l'anneau Laurent PHILIPPE Élection distribuée 19 / 35

Un algorithme pour anneau Exercice Proposer un algorithme pour un anneau Quelle est sa complexité? Laurent PHILIPPE Élection distribuée 20 / 35

Algorithme d'élection de LeLann Hypothèses et Principe Les canaux de communication sont unidirectionnels et FIFO Un processus initiateur (qui a détecté une panne) envoie un jeton contenant son identité Un initiateur génère un jeton avant d'en avoir reçu un Chaque processus initiateur calcule une liste des initiateurs Lorsqu'un processus reçoit un jeton sans en avoir produit un il n'en initie pas un nouveau Lorsqu'un initiateur reçoit son propre jeton, il a déjà reçu tous les jetons des autres initiateurs, il calcule donc le vainqueur Laurent PHILIPPE Élection distribuée 21 / 35

Algorithme d'élection de LeLann var Liste p sous-ensemble de P init {p} début etat p (init, leader, perdu, sleep) si p est intiateur alors etat p := init ; envoie < tok, p > à Suivant p reçoit < tok, q > sinon tant que q p faire Liste p := Liste p {q} envoie < tok, q > à Suivant p reçoit < tok, q > if p = max (Liste p ) then etat p := leader else etat p := perdu tant que vrai faire reçoit < tok, q > envoie < tok, q > à Suivant p if etat p = sleep then etat p := perdu Laurent PHILIPPE Élection distribuée 22 / 35

Algorithme d'élection de LeLann Exercice Déroulement de l'algorithme Application composée de 8 processus numérotés de 0 à 7 Processus 7 est initialement le coordinateur Coordinateur tombe en panne, Processus 2 détectent cette panne Laurent PHILIPPE Élection distribuée 23 / 35

Algorithme d'élection de LeLann Questions Comment gère-t-on plusieurs élections simultanées? Comment un processus qui reprend son activité connaît le coordinateur? Laurent PHILIPPE Élection distribuée 24 / 35

Algorithme d'élection de LeLann Propriétés Complexité de l'algorithme : Nombre de messages :O(N 2 ) (N initiateurs * N processus dans l'anneau) Temps : 2N 1 Finaliser par un dernier message pour annoncer la n de l'élection aux perdants, les initiateurs eux connaissent le leader Laurent PHILIPPE Élection distribuée 25 / 35

Algorithme d'élection de Chang et Roberts Hypothèses et Principe Evolution de l'algorithme de Le Lann Supprime les jetons des processus qui ne sont pas élus : ceux qui ont un numéro de processus plus petit Un initiateur perd quand il reçoit un jeton qui porte un numéro supérieur Un processus devient leader lorsqu'il reçoit son jeton Laurent PHILIPPE Élection distribuée 26 / 35

Algorithme d'élection de Chang et Roberts var etat p début si p est intiateur alors etat p := cand ; envoie < tok, p > à Suivant p tant que etat p leader faire reçoit < tok, q > if q = p then etat p := leader else if q > p then if etat p = cand then etat p := perdu envoie < tok, q > à Suivant p else tant que vrai faire reçoit < tok, q > envoie < tok, q > à Suivant p if etat p = sleep then etat p := perdu n Laurent PHILIPPE Élection distribuée 27 / 35

Algorithme d'élection Chang et Roberts Exercice Déroulement de l'algorithme Application composée de 8 processus numérotés de 0 à 7 Processus 7 est initialement le coordinateur Coordinateur tombe en panne, Processus 2 détectent cette panne Laurent PHILIPPE Élection distribuée 28 / 35

Algorithme d'élection de Chang et Roberts Fin de l'algorithme Les processus avec un état perdu sont en attente innie Le processus leader doit terminer l'élection en envoyant un message elu aux autres participants Qaund un processus participant reçoit un message elu il sort de la boucle tantqueetat p leader, il enregistre le leader et il fait suivre le message Qaund le leader reçoit le message elu il l'eace et l'élection est nie. Laurent PHILIPPE Élection distribuée 29 / 35

Algorithme d'élection de Dolev, Klawe et Rodeh Hypothèses et principe Hypothèses de l'anneau Calcul du plus grand/petit numéro de processus Initialement tous les processus sont actifs A chaque round chaque processus compare son numéro avec ses voisins Si son numéro est plus petit que l'un de ses voisins (sens de la montre et opposé), passe à l'état passif A moins la moitié des identités actives ne survivent pas à un round après au plus logn round l'élection est nie MAIS : nécessite un anneau bi-directionnel ce qui n'est pas dans les hypothèses de départ. Laurent PHILIPPE Élection distribuée 30 / 35

Algorithme d'élection de Dolev, Klawe et Rodeh Principe pour un anneau unidirectionnel Les processus passifs ne font que relayer les messages, quelque soit leur type Un processus actif envoie son numéro au prochain processus actif (relayé par les processus passifs) dans un message < one > Il obtient donc, dans le premier message reçu, le numéro du processus qui le précède Il envoie ensuite un second message < two > avec le numéro reçu Son successeur reçoit ainsi le numéro du processus actif qui le précède à distance 2 Laurent PHILIPPE Élection distribuée 31 / 35

Algorithme d'élection de Dolev, Klawe et Rodeh Principe pour un anneau unidirectionnel Il compare les valeurs reçues et si la valeur reçue dans le message < one > n'est supérieure à la sienne et à celle reçue dans < two > alors il devient passif. Sinon il prend l'identité du voisin, car il ne peut pas dire aux précédents qui a gagné, et continue l'algorithme Lorsqu'un processus reçoit son identité dans un message < one >, il est le leader et difuse un message < elu > pour en informer les autres. Laurent PHILIPPE Élection distribuée 32 / 35

Sommaire Introduction 1 Introduction 2 3 4 5 Laurent PHILIPPE Élection distribuée 33 / 35

Algorithme basé sur l'extinction Principe Les processus initiateurs diusent des messages avec leur numéro de processus, Les messages sont relayés par les récepteurs (voisins) Les messages parcourent le réseau et reviennent Seul le parcous du plus grand va nir, les autres sont arrêtés = Bully sur réseau quelconque Laurent PHILIPPE Élection distribuée 34 / 35

Algorithme basé sur l'extinction Principe Chaque processus initiateur p diuse à ses voisins un message marqué par son numéro p Chaque processus dénit la plus grande valeur reçue, initialement la sienne Quand un message arrive, si la valeur contenue est inférieure à la valeur locale, le message est ignoré, si elle est supérieure le processus abandonne sa propre diusion et enregistre la nouvelle valeur reçue comme la plus grande, si la valeur est égale à la valeur locale alors le processus est le leader. Complexité messages : N (nombre processus) * M (nombre messages par processus) Laurent PHILIPPE Élection distribuée 35 / 35