Les Algorithmes par Vagues 1
Les Algorithmes par Vagues Introduction Définitions Particularités Vague pour topologie en anneau Vague pour topologie en arbre Vague pour topologie quelconque 2
Introduction Algorithmes pour résoudre des problèmes généraux : La diffusion d information La synchronisation globale des processus Le déclenchement d un événement dans chaque processus Le calcul d une fonction dont chaque processus possède une partie des entrées 3
Introduction Utilisés pour résoudre des problèmes plus compliqués : Election Détection de terminaison Exclusion mutuelle 4
Introduction Propriétés communes : Toujours effectués par échange de messages Le schéma de communication suit la topologie Tous les processus doivent participer 5
Introduction Hypothèses : La topologie du réseau est fixe Les canaux de communication sont bidirectionnels Il existe un chemin entre deux processus quelconques L envoi de message est asynchrone 6
Définitions Les notations utilisées : L ensemble des processus est noté P L ensemble des canaux de communication est noté E Le nombre d événements d un calcul C est noté C Le sous-ensemble d événements d un calcul C se produisant dans le processus P est noté CP 7
Définitions Il existe un événement interne de type spécial appelé événement de décision. Un algorithme par vague : échange un nombre fini de messages termine par une décision la décision dépend causalement d événements dans chaque processus 8
Définitions Un algorithme par vague satisfait les propriétés suivantes : La terminaison : chaque calcul est fini C C < La décision : chaque calcul contient au moins un événement de décision C e C e est un événement de décision La dépendance : tout événement de décision est causalement précédé par un événement dans chaque processus C e C e événement de décision q P f Cq : f<e 9
Définitions Un calcul d un tel algorithme est appelé vague. On distingue deux types de processus : Les processus initiateurs : ils exécutent spontanément l algorithme le premier événement est soit un événement interne, soit un événement d envoi de message Les processus suiveurs : ils sont impliqués dans la vague à la réception d un message le premier événement est une réception de message 10
Particularités Les algorithmes par vague diffèrent suivant plusieurs critères : Le nombre d initiateurs : Algorithme centralisé : un seul initiateur Algorithme décentralisé : plusieurs initiateurs La topologie : algorithme conçu pour une topologie particulière ou pour toute topologie La connaissance initiale des processus : Identité du processus Identité des voisins Le nombre de décisions La complexité 11
Topologie en Anneau Chaque processus p possède un voisin noté Nextp de manière à former un cycle L algorithme est centralisé. Description de l algorithme : L initiateur envoie un message <TOK> appelé jeton le long de l anneau. Chaque processus fait suivre. A la réception du message, l initiateur décide. 12
Topologie en Anneau Le code : processus initiateur : debut envoyer <TOK> à Nextp recevoir <TOK> décider fin processus suiveur : debut recevoir <TOK> envoyer <TOK> à Nextp fin 13
Topologie en Anneau Initiateur 14
Topologie en Arbre L algorithme est décentralisé : il est initié par toutes les feuilles. Chaque processus n envoie qu un seul message. Description de l algorithme : Si un processus a reçu un message de tous ses voisins sauf 1, il envoie un message à destination du voisin restant. Si un processus a reçu un message depuis tous ses voisin, il peut décider. 15
Topologie en Arbre Le code : Processus initiateur (feuille) : envoyer<tok> au voisin; Tous les participants : var recu[q] pour q voisin de p:booleen init faux; debut tant que #{q tel que recu[q] est faux}>1 faire recevoir<tok> de q; recu[q] = vrai; fait recevoir<tok> de q0;recu[q0] = vrai; decider; pour tout q voisin de p, q<>q0 faire envoyer<tok> a q fait 16
Topologie en Arbre Cet algorithme est il bien un algorithme par vague? Combien d événements de décision se produiront? 17
Topologie en Arbre 18
Topologie Quelconque Algorithme Echo : c est un algorithme centralisé. Description de l algorithme : L initiateur envoie un message à tous ses voisins A la réception du premier message, un processus suiveur le transmet à tous ses voisins sauf à celui qui vient de le lui envoyer. Quand un processus a reçu un message de tous ses voisins, il envoie un message à celui qui l a fait entrer dans la vague : l écho. Quand l initiateur reçoit un écho de tous ses voisins, il peut décider. 19
Topologie Quelconque Code de l initiateur : var recu : entier init 0; father : P init indefini ; debut pour tout q voisin de p faire envoyer<tok> a q; fait tq recu <> nombre de voisins faire recevoir<tok>; recu := recu + 1; fait decider; fin 20
Topologie Quelconque Code suiveur : var recu : entier init 0; pere : P init nondefini; debut recevoir<tok> de q; pere := q; pour tout q voisin de p, q <> pere faire envoyer<tok> a q; fait tq recu <> nombre de voisins - 1 faire recevoir<tok>; recu := recu + 1; fait envoyer<tok> a pere; fin 21
Topologie quelconque 22 16