L exclusion mutuelle distribuée



Documents pareils
Chapitre 4 : Exclusion mutuelle

Introduction aux algorithmes répartis

Chapitre 5 : Flot maximal dans un graphe

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

INF601 : Algorithme et Structure de données

Bases de données documentaires et distribuées Cours NFE04

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

ARBRES BINAIRES DE RECHERCHE

Le langage C. Séance n 4

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

Ebauche Rapport finale

Cours de Systèmes d Exploitation

Chp. 4. Minimisation d une fonction d une variable

Gestion des Clés Publiques (PKI)

Système de contrôle du trafic d une ligne de métro Dossier de tests

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Arbres binaires de recherche

Raisonnement probabiliste

Structure fonctionnelle d un SGBD

Les processus légers : threads. Système L3, /31

Données Réparties. Thibault BERNARD.

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

6605 MFP 3615 MFP. Sommaire : Paramètres généraux. Réglages de l Horloge et des Bacs. Paramètre Copie (par défaut) Paramètres Réseaux (IP)

Les structures de données. Rajae El Ouazzani

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

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Partie 7 : Gestion de la mémoire

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

Introduction à l étude des Corps Finis

API FTP SMSENVOI V1.1

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Algorithmique des Systèmes Répartis Protocoles de Communications

LE PROBLEME DU PLUS COURT CHEMIN

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Programmation linéaire

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

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Plus courts chemins, programmation dynamique

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

gestion des processus La gestion des processus

Administration Réseau sous Ubuntu SERVER Serveur DHCP

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

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

SYSTÈME DE GESTION DE FICHIERS

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

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

ELEC2753 Electrotechnique examen du 11/06/2012

Administration réseau Résolution de noms et attribution d adresses IP

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Algorithmique et structures de données I

ELECTIONS MUNICIPALES 2014 LISTE ELECTORALE

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Messagerie vocale Édition Îles-de-la-Madeleine. Guide d utilisation télébec telebec.com

Erreurs les plus fréquentes Guide de dépannage

Algorithmes d'apprentissage

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

(Third-Man Attack) PASCAL BONHEUR PASCAL 4/07/2001. Introduction. 1 Domain Name Server. 2 Commandes DNS. 3 Hacking des serveurs DNS

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

Cours de Base de Données Cours n.12

Quelques Algorithmes simples

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Module BDR Master d Informatique (SAR)

Guide Utilisateur ACQUIT : Anomalies issues du Guichet XML

Polytech Montpellier IG PROJET C Réseaux sociaux : recherche de composantes fortement connexes

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

1 Mesure de la performance d un système temps réel : la gigue

Cours d initiation à la programmation en C++ Johann Cuenin

Fiche n 2 : Créer une activité (avec ressource associée)

Dynamic Host Configuration Protocol

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

FACTURATION. Menu. Fonctionnement. Allez dans le menu «Gestion» puis «Facturation» 1 Descriptif du dossier (onglet Facturation)

Génie Logiciel avec Ada. 4 février 2013

Cours d Algorithmique et de Langage C v 3.0

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Introduction à la sécurité Cours 8 Infrastructure de clés publiques. Catalin Dima

Allocation de l adressage IP à l aide du protocole DHCP.doc

4 Exemples de problèmes MapReduce incrémentaux

Systèmes et algorithmes répartis

CCP PSI Mathématiques 1 : un corrigé

données en connaissance et en actions?

Nouveau! Accédez directement à vos messages vocaux, sans mot de passe, en faisant le nouveau code 9 8 * à partir du téléphone

Serveurs de noms Protocoles HTTP et FTP

MIS 102 Initiation à l Informatique

Foire aux questions. 2. Quand MusicMark a- t- elle été lancée?

Baladeur Santé VITAL'ACT

Continuité et dérivabilité d une fonction

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

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

Google Adresses. Validez la fiche de votre entreprise ou organisation sur Google Maps

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

TP3 : Manipulation et implantation de systèmes de fichiers 1

CEG4566/CSI4541 Conception de systèmes temps réel

Recycle Bin (Corbeille Active directory)

Sommaire. Structure. Liste simplement chaînée ALGORITHME ET STRUCTURES DE DONNÉES II

Transcription:

L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué L algorithme d exclusion mutuelle sur un serveur centralisé est le suivant : On souhaiterait obtenir : Chaque site bénéficiera de sa propre file d attente. Chaque site s i possède une horloge logique h i h i vaut initialement 0 Tout message envoyé par s i est estampillé par son propre id et par h i de la manière suivante : Lors de la réception de MESSAGE(m, i hi) Faire Envoyer à son voisin MESSAGE(m,i,h_i)

Lors de la réception de MESSAGE(m,j, h_i) Faire h_i <- max(h_i, h_j) + 1 Ce mécanisme d estampillonage permet d établir un ordre total et unique sur tous les messages échangés : Un message (m, i, h i ) précède un message (m, j, h j ) si et seulement si : (h i < h j ) (h i = h j (i < j)) Hypothèse Le système centralisé est fiable, il vérifie : Pas de perte de messages Pas d altération de messages Pas de duplication des messages Le délai de transmission est aléatoire, mais fini Principes Un site voulant accéder à la ressource critique diffuse sa requête à tous les autres sites. Les sites recevant la requête l enregistrent dans leurs files d attente locale et acquitent le message. Le mécanisme d estampillage permet d ordonnancer totalement les messages (l asynchronisme et la vitesse d acheminement des messages est variable, ce qui justifie l estampillage). Lorsqu un site quitte la section critique, il diffuse un message de libération à tous les autres sites. Un site accède à la ressource critique quand sa requète est la plus ancienne dans sa propre file d attente et donc dans toute les files d attente de tous les autres sites (même ordre grâce à l estampillage). Variables locales à chaque processus P i On suppose les sites numérotés de 0 à n 1. h i N, horloge logique locale de processus f i [0; n 1], vecteur de messages : désigne la file d attente de P i. Par exemple, f i [j] contient le dernier message envoyé de P i à P j. Initialement, j [0; n 1], f i [j] < (lib, 0, j).

Messages utilisés MESSAGE(type, h, n-site) : message envoyé par P i à tous ses voisins. type REQ, LIB, ACK, où : REQ : demande d accès à la ressource critique LIB : signification de libération de la ressource critique ACK : accusé de réception (acquittement). h : horloge locale n-site : identifiant de processus Code de l algorithme Lors de l accès à la ressource critique Faire diffuser MESSAGE(REQ, h_i, i) f_i[i] <- (REQ, h_i, i) attendre; Pour tout j!= i Faire Si ESTAMPILLE(f_i[i]) < estampillage(f_j[i]) Alors << Section Critique >> si pour diffuser MESSAGE(LIB, h_i, i) f_i[i] <- (LIB, h_i, i) Lors de la réception de MESSAGE(REQ, k, j) Faire h_i <- max(h_i, k) + 1 f_i[j] <- (REQ, k, j) envoyer MESSAGE(ACK, h_i, i) à P_j Lors de la réception de MESSAGE(LIB, k, j) Faire h_i <- max(h_i, k) // ou min? à vérifier f_i[j] <- (LIB, h_i, i)

Lors de la réception de MESSAGE(ACK, k, j) Faire h_i <- max(h_i, k) // ou min, à vérifier Si (type(f_i[j])!= REQ) Alors f_i[j] <- (ACK, k, j) si Fonction estampille(t, h, num) Faire retourner(h, num) Fonction type(t,h,num) Faire retourner t Appréciation de la complexité En terme de nombre de message, on a 3(n 1), soit équivalent à une complexité en O(n 2 ). L algorithme de Naimi-Tréhel Cet algorithme est intéressant car le nombre de message est réduit à O(log(n)), donc il est meilleurs que les algorithmes linéaires (i.e. en O(n)). Hypothèses On considère qu il n y a pas de faute lors de l éxecution (pas de perte de messages, pas de duplication et pas d altération). Le maillage est complet. Un arbre est construit à partir du graphe. La racine est le processus ayant le plus petit identifiant. Principes Les sites (processus) sont structurés sous forme d une arborescence. Chaque site connait son père (prédessesseur), à l exception de la racine.

Une demande d entrée en section critique est acheminée de père en père jusqu à la racine. Celle-ci se trouve dans l un des cas suivants : Elle possède le privilège d utiliser le jeton mais ne l utilise pas (pas d entrée en Section Critique). Elle envoie une réponse positive au premier demandeur de la S.C. Elle possède le privilège et l utilise. Elle met les demandeurs en attente. Elle attend le privilège. Elle met les demandes en attente avec mise à jour de son suivant. Variables locales privilege i : Booléen initialisé à Faux, sauf pour la racine. Il vaut Vrai si P i possède le jeton. pred i : pointeur sur le dernier demandeur connu de P i. pred i vaut null si P i est racine. suivant i : indique le successeur de P i souhaitant entrer en S.C. suivant i <- null lorsqu aucun autre processus attend l entrée en S.C. demandeur i : booléen initialisé à Faux, valant Vrai lorsque P i est demandeur de la S.C. Messages utilisés REQUET E(P k ) : demande d entrée en S.C. de la part du processus P k. JETON() : Message envoyé au suivant pour lui signifier son droit d entrée en S.C. Code de l algorithme Lors de la demande d entée en S.C. par P_i Faire demandeur_i <- Vrai Si (pred_i!= Nil) Alors envoyer REQUETE(P_i) à pred_i pred_i <- Nil si attendre (privilege_i <- Vrai) < S.C. > privilege_i <- Faux demandeur_i <- Faux Si (suivant_i!= Nil) Alors envoyer JETON() à suivant_i suivant_i <- Nil si

Lors de la réception de REQUETE(P_k) par P_i depuis P_j Faire Si (pred_i = Nil) Alors Si (demandeur_i = Vrai) Alors suivant_i <- P_k Sinon envoyer JETON() à P_k privilege_i <- Faux si Sinon envoyer REQUETE(P_k) à pred_i si pred_i <- P_k Lors de la réception de JETON() par P_i depuis P_j Faire privilege_i <- Vrai