Algorithmique Distribuée Exclusion mutuelle distribuée



Documents pareils
L exclusion mutuelle distribuée

Chapitre 4 : Exclusion mutuelle

Introduction aux algorithmes répartis

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

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

Ebauche Rapport finale

Cours de Systèmes d Exploitation

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

LE PROBLEME DU PLUS COURT CHEMIN

Structures algébriques

Correction TD algorithmique

Propagation sur réseau statique et dynamique

CORRECTION EXERCICES ALGORITHME 1

Algorithmes de recherche

Un algorithme équitable d exclusion mutuelle tolérant les fautes

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

Master e-secure. VoIP. RTP et RTCP

Exclusion mutuelle de groupes dans les systèmes distribués

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Systemes d'exploitation des ordinateurs

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

Une approche de solution au problème d exclusion mutuelle dans les réseaux mobiles ad hoc. M. Benchaïba, M. Haddad et M.

Vers l'ordinateur quantique

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2.

REALISATION d'un. ORDONNANCEUR à ECHEANCES

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Feuille TD n 1 Exercices d algorithmique éléments de correction

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

TD 1 - Transmission en bande de passe

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

Conception des systèmes répartis

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

Programmation Objet - Cours II

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

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

Algorithmes d'apprentissage

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

Création d'un questionnaire (sondage)

I. Introduction aux fonctions : les fonctions standards

Recherche dans un tableau

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.

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

Conditions Particulières de Maintenance. Table des matières. Ref : CPM-1.2 du 08/06/2011

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

ARBRES BINAIRES DE RECHERCHE

Pourquoi l apprentissage?

CAISSE DE PREVOYANCE MUTUELLE DA LA CONFEDERATION LUXEMBOURGEOISE DES SYNDICATS CHRETIENS - STATUTS -

C f tracée ci- contre est la représentation graphique d une

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

III- Raisonnement par récurrence

OASIS Date de publication

Rapport du projet Qualité de Service

Partie 7 : Gestion de la mémoire

D'UN THÉORÈME NOUVEAU

Arbres binaires de recherche

TRANSMETTEUR TELEPHONIQUE TTX = SINTEL X

TP2 - Conguration réseau et commandes utiles. 1 Généralités. 2 Conguration de la machine. 2.1 Commande hostname

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

Windows Internet Name Service (WINS)

Vue d'ensemble OBJECTIFS

TD n o 8 - Domain Name System (DNS)

Didacticiel de mise à jour Web

Canevas théoriques du projet sur le poker Partie A

Définitions. Numéro à préciser. (Durée : )

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Un contrat de respect mutuel au collège

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

MANUEL PROGRAMME DE GESTION DU CPL WI-FI

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

Module BDR Master d Informatique (SAR)

Installation d un serveur DHCP sous Gnu/Linux

DOCUMENT D INFORMATION INSCRIPTION AU TABLEAU DE L ORDRE CÉRÉMONIE DE PRESTATION DE SERMENT

Gestion distribuée (par sockets) de banque en Java

Le module Supply Chain pour un fonctionnement en réseau

Le Registre national

ADDENDA AU CONTRAT BLACKBERRY SOLUTION DE LICENCE POUR WATCHDOX CLOUD DE BLACKBERRY («le ADDENDA»)

Cadre réservé à l administration : Demande reçue le. Collège communal du :

Chp. 4. Minimisation d une fonction d une variable

CLUB POKER 05. Règlement intérieur

Réplication des données

Description du Service Service de suppression certifiée des données :

Solutions hautes performances pour le gardiennage et la surveillance

COUCHE 7/OSI : TRANSFERT DE FICHIERS FTAM

Manuel d'installation de Joomla 1.7

Domain Name System. F. Nolot

Domain Name Service (DNS)

Protocoles d authentification

Chapitre Ier : Qualifications.

Les réseaux cellulaires

Serveurs de noms Protocoles HTTP et FTP

Transmissions série et parallèle

Le chiffre est le signe, le nombre est la valeur.

Gestion des transactions et accès concurrents dans les bases de données relationnelles

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

Mises à jour CELCAT depuis la version 6.4

PROCÉDURE ÉLECTRONIQUE DE REMISE DE NOTES

REGLEMENT DE PROCEDURE DE LA COUR COMMUNE DE JUSTICE ET D'ARBITRAGE

Transcription:

Algorithmique Distribuée Exclusion mutuelle distribuée Laurent PHILIPPE Master 2 Informatique UFR des Sciences et Techniques 2013/2014 Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 1 / 68

Références Distributed Systems, Principle and Paradigms, A.Tanenbaum, Pearson Ed. M.Raynal, Une introduction aux principes des systèmes répartis (3 tomes), EyrollesEd. (1991) Cours de C.Kaiser du Cnam. Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 2 / 68

Sommaire 1 Introduction 2 3 4 Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 3 / 68

Sommaire 1 Introduction 2 3 4 Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 4 / 68

Exclusion mutuelle : rappels Une ressource partagée ou une section critique n'est accédée que par un processus à la fois Un processus est dans les trois états possibles, par rapport à l'accès à la ressource : demandeur dedans dehors Changement d'états par un processus : de dehors à demandeur de dedans à dehors Couche middleware gère le passage de l'état demandeur à l'état dedans Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 5 / 68

Exclusion mutuelle : rappels Propriétés Accès en exclusion mutuelle doit respecter 2 propriétés : Sûreté : un processus au maximum en section critique (état dedans) Vivacité : toute demande d'accès à la section critique est satisfaite en un temps ni Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 6 / 68

Mécanismes d'exclusion mutuelle distribuée En système distribué, nous présentons deux classes de mécanismes d'exclusion mutuelle les mécanismes centralisés les mécanismes distribués Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 7 / 68

Sommaire 1 Introduction 2 3 4 Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 8 / 68

Synchronisation centralisée : dénition Mécanisme centralisé de synchronisation en système distribué regroupe les algorithmes qui utilisent un coordinateur pour gérer l'exclusion mutuelle. Ce coordinateur : centralise les requêtes des diérents processus de l'application réalise l'exclusion mutuelle en accordant la permission d'entrée en Section Critique gère une le des requêtes en attente de Section Critique. Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 9 / 68

L'algorithme Processus P i Quand un processus P i veut entrer en Section Critique, il envoie au coordinateur un message de "demande d'entrée en Section Critique". Il attend la permission du coordinateur, avant d'entrer en Section Critique. Lorsque P j reçoit la permission, il entre en Section Critique. Quand P i quitte la Section Critique, il envoie un message de sortie de Section Critique au coordinateur. Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 10 / 68

L'algorithme Coordinateur Si personne en Section Critique, à la réception d'une demande d'accès de P i, il retourne "permission d'accès à P i. Si un processus P j est déjà en Section Critique. Le coordinateur refuse l'accès. La méthode dépend de l'implantation : soit il n'envoie pas de réponse, le processus P j est bloqué. soit il envoie une réponse : "Permission non accordée". Dans les deux cas, le coordinateur dépose la demande de P j dans une le d'attente. A la réception d'un message de sortie de Section Critique, le coordinateur prend la première requête de la le d'attente de la Section Critique et envoie au processus un message de permission d'entrée en Section Critique. Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 11 / 68

Avantages Algorithme garantit l'exclusion mutuelle, Algorithme juste (les demandes sont accordées dans l'ordre de réception) Pas de famine (aucun processus ne reste bloqué) Solution facile à implanter Pas de supposition sur l'ordre des messages Complexité : maximum 2 ou 3 messages Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 12 / 68

Inconvénients Si coordinateur a un problème, tout le système s'eondre Si processus bloqués lors de demande d'accès à une Section Critique occupée : impossibilité de détecter la panne du coordinateur Dans de grands systèmes, le coordinateur = goulet d'étranglement Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 13 / 68

Sommaire 1 Introduction 2 3 4 Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 14 / 68

Synchronisation distribuée Rappel Processus ne communiquent que par échange de messages Chaque processus connaît l'ensemble des processus du système Chaque processus a ses propres variables, pas de partage de variables On ne considère pas les cas de pertes de messages ni les pannes de machines Les échanges de messsages sont FIFO : les messages ne se doublent pas. Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 15 / 68

Synchronisation distribuée Principe Diuser la demande Il faut l'accord de tous les autres Une fois le consensus obtenu on accède à la SC Diculté : demandes concurrentes Algorithme de Lamport Utilise les horloges logiques pour ordonner les évènements P i incrémente son horloge entre deux évènements locaux ou distants A la réception d'un message par P i d'horloge H, l'horloge H i devient max(h i, H) + 1 Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 16 / 68

Algorithme de Lamport Variables pour chaque processus P i Horloge locale H i Tableau des horloges des autres processus, initialisé à 0 Chaque processus maintient un tableau de requêtes : état de demande des autres processus (ACK, REL, REQ) Initialement, chaque processus connaît tous les autres participants : liste des voisins Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 17 / 68

Algorithme de Lamport Principe de l'algorithme(1) Quand P i veut entrer en Section Critique, il incrémente son horloge, envoie le message REQ(H i :P i ) de demande de SC à tous les autres processus et dépose ce message dans tableau des requêtes Quand un processus P i reçoit le message REQ(H j :P j ) de demande de SC, il synchronise son horloge, met le message dans son tableau de requêtes et envoie un message ACK daté de bonne réception à P j Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 18 / 68

Algorithme de Lamport Principe de l'algorithme (2) P i accède à la SC quand les deux conditions suivantes sont réalisées : Il existe un message REQ(H i :P i ) dans son tableau de requêtes qui est ordonné devant tout autre requête selon la relation de précédence Le processus P i a reçu un message de tous les autres processus ayant une date supérieure à H i Ces 2 conditions sont testées localement par P i Quand P i quitte la SC, il enlève sa requête REQ(H i : P i ) de demande de SC de son tableau de requêtes, incrémente son horloge et envoie un message daté REL(H i :P i pour signaler qu'il quitte la SC à tous les processus Quand P i reçoit le message REL(H j : P j ) (quitte SC), il synchronise son horloge et enlève le message REQ(H j :P j ) (demande de SC) de son tableau de requêtes Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 19 / 68

Algorithme de Lamport Variables utilisées par chaque processus P i H i : entier indiquant l'horloge locale. Initialement H i =0 F _H i [] : tableau contenant les horloges des diérents processus. La taille du tableau correspond au nombre de participants. F _M i [] : tableau contenant les messages correspondant V i : ensemble de tous les voisins de P i Messages utilisés REQ(H) : demande d'entrée en SC ACK(H) : acquittement d'une demande d'entrée en SC REL(H) : sortie de SC Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 20 / 68

Algorithme de Lamport Règle 1 Accepte la demande de Section Critique Faire H i := H i + 1 j V i Envoyer REQ(H i ) à j F _H i [i] := H i F _M i [i] := REQ Attendre j V i ((F _H i [i] < F _H i [j]) ((F _H i [i] = F _H i [j]) i < j)) <Section Critique> Fait Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 21 / 68

Algorithme de Lamport Règle 2 Accepte le message REQ(H) depuis j Faire H i := Max(H i,h) + 1 F _H i [j] = H F _M i [j] = REQ Envoyer ACK(H i ) à j Fait Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 22 / 68

Algorithme de Lamport Règle 3 Accepte le message ACK(H) depuis j Faire H i := Max(H i,h) + 1 Fait Si F _M i [j] REQ Alors F _H i [j] = H F _M i [j] = ACK Fsi Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 23 / 68

Algorithme de Lamport Règle 4 Accepte la libération de la Section Critique Faire H i := H i + 1 j V i Envoyer REL(H i ) à j F _H i [i] = H i F _M i [i] = REL Fait Règle 5 Accepte le message REL(H) depuis j Faire H i := Max(H i,h) + 1 F _H i [j] = H F _M i [j] = REL Fait Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 24 / 68

Déroulement de l'algorithme de Lamport Exercice avec 3 processus : P 0, P 1 et P 2 1 P 0 demande à entrer en section critique. Dérouler l'algorithme jusqu'à ce que P 0 sorte de SC. 2 P 1 demande. Dérouler l'algorithme jusqu'à ce que P 1 sorte de SC. 3 Les processus P 0 et P 2 demandent la SC en même temps. Dérouler l'algorithme jusqu'à ce que le premier des deux sorte de SC. 4 P 1 demande à entrer en SC à ce moment là. Dérouler l'algorithme jusqu'à ce que P 1 sorte de SC. 5 Les processus P 1 et P 2 demandent la SC en même temps. Dérouler l'algorithme jusqu'à ce que P 1 et P 2 sortent de SC. Exercice Que se passe-t-il si la propriété FIFO n'est pas respectée? Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 25 / 68

Algorithme de Lamport Propriétés de l'algorithme Sûreté : exclusion mutuelle garantie Vivacité garantie Algorithme exempt d'inter-blocage Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 26 / 68

Algorithme de Lamport : Preuve sûreté Par contradiction : Supposons que P i et P j sont en même temps dans la SC à l'instant t, Alors la condition d'accès doit être valide sur les deux processus en même temps et ils sont tous les deux dans l'état REQ On peut supposer sans perte de généralité qu'à un instant t, H(S i ) < H(S j ) (ou l'inverse, ce qui revient au même) puisque deux horloges logiques ne sont jamais identiques A partir de l'hypothèse de communication FIFO, il est clair que le message de requête de S i est dans le tableau F _M j au moment où P j entre en SC puisque P j attend toutes les réponses (ACK) des processus avant d'entrer, donc celui de de P i. Or l'acquittement de P i a été généré après que P i ait émis le message REQ puisque H(S i ) < H(S j ) Donc P j est entré en SC alors que H(S i ) < H(S j ) contradiction Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 27 / 68

Algorithme de Lamport Vivacité Toute demande d'entrée en Section Critique sera satisfaite au bout d'un temps ni. En eet, après la demande d'un processus P i, au plus, N 1 processus peuvent entrer avant lui Complexité 3 (N 1) messages par entrée en Section Critique, où N est le nombre de processus N 1 Requêtes N 1 Acquittements N 1 Libérations Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 28 / 68

Algorithme de Ricart et Agrawala Objectif Algorithme proposé dans le but de diminuer le nombre de messages par rapport à l'algorithme de Lamport Changements Regrouper information de sortie de SC et accord Pas de retour systématique de ACK N'informer que les processus en attente à la sortie de SC Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 29 / 68

Algorithme de Ricart et Agrawala Principe de l'algorithme Lorsqu'un processus P i demande la Section Critique, il diuse une requête datée à tous les autres processus. Lorsqu'un processus P i reçoit une requête de demande d'entrée en Section Critique de P j, deux cas sont possibles : Cas 1 : si le processus P i n'est pas demandeur de la Section Critique, il envoie un accord à P j. Cas 2 : si le processus P i est demandeur de la Section Critique et si la date de demande de P j est plus récente que la sienne, alors la requête de P j est diérée, sinon un message d'accord est envoyé à P j. Lorsqu'un processus P i sort de la Section Critique, il diuse à tous les processus dont les requêtes sont diérées, un message de libération. Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 30 / 68

Algorithme de Ricart et Agrawala Variables utilisées par chaque processus P i : H i : entier, estampille locale. Initialement H i = 0 HSC i : entier, estampille de demande de SC. Initialement HSC i = 0 R i : booléen, le processus est demandeur de SC. Init à R i = FAUX X i : ensemble, processus dont l'accord est diéré. Init à X i := Nrel i : entier, nombre d'accords attendus. Init à Nrel i = 0. V i : voisinage de i Messages utilisés : REQ(H) : demande d'entrée en SC REL() : message de permission Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 31 / 68

Algorithme de Ricart et Agrawala Règle 1 Accepte la demande de SC Faire R i := VRAI HSC i := H i + 1 Nrel i := cardinal(v i ) j V i Envoyer REQ(HSC i ) à j tant que (Nrel i 0) < SC> Fait Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 32 / 68

Algorithme de Ricart et Agrawala Règle 2 Accepte le message REQ(H) depuis j Faire H i := Max(HSC i,h) + 1 Fait Si R i ((HSC i < H) ((HSC i = H) i < j)) Alors Xi := Xi j Sinon FSi Envoyer REL() à j Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 33 / 68

Algorithme de Ricart et Agrawala Règle 3 Accepte le message REL( ) depuis j Faire Nrel i := Nrel i 1 Fait Règle 4 Accepte la libération de la SC Faire R i := FAUX j X i Envoyer REL() à j X i := Fait Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 34 / 68

Algorithme de Ricart et Agrawala Déroulement avec 3 processus : P 0, P 1, P 2 1 Le processus P 1 demandent l'accès à la Section Critique, jusqu'à sa sortie de SC 2 Le processus P 2 demande l'accès à la Section Critique, une fois qu'il est entré, P 1 demande, jusqu'à la sortie des deux. 3 P 0 demande la SC en même temps que P 2, lorsque l'un des deux processus est en SC, P 1 demande, jusqu'à la sortie des trois. Question Pourquoi deux horloges logiques? Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 35 / 68

Algorithme de Ricart et Agrawala Preuve Par contradiction On suppose que P i et P j sont les deux en section critique. On peut supposer sans perte de généralité que la requête de P i a une horloge plus petite que celle de P j Puisque l'horloge de P i est plus petite que celle de P j cela signie qu'il a reçu la requête de P j après avoir fait sa demande D'après l'algorithme P j ne peut entrer en section critique que si P i lui a envoyé un message REL Puisque P i est en section critique alors il a envoyé ce message REL avant d'entrer en section critique Ce qui est impossible puisque l'horloge de P j est supérieure à celle de P i, or d'après l'algorithme P i n'envoie REL que si l'horloge reçue est plus petite Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 36 / 68

Algorithme de Ricart et Agrawala Complexité Une utilisation de la Section Critique nécessite 2 (N 1) messages : N 1 Requêtes N 1 Permissions Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 37 / 68

Synchronisation distribuée utilisant la notion d'horloges logiques Algorithme de Carvalho et Roucairol Algorithme proposé dans le but de diminuer le nombre de messages par rapport à l'algorithme de Ricart et Agrawala Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 38 / 68

Algorithme de Carvalho et Roucairol Principe de l'algorithme Soit le cas où P i demande l'accès à la Section Critique plusieurs fois de suite (état demandeur plusieurs fois de suite) alors que P j n'est pas intéressé par celle-ci (état dehors) Avec l'algorithme de Ricart et Agrawala, P i demande la permission de P j à chaque nouvelle demande d'accès à la Section Critique Avec l'algorithme de Carvalho et Roucairol, puisque P j a donné sa permission à P i, ce dernier la considère comme acquise jusqu'à ce que P j demande sa permission à P i : P i ne demande qu'une fois la permission à P j Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 39 / 68

Algorithme de Carvalho et Roucairol Variables utilisées par chaque processus P i HSC i : entier, estampille de demande d'entrée en SC, initialisée à 0 H i : entier, estampille locale, initialisée à 0 R i : booléen, le processus est demandeur de SC, init à FAUX SC i : booléen, le processus est en SC, init à SC i = FAUX X i : ensemble, processus dont l'envoi de l'avis de libération est diéré. Init à X i := XA i : ensemble des processus desquels i attend une autorisation. Init à XA i := V i Nrel i : nombre d'avis de libération attendus, init à 0. V i : voisinage de i Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 40 / 68

Algorithme de Carvalho et Roucairol Messages utilisés REQ(H) : demande d'entrée en SC REL() : message de permission Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 41 / 68

Algorithme de Carvalho et Roucairol Règle 1 Accepte la demande de SC Faire R i := VRAI HSC i := H i + 1 Nrel i := cardinal(xa i ) j XA i Envoyer REQ(HSC i ) à j Tant que (Nrel i 0) SC i =VRAI < SC> Fait Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 42 / 68

Algorithme de Carvalho et Roucairol Règle 2 Accepte le message REQ(H) depuis j Faire H i := Max(HSC i,h) + 1 Fait Si SC i (R i ((HSC i < H) ((HSC i = H) i < j))) Alors X i := X i j Sinon Envoyer REL() à j Si R i ( SC i ) j / XA i Alors Envoyer REQ(HSC i ) à j FSi XA i := XA i j FSi Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 43 / 68

Algorithme de Carvalho et Roucairol Règle 3 Accepte le message REL( ) depuis j Faire Nrel i := Nrel i 1 Fait Règle 4 Accepte la libération de la SC Faire R i := FAUX SC i := FAUX XA i := X i j X i Envoyer REL() à j X i := Fait Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 44 / 68

Algorithme de Carvalho et Roucairol Déroulement de l'algorithme avec 3 processus : P 0, P 1 et P 2 1 Les horloges logiques de chaque processus sont à 0 2 Les processusp 2 et P 1 demandent l'accès à la Section Critique en même temps 3 Déroulement de l'algorithme jusqu'à ce que les deux processus P 1 et P 2 soient entrés et sortis de Section Critique 4 Les processus P 0 et P 1 demandent la section critique 5 Arrêt du déroulement de l'algorithme lorsque les trois processus P 0 et P 1 seront entrés et sortis de Section Critique Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 45 / 68

Algorithme de Carvalho et Roucairol Question Pourquoi un processus qui reçoit une REQ renvoie-t-il parfois une REQ? Complexité Le nombre de messages requis pour une utilisation de la Section Critique est : pair car à toute requête d'entrée en SC correspond un envoi de permission fonction de la structure du système : varie entre 0 et 2*(N-1) Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 46 / 68

Sommaire 1 Introduction 2 3 4 Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 47 / 68

Algorithmes Diérentes structures de communication : Anneau : Le Lann Diusion : Suzuki-Kazami Arbre : Naimi-Trehel Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 48 / 68

Algorithme de Le Lann Système structuré en anneau Algorithme utilisant un jeton pour gérer l'accès à une Section Critique Jeton (unique pour l'application) = permission d'entrer en Section Critique Un seul processus détient le jeton à un moment donné Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 49 / 68

Algorithme de Le Lann Construction de l'anneau Construction d'un anneau avec l'ensemble des processus de l'application de façon logique Attribution d'une place à chacun des processus Chaque processus connaît son successeur dans l'anneau Initialisation : jeton attribué à un processus (exemple : Processus P 0 ) Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 50 / 68

Algorithme de Le Lann Principe de l'algorithme Quand un processus reçoit le jeton de son prédécesseur dans l'anneau : s'il est demandeur de Section Critique, il garde le jeton et entre en Section Critique s'il n'est pas demandeur de Section Critique, il envoie le jeton à son successeur dans l'anneau A la sortie de Section Critique, le processus envoie le jeton à son successeur dans l'anneau Pour des raisons d'équité, un processus ne peut pas entrer deux fois de suite en Section Critique Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 51 / 68

Algorithme de Le Lann Exercice Quelles sont les données nécessaires? Quels sont les messages échangés? Quelles règles doivent être mises en place? Écrire les règles Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 52 / 68

Algorithme de Le Lann Avantages de l'algorithme Simple à mettre en uvre Intéressant si nombreux demandeurs de la ressource Équitable en terme de nombre d'accès et de temps d'attente Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 53 / 68

Algorithme de Le Lann Inconvénients (1) Nécessite des échanges de messages même si aucun processus ne veut accéder à la Section Critique Temps d'accès à la Section Critique peut être long Perte du jeton : diculté de détecter un tel cas impossibilité de prendre en compte le temps écoulé entre deux passages du jeton (temps passé en Section Critique est très variable) des algorithmes gèrent ce problème de perte et régénération de jeton sur un anneau (non vu dans ce cours) Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 54 / 68

Algorithme de Le Lann Inconvénients(2) Problème de la panne d'un processus plus facile à gérer que dans les algorithmes précédents envoi d'un acquittement à la réception du jeton : permet de détecter la panne de l'un des processus le processus mort peut être retiré de l'anneau et le suivant prend alors sa place pour implanter ceci : chaque processus doit connaître la conguration courante de l'anneau. Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 55 / 68

Modication de l'algorithme avec anneau Exercice Jeton symbolise le droit d'entrée en section critique Un seul processus détient le jeton à un moment donné Pas forcément besoin de la structure d'anneau Ecrire un algorithme où les participants échangent un jeton pour accéder à la section critique. Dénir les données, les messages et les règles. Quelles propriétés possède cet algorithme : sûreté, vivacité, équité? Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 56 / 68

Algorithme de Suzuki-Kasami Principe de l'algorithme Chaque processus connaît l'ensemble des participants Quand P i veut accéder à la Section critique, il envoie un message REQ(H) à tous les participants Le jeton contient l'estampille de la dernière visite qu'il a eectué à chacun des processus Quand P i sort de Section Critique, il cherche le premier processus P k tel que l'estampille de la dernière requête de P k soit supérieure à celle mémorisée dans le jeton (correspondant à la dernière visite du jeton à P k ) Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 57 / 68

Exercice Quelles sont les propriétés de l'algorithme? Comment améliorer l'équité? Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 58 / 68

Algorithme de Naimi-Trehel Eviter de diuser la requête initiale Principe Les processus sont logiquement organisés en arbre construit à partir des requêtes de demande d'accès en Section Critique Seul le processus qui possède le jeton peut accéder à la section critique Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 59 / 68

Algorithme de Naimi-Trehel Structures de données Ces structures de données sont gérées de façon distribuée : Une le de requêtes : next Un arbre de chemins vers le dernier demandeur de SC : owner Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 60 / 68

Algorithme de Naimi-Trehel File de requêtes : next Processus en tête de le possède le jeton Processus en queue de le est le dernier processus qui a fait une demande d'entrée en SC Chaque nouvelle requête de SC est placée en queue de le Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 61 / 68

Algorithme de Naimi-Trehel Arbre de chemins vers le dernier demandeur de SC : owner Racine de l'arbre : dernier demandeur de SC (= queue de la le des next) Une nouvelle requête est transmise suivant le chemin des pointeurs de owner jusqu'à la racine de l'arbre (owner = nil) reconguration dynamique de l'arbre : nouveau demandeur devient la racine de l'arbre les processus faisant partie du chemin entre la nouvelle racine et les anciennes racines modient leurs pointeurs owner : owner = nouvelle racine Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 62 / 68

Algorithme de Naimi-Trehel Principe de l'algorithme (1) Chaque processus P i gère localement les éléments suivants : owner : processus qui possède probablement le jeton. Toute demande de P i d'accès à la Section Critique sera envoyée à ce processus. next : processus à qui P i devra transmettre le jeton à sa sortie de Section Critique. next est le dernier processus qui a envoyé à P i une requête d'entrée en Section Critique. Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 63 / 68

Algorithme de Naimi-Trehel Principe de l'algorithme (2) Initialisation : elected-site : processus désigné comme étant le propriétaire du jeton. C'est la racine de l'arbre. owner : initialisé à elected-site next : initialisé à nil Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 64 / 68

Algorithme de Naimi-Trehel Principe de l'algorithme (3) Quand un processus P i demande l'accès à la Section Critique S'il ne possède pas le jeton, il envoie sa requête à owner et attend de recevoir le jeton S'il possède déjà le jeton, il entre en Section Critique Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 65 / 68

Algorithme de Naimi-Trehel Principe de l'algorithme (4) Quand un processus P i reçoit une requête d'entrée en SC de la part de P j S'il possède le jeton et qu'il n'est pas en SC alors il envoie le jeton à P j et met à jour sa variable owner S'il possède le jeton et s'il est en SC, il met à jour next S'il ne possède pas le jeton et qu'il attend la section critique : il transmet la requête à owner S'il ne possède pas le jeton et qu'il attend la section critique : il enregistre la demande dans next Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 66 / 68

Algorithme de Naimi-Trehel Principe de l'algorithme (5) Quand un processus P i sort de SC, si next est initialisé il envoie le jeton à next et réinitialise next à nil Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 67 / 68

Algorithme de Naimi-Trehel Déroulement de l'algorithme Soient 5 processuss A, B, C, D et E Initialisation : le processus A possède le jeton (electednode) Le processus B demande l'accès à la section critique Lorsque le processus B est en Section Critique, le processus C en demande l'accès Lorsqu'ils sont sortis de la section critique le processus E demande. Quel est l'état de l'arbre des demandeurs au cours de ces demandes? Laurent PHILIPPE Chapitre 2: Exclusion mutuelle distribuée 68 / 68