Algorithmique Distribuée Communication de groupes

Documents pareils
Recherche dans un tableau

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

NOTATIONS PRÉLIMINAIRES

Algorithmique répartie

Laboratoire CÉDRIC THÈSE DE DOCTORAT. soutenue le : 4 octobre Discipline / Spécialité : Informatique

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

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

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.

Les messages d erreur d'applidis Client

Gestion répartie de données - 1 Duplication et cohérence

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

Stockage du fichier dans une table mysql:

Systemes d'exploitation des ordinateurs

Programmation Objet - Cours II

CONDITIONS GENERALES D'UTILISATION -

D'UN THÉORÈME NOUVEAU

Partie 7 : Gestion de la mémoire

Le courrier électronique

Chapitre 1 : Accès à Pay@Finpost : abonnements et digipass

Année Universitaire 2009/2010 Session 2 de Printemps

Utilisateur. Auteurs. Laurent project engineer

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

(VM(t i ),Q(t i+j ),VM(t i+j ))

Algorithmique des Systèmes Répartis Protocoles de Communications

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Chapitre 5 : Flot maximal dans un graphe

Par combien de zéros se termine N!?

Dans cette définition, il y a trois notions clés: documents, requête, pertinence.

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

Limitations of the Playstation 3 for High Performance Cluster Computing

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Premiers pas avec WinPT (cryptographie sous Win) EITIC

Technique de défense dans un réseau

Gestion des cartes ristourne

PARCOURS COMPLET AU COURS MOYEN

Support Agile avec Kanban quelques trucs et astuces par Tomas Björkholm

Géométrie dans l espace Produit scalaire et équations

Propagation sur réseau statique et dynamique

Conception d'un réseau de transport d'électricité

Le Network File System de Sun (NFS)

Seconde et première Exercices de révision sur les probabilités Corrigé

Cours admin 200x serveur : DNS et Netbios

Réplication des données

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

3 Les premiers résultats des plans d'actions

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

CONTRÔLES D'ACCÈS PHYSIQUE AUTOMATISÉS

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Mobyt Intégration par Webservice TABLE DES MATIERES

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Cours 02 : Problème général de la programmation linéaire

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Master e-secure. VoIP. RTP et RTCP

GESTION DES BONS DE COMMANDE

Systèmes et algorithmes répartis

Le Raid c est quoi? Comment ca marche? Les différents modes RAID :

Programmation parallèle et distribuée

Centre d'etudes Nucléaires de Fontenay-aux-Roses Direction des Piles Atomiques Département des Etudes de Piles

RECOMMANDATION 27 EFFICACITE DE LA COMMUNICATION, ENTRE LES CANAUX DE DISTRIBUTION ET LES ASSUREURS, ET RECIPROQUEMENT.

12, PLACE DU PANTHEON PARIS. ADRESSE ELECTRONIQUE : capitant@clubinternet.fr TELEPHONE : + 33 (0) TELECOPIE : + 33 (0)

TR2 : Technologies de l'internet. Chapitre VII. Serveur DHCP Bootp Protocole, Bail Relais DHCP

Vers l'ordinateur quantique

Fiche Juridique CRÉATION ET FONCTIONNEMENT D'UNE ASSOCIATION LOI DU 1ER JUILLET 1901!

LA LETTRE FORMELLE PROFESSIONNELLE COMMERCIALE ADMINISTRATIVE LA LETTRE DE RÉCLAMATION MODÈLES

Protocole SIP et rc o d n o C ée yc L N E S ro P c a B

LE PROBLEME DU PLUS COURT CHEMIN

Clavier Déporté Sans Fil NOTICE RFID SOS

Définition du compte courant

1 EVALUATION DES OFFRES ET NEGOCIATIONS

Méthodologies SCRUM Présentation et mise en oeuvre

Correction TD algorithmique

DYNAMIQUE DE FORMATION DES ÉTOILES

Couples de variables aléatoires discrètes

Installation et Réinstallation de Windows XP

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

Structures algébriques

COUR SUPÉRIEURE SOUS LA PRÉSIDENCE DE : L HONORABLE YVES MAYRAND, J.C.S. MOTIFS ET JUGEMENT Art (2) L.F.I.

En temps que prestataire informatique, nous enjoignons tous nos clients à faire de la politique backup une priorité.

LISTES DE DISTRIBUTION GÉRÉ PAR SYMPA DOCUMENT EXPLICATIF DE ÉCOLE POLYTECHNIQUE

KASPERSKY DDOS PROTECTION. Découvrez comment Kaspersky Lab défend les entreprises contre les attaques DDoS

Ebauche Rapport finale

Installation d'un serveur DHCP sous Windows 2000 Serveur

Les chaînes de caractères

Les réseaux informatiques

CORRECTION EXERCICES ALGORITHME 1

Tutoriel - flux de facturation

Algorithmes de recherche

6. Les différents types de démonstrations

VADE MECUM COURRIERS ELECTRONIQUES. Comprendre, s'organiser et gérer durablement la communication électronique

Compte rendu des TP matlab

Systèmes Répartis. Mr. Mehrez Boulares, Mr. Nour Ben Yahia

G E S T S K E D. Logiciel de gestion de QSO journaliers ou hebdomadaires appelés SKED. Version 1.0. Logiciel développé par René BUSSY F5AXG

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Protocoles DHCP et DNS

Le service FTP. M.BOUABID, Page 1 sur 5

TD 2 Chapitre 4 : Support des Services et Serveurs. Objectifs : Maîtriser l'exploitation des tables de routage dynamique.

FileSender par RENATER - Guide utilisateur

Utiliser ma messagerie GMAIL

Utiliser les supports d'exemplaires

Comment envoyer un en gardant les adresses de ses correspondants confidentielles!!!

Transcription:

Algorithmique Distribuée Communication de groupes Laurent PHILIPPE Master 2 Informatique UFR des Sciences et Techniques 2013/2014 Laurent PHILIPPE Communication de groupes 1 / 58

Les outils Les groupes de processus Les groupes Dénition Ensemble de processus vu comme une seule abstraction Donner une vision commune Rendre un service en commun Partager une ressource Propriétés Dynamique vs. Statique Groupe de pairs vs. Groupe hiérarchisé Ouvert vs. Fermé Laurent PHILIPPE Communication de groupes 2 / 58

Les outils La communication de groupe Les groupes Communication externe Accès au groupe plutôt qu'à un membre Redirection interne : Tolérance aux pannes Équilibrage de charge Travail à plusieurs Communication interne Point-à-point Diusion : ordre de réception des messages Laurent PHILIPPE Communication de groupes 3 / 58

Rappel Les outils Les groupes Hypothèses de travail Temps de communication nis mais non prévisibles Exécution d'un processus est une suite d'évènements Évènements internes ou externes Pas de panne des processus (machines) Messages arrivent intacts Messages ne sont pas dupliqués Laurent PHILIPPE Communication de groupes 4 / 58

Sommaire Les outils Les groupes 1 Les outils 2 3 4 5 Laurent PHILIPPE Communication de groupes 5 / 58

Sommaire Les outils Les horloges vectorielles 1 Les outils 2 3 4 5 Laurent PHILIPPE Communication de groupes 6 / 58

Les outils Rappel : relation de précédence Les horloges vectorielles Dénition Dénit un ordre dans les événements d'un système distribué Entre : Deux évènements dans un même processus Émission d'un message par un processus Réception d'un message par un processus La relation de précédence est notée : L'expression E 1 E 2, se lit l'événement E 1 précède l'événement E 2, c'est à dire que E 1 a lieu avant E 2 Laurent PHILIPPE Communication de groupes 7 / 58

Les outils Rappel : relation de précédence Les horloges vectorielles Propriétés La relation de précédence détermine un ordre partiel entre les évènements : Transitivité : si E 1 E 2 et E 2 E 3 alors E 1 E 3 Irréexibilité : il est pas possible d'avoir E 1 E 1 Antisymétrie : si (E 1 E 2 ) alors (E 2 E 1 ) On dénit la propriété de concurrence entre deux évènements : E 1 et E 2 sont concurrents si ils ne sont pas liés par une relation de précédence : (E 1 E 2 ) (E 2 E 1 ) Laurent PHILIPPE Communication de groupes 8 / 58

Relation de causalité Les outils Les horloges vectorielles Dénition Un événement E 1 produit un événement E 2 si et seulement si E 2 est une conséquence de E 1. Par exemple : l'émission d'un message produit la réception de celui-ci une instruction peut être produite par une autre la réception d'un message peut produire une émission Notation La relation de causalité est notée L'expression E 1 E 2, se lit l'événement E 1 produit l'événement E 2, c'est à dire que E 2 est la conséquence de E 2 Laurent PHILIPPE Communication de groupes 9 / 58

Relation de causalité Les outils Les horloges vectorielles Propriétés La relation de causalité détermine un ordre partiel entre les évènements : transitivité : si E 1 E 2 et E 2 E 3 alors E 1 E 3 irréexibilité : on n'a pas E 1 E 1 antisymétrie : si (E 1 E 2 ) alors (E 2 E 1 ) Laurent PHILIPPE Communication de groupes 10 / 58

Les outils Exemple de relation de causalité Les horloges vectorielles P1 P2 E11 E21 E 11 E 23 E12 E13 E22 E23 E 13 E 22 E 21 E 12 Les événements suivants sont concurrents : E 11 E 21 Temps Laurent PHILIPPE Communication de groupes 11 / 58

Remarque estampilles Les outils Les horloges vectorielles Estampilles Horloges logiques de Lamport Estampille dénit un ordre total Tous les événements peuvent être ordonnés les uns par rapport aux autres Ordre arbitraire entre estampilles égales sans risque pour la causalité, choix basé sur le numéro de site Laurent PHILIPPE Communication de groupes 12 / 58

Ordre Causal Les outils Les horloges vectorielles Dénition Dépendance causale est un ordre partiel dépendance causale entre deux événements e a et e b, notés e a e b signie : e a précède e b sur le même processus (ordre séquentiel) ; e a correspond à l'envoi du message reçu en e b ; un événement e c tel que e a e c et e c e b. Laurent PHILIPPE Communication de groupes 13 / 58

Chemin causal Les outils Les horloges vectorielles Dénition et propriétés Ensemble des événements entre les événements causes et les événements conséquences Si e a e b, alors il existe au moins un chemin causal entre e a et e b Deux événements concurrents ne sont pas liés par une dépendance causale et il n'y a pas de chemin qui les relie L'ordre des estampilles est alors quelconque Connaissance des chemins de causalité ne permet pas toujours d'ordonner tous les événements Laurent PHILIPPE Communication de groupes 14 / 58

Les outils Les horloges vectorielles Interaction indépendance causale estampille P1 P2 P3 1 e11 2 e12 3 e13 1 e21 2 e22 1 3 e31 e32 dépendance causale < = > estampilles Laurent PHILIPPE Communication de groupes 15 / 58

Les outils Les horloges vectorielles Interaction indépendance causale estampille Estampilles eacent articiellement la notion de dépendance causale Restent cohérentes avec la dépendance causale Dans certains cas, l'ordre total est inutile : on ne cherche que la précédence Les estampilles ne sont pas denses : si H(e 1 ) < H(e 2 ), on ne peut pas savoir s'il existe e b tel que e 1 e b et/ou e b e 2. Laurent PHILIPPE Communication de groupes 16 / 58

Les historiques Les outils Les horloges vectorielles Dénition Nécessaire de conserver l'historique pour la causalité On dénit par hist(e) l'historique d'un événement e hist(e) = ensemble des événements appartenant à tous les chemins causals hist(e) = {e} {e e e} Laurent PHILIPPE Communication de groupes 17 / 58

Les historiques Les outils Les horloges vectorielles Exécution d'événements sur 3 processus P1 P2 P3 e 11 e 12 e 13 e 21 e 22 e 23 e 24 e 25 e 31 e 32 e 33 e 34 hist(e 33 ) = {e 11, e 21, e 22, e 23, e 24, e 25, e 31, e 32, e 33 } Laurent PHILIPPE Communication de groupes 18 / 58

Les historiques Les outils Les horloges vectorielles Historique d'un événement e est utilisé pour la datation de e Examen de son passé permet de déterminer ses dépendances causales Dépendance de deux événements e et e : hist(e) = {e} {e e e} e e e hist(e ) e e (e / hist(e )) (e / hist(e)) Inconvénient de l'historique : sa taille croît sans cesse Laurent PHILIPPE Communication de groupes 19 / 58

Les outils Projection de l'historique Les horloges vectorielles Dénition projection de l'historique hist(e) d'un événement e sur le processeur P i est l'ensemble : Sur la gure : hist i (e) = {e hist(e) e P i } hist(e 33 ) = {e 11, e 21, e 22, e 23, e 24, e 25, e 31, e 32, e 33 } Les projections de hist(e 33 ), respectivement sur les processeurs P 1, P 2 et P 3, sont : hist 1 (e 33 ) = {e 11 } hist 2 (e 33 ) = {e 21, e 22, e 23, e 24, e 25 } hist 3 (e 33 ) = {e 31, e 32, e 33 } Laurent PHILIPPE Communication de groupes 20 / 58

Les outils Projection de l'historique Les horloges vectorielles Propriété Si e i,k événement de projection de l'historique de e sur P i, alors tout événement antérieur à e i,k sur P i est dans l'historique de e : k e i,k hist i (e) = j < k : e i,j hist(e) Réduction de la représentation de l'historique Soit l'événement e i,k, le plus récent des événements de l'historique de e sur P i D'après la propriété, e i,k j k > j > 0, e i,k j hist i (e) Il sut de ne conserver que l'entier k pour caractériser la projection de l'historique de e sur P i. Horloges vectorielles : un événement par site Laurent PHILIPPE Communication de groupes 21 / 58

Les outils Les horloges vectorielles Représentation d'un historique par un vecteur hist(e) = i hist i (e) : un vecteur V (e), avec une ligne par processeur, sut pour représenter hist(e) Pour un système de n processus, le vecteur est déni de la manière suivante : i(1 i n) : V (e)[i] = k, tel que : e i,k hist i (e) et e i,k+1 / hist i (e) V (e)[i] : nombre d'événements de P i connus de e Laurent PHILIPPE Communication de groupes 22 / 58

Exemple Les outils Les horloges vectorielles Exemple précédent Dans l'exemple précédent on a : V (e 33 )[1] = 1 V (e 33 )[2] = 5 V (e 33 )[3] = 3 Laurent PHILIPPE Communication de groupes 23 / 58

Les outils Les horloges vectorielles Les horloges vectorielles (Fidge, Mattern 1988) Dénition Un vecteur V i de taille n est associé à chaque processus P i Initialement V i = (0,..., 0) A chaque événement local à P i, V i [i] V i [i] + 1 A chaque émission, le message m porte l'estampille V e (V e est l'horloge vectorielle de l'émetteur P e ) A la réception de (m, V e ) par un processus P i : V i [i] V i [i] + 1 V i [j] max(v i [j], V e [j]) pour j = 1,..., n, j i Laurent PHILIPPE Communication de groupes 24 / 58

Exemple d'exécution Les outils Les horloges vectorielles Séquence d'événements sur 4 processeurs P1 P2 P3 P4 (0,0,0,0) (0,0,0,0) (0,1,0,0) (0,0,0,0) (0,0,0,0) (1,1,0,0) (2,1,0,0) 1 3 (0,0,1,1) (2,1,2,1) 2 evt local (0,0,0,1) (0,0,0,2) (3,1,0,0) (0,2,0,0) (2,3,3,1) evt local 4 (2,1,3,1) evt local Laurent PHILIPPE Communication de groupes 25 / 58

Les outils Les horloges vectorielles Les horloges vectorielles Propriété : ordre partiel Soit deux horloges vectorielles V et V, il existe un ordre partiel entre ces 2 horloges : V V si et seulement si i(1 i n) : V [i] V [i] V < V si et seulement si (V V ) (V V ) V V si et seulement si (V < V ) (V < V ) Laurent PHILIPPE Communication de groupes 26 / 58

Les outils Les horloges vectorielles Les horloges vectorielles Propriété : denses Soient e i un événement du processeur P i et e j un événement du processeur P j. Si V (e i )[k] < V (e j )[k] avec k j, alors il existe e k tel que (e k e i ) (e k e j ). Signication Il existe forcément un événement e k qui a permis l'incrémentation de la composante k de l'horloge sur le processeur P k. Cet événement a eu lieu avant l'événement e j sans qu'on puisse dire s'il s'est produit avant ou après l'événement e i. La seule chose que l'on puisse armer, c'est que e k n'est pas la cause de e i. Laurent PHILIPPE Communication de groupes 27 / 58

Sommaire Les outils Les protocoles de diusion able 1 Les outils 2 3 4 5 Laurent PHILIPPE Communication de groupes 28 / 58

Diusion able Les outils Les protocoles de diusion able Propriété, dénition Pour être able, une diusion doit satisfaire 3 critères : validité : lorsqu'un processus diuse, tous les membres du groupe reçoivent ; accord : si un processus reçoit, alors tous les autres membres du groupe reçoivent ; intégrité : chaque message n'arrive qu'une et une seule fois. Laurent PHILIPPE Communication de groupes 29 / 58

Diusion able Les outils Les protocoles de diusion able Diérents types de diusions ables FIFO : les messages sont délivrés dans le même ordre que l'ordre d'envoi, protocole FBCAST Causale : les messages sont délivrés dans un ordre compatible avec le respect de la causalité, protocole CBCAST ; Atomique : les messages sont tous délivrés dans le même ordre, protocole ABCAST. Laurent PHILIPPE Communication de groupes 30 / 58

Diusion able Les outils Les protocoles de diusion able Mise en uvre Dans le contexte des protocoles de diusion able Faire la distinction entre réception d'un message et délivrance de ce message Le système n'a aucun contrôle sur le temps de communication des messages, ni sur la date d'arrivée ou de réception des messages Diérer la délivrance d'un message au processus destinataire an de se conformer aux dénitions précédentes Ne favorise pas les performances du système, mais garantit le bon fonctionnement d'une application distribuée. Laurent PHILIPPE Communication de groupes 31 / 58

Les outils Les protocoles de diusion able Les protocoles de diusion able Notations receivep(m) : réception du message m par le processus p ; deliverp(m) : livraison du message m au processus P Propriété Dans tous les cas et de manière évidente, la réception précède toujours la délivrance du message. On note : receivep(m) deliverp(m) Laurent PHILIPPE Communication de groupes 32 / 58

Les outils Ordre FIFO : FBCAST Les protocoles de diusion able Dénition Si un processus diuse un message m1 avant de diuser un message m2, alors aucun processus correct ne délivre m2 à moins qu'il n'ait déjà délivré m1. Les messages envoyés par un processus p sont délivrés dans l'ordre d'émission par tout processus q correct : Si m, m et p g send p (m) send p (m ) = q g : deliver q (m) deliver q (m ) Laurent PHILIPPE Communication de groupes 33 / 58

Les outils Ordre FIFO : FBCAST Les protocoles de diusion able Exécution correcte d'une diusion able de type FIFO P1 P2 P3 temps Laurent PHILIPPE Communication de groupes 34 / 58

Les outils Ordre causal : CBCAST Les protocoles de diusion able Dénition Si le message m est la cause du message m (m est envoyé après la délivrance de m sur le processus émetteur de m ) alors tous les processus délivrent le message m après le message m. Ceci peut s'écrire de la manière suivante : Si m m = p g alors deliver p (m) deliver p (m ) L'ordre de livraison des messages respecte la relation de causalité entre m et m'. Laurent PHILIPPE Communication de groupes 35 / 58

Les outils Ordre causal : CBCAST Les protocoles de diusion able P1 P2 P3 temps Laurent PHILIPPE Communication de groupes 36 / 58

Les outils Ordre atomique ou total : ABCAST Les protocoles de diusion able Dénition La relation d'ordre est étendue aux processus concurrents. En eet, si on a un groupe g, tous les processus p de ce groupe délivrent les messages dans le même ordre, quelque soit l'ordre l'émission des messages, d'où l'expression : m, m et p g deliver p (m) deliver p (m ) q g : deliver q (m) deliver q (m ) Laurent PHILIPPE Communication de groupes 37 / 58

Les outils Ordre atomique ou total : ABCAST Les protocoles de diusion able P1 P2 P3 temps Figure: Exemple d'exécution correcte d'une diusion able atomique Laurent PHILIPPE Communication de groupes 38 / 58

Les outils Protocoles de diusion able Les protocoles de diusion able Application au multi-cast Diusion par sous-groupes Dénition de groupes diérents Diusion ables sur plusieurs groupes Relations s'appliquent aux intersections Pas de contraintes en dehors des intersections Laurent PHILIPPE Communication de groupes 39 / 58

Sommaire Les outils 1 Les outils 2 3 4 5 Laurent PHILIPPE Communication de groupes 40 / 58

Protocole FBCAST Les outils Protocole Le message m est accompagné du numéro de séquence d'émission #seq(m) et du numéro du processus émetteur sender(m) Sur le processus émetteur, les numéros de séquence d'émission constituent une suite continue (sans trou) Alors chaque processus p connaît le prochain numéro de séquence next(q) du message à délivrer en provenance de chaque processus q du groupe g Grâce à ces informations, le processus p récepteur d'un message m est capable de délivrer ou non le message, et s'il le délivre, il essaie de délivrer tous les messages en provenance de q qui n'auraient pas encore été délivrés Laurent PHILIPPE Communication de groupes 41 / 58

Protocole FBCAST Les outils Protocole Initialement, les numéros de séquence des messages en provenance de tous les autres processus ont la valeur 1, sur tous les processus du groupe À la réception, sur p, d'un message m en provenance de q, m est stocké parmi les messages attendant d'être délivrés ; Tant qu'il existe un message m en provenance de q tel que le prochain numéro de séquence du message next(q) est égal à #seq(m), alors le message m est délivré, supprimé de l'ensemble des messages à délivrer et le prochain numéro de séquence du message à délivrer en provenance de q (next(q)) est incrémenté. Laurent PHILIPPE Communication de groupes 42 / 58

Protocole FBCAST Les outils Exercices Ecrire l'algorithme sous forme de règles On dipose d'une le de messages en local (put, get) Laurent PHILIPPE Communication de groupes 43 / 58

Sommaire Les outils 1 Les outils 2 3 4 5 Laurent PHILIPPE Communication de groupes 44 / 58

Les outils CBCAST utilise l'historique : 1 Avant d'envoyer m, le processus P i incrémente V i [i] et estampille le message m avec V i ; 2 À la réception d'un message m estampillé par V m en provenance de P i, le processus P j P i dière sa livraison jusqu'à ce que les conditions suivantes soient réalisées : { 1. Vj [i] = V m [i] 1 2. k [1, n] et k i : V j [k] V m [k] La condition 1. indique que le message qui arrive de i porte le numéro attendu et donc qu'aucun message de i n'a été perdu. Pour le processus P i, la condition est V i [i] = V m [i] 3 Après remise de m : V j max(v m, V j ) Laurent PHILIPPE Communication de groupes 45 / 58

Les outils Déroulement de diusions ables de type CBCAST P1 (0,0,0) (0,0,0) receive (0,1,0) (0,1,1) receive deliver deliver (0,2,1) (0,3,1) receive deliver receive deliver P2 (0,0,0) (0,1,1) (0,1,1) receive deliver (0,2,1) (0,3,1) (0,3,1) P3 (0,0,0) receive deliver (0,1,0) (0,1,1) receive receive deliver deliver (0,1,1) (0,2,1) (0,3,1) Laurent PHILIPPE Communication de groupes 46 / 58

Protocole CBCAST Les outils Exercices Dérouler l'algorithme pour le cas où : 1 on a trois processus, 2 le processus P 0 diuse, la diusion se termine 3 le processus P 1 diuse, 4 le processus P 2 diuse avant d'avoir reçu le message de P 1 5 P 0 diuse après avoir reçu le message de P 1, 6 P 2 reçoit le message de P 0 avant celui de P 1 Écrire l'algorithme sous forme de règles, en supposant qu'on dispose d'une le de messages en local (put, get) Laurent PHILIPPE Communication de groupes 47 / 58

Sommaire Les outils 1 Les outils 2 3 4 5 Laurent PHILIPPE Communication de groupes 48 / 58

Les outils Principe Pour respecter l'ordre total (ou atomique), on utilise un protocole de validation à deux phases. Envoie d'abord avec une estampille provisoire, Puis calcule l'estampille dénitive du message diusé grâce à un échange entre les processus du groupe et le processus émetteur. Le processus émetteur valide ensuite la valeur de l'estampille dénitive et la communique aux autres processus destinataires an que le message puisse être délivré dans l'ordre des estampilles dénitives. Protocole coûteux prend 3n messages. Laurent PHILIPPE Communication de groupes 49 / 58

Les outils Protocole - 1ère Phase Soit g un groupe de n processus P i avec i = 1... n. Lors d'une diusion le processus p i émetteur joint à la diusion du message l'estampille provisoire : date d'émission.numéro de l'émetteur et l'envoie au membres du groupe A la réception, Chaque destinataire : P j met sa propre estampille au message reçu : état courant de l'estampille + 1 Marque le message en attente : Pending Laurent PHILIPPE Communication de groupes 50 / 58

Les outils Protocole - 2nde Phase 1 Chaque destinataire P j renvoie le message avec l'estampille attribuée à l'expéditeur P i du message ; 2 Quand l'expéditeur P i a reçu toutes les réponses, il choisit la plus grande estampille date d'émission.numéro de l'émetteur comme estampille dénitive puis envoie une validation avec cette estampille à tous les membres du groupe ; 3 A la réception de l'estampille dénitive, le message est marqué validé : Ready ; 4 Les messages validés sont alors délivrés aux applications dans l'ordre de leurs estampilles. Laurent PHILIPPE Communication de groupes 51 / 58

Les outils Exemple Diusions ables de type ABCAST au sein d'un groupe de trois processus Soit les processus P 1, P 2 et P 3 diusant chacun respectivement les messages m1, m2 et m3. L'état courant des estampilles de ces processus est 14 pour P 1, 15 pour P 2, 16 pour P 3 ; P1 reçoit les messages dans l'ordre m3, m1 et m2 P 2 reçoit les messages dans l'ordre m2, m1 et m3 P 3 reçoit les messages dans l'ordre m1, m3 et m2 Laurent PHILIPPE Communication de groupes 52 / 58

Exemple ABCAST Les outils P 1 m3 m1 m2 15.1 16.1 17.1 P P P P 2 m2 m1 m3 16.2 17.2 18.2 P P P P 3 m1 m3 m2 17.3 18.3 19.3 P P P A la réception des messages sur les processus du groupe, ils sont mis en attente et le protocole leur associe des estampilles provisoires. Tous les processus envoient un message vers le processus P 1 avec l'estampille provisoire du message m1. Laurent PHILIPPE Communication de groupes 53 / 58

Les outils Exemple ABCAST P 1 m3 m2 m1 15.1 17.1 17.3 P P R P 2 m2 m1 m3 16.2 17.3 18.2 P R P P 3 m1 m3 m2 17.3 18.3 19.3 R P P Le processus P 1 choisit la plus grande estampille (e = max{16.1, 17.2, 17.3} = 17.3) comme dénitive et la diuse. A sa réception les messages sont notés prêts (R) à être délivrés. Localement, ils sont réordonnés en fonction des nouvelles estampilles pour être délivrés dès qu'ils auront la plus petite estampille locale. Les processus diusent maintenant les estampilles provisoires pour le message provenant de P 2 Laurent PHILIPPE Communication de groupes 54 / 58

Exemple ABCAST Les outils P 1 m3 m1 m2 15.1 17.3 19.3 P R R P 2 m1 m3 m2 17.3 18.2 19.3 R P R P 3 m3 m2 18.3 19.3 P R Le message m1 est délivré sur le processus P3. L'estampille dénitive pour m2 est trouvée (19.3) et est diusée à tous les processus. Laurent PHILIPPE Communication de groupes 55 / 58

Exemple ABCAST Les outils P 1 m1 m3 m2 17.3 18.3 19.3 R R R P 2 m3 m2 18.3 19.3 R R P 3 m3 m2 18.3 19.3 R R Le message m1 est délivré sur le processus P 2 grâce au tri en fonction des estampilles. Suite à l'envoi sur P 3 des estampilles provisoires du message m3, le processus P 3 peut choisir l'estampille dénitive pour son message (18.3). Après diusion de cette estampille, tous les messages sont prêts (R) et sont délivrés dans l'ordre de la liste triée des messages, la même pour tous les processus Laurent PHILIPPE Communication de groupes 56 / 58

Protocole ABCAST Les outils Exercices Dérouler l'algorithme pour le cas où : 1 On a quatre processus, 2 L'état initial est 8 pour P 0, 10 pour P 1, 6 pour P 2 et 7 pour P 3 3 Le processus P 1 diuse un message qui est traité par l'ensemble des membres du groupe, 4 Les processus P 0 et P 3 diusent ensuite un message en même temps, 5 le processus P 2 diuse un message alors que les deux messages précédents ont été reçus mais non validés (n de première phase). Écrire l'algorithme sous forme de règles. Laurent PHILIPPE Communication de groupes 57 / 58

Les outils Conclusion ISIS Ouvrage de référence : Michel Raynal. La communication et le temps dans les réseaux et les systèmes répartis, Eyrolles. Collection de la Direction des Études et Recherches d'électricité de France, CEA-EDF-INRIA, École d'été d'informatique. 1991. Sites web de référence : Michel Riveill. Quelques algorithmes répartis et leur usage pour les systèmes. http://rangiroa.essi.fr/cours/systeme2/ 96-flips-algo-rep2.pdf. 2003. Denis Conan. Initiation à l'algorithmique répartie. http://www-inf.int-edu.eu/cours/asr4/cours/ AlgoRep/EnLigne/Contenu/8.html. juin 2007. Laurent PHILIPPE Communication de groupes 58 / 58