Algorithmique Distribuée Introduction et Contexte



Documents pareils
Conception des systèmes répartis

Cours de Génie Logiciel

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

Les réseaux ad hoc : problèmes de sécurité et solutions potentielles

Introduction aux algorithmes répartis

Éléments d'architecture des ordinateurs

Introduction aux applications réparties

Les diagrammes de modélisation

Windows Internet Name Service (WINS)

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Initiation au HPC - Généralités

Ebauche Rapport finale

L exclusion mutuelle distribuée

Concept de machine virtuelle

ORDONNANCEMENT CONJOINT DE TÂCHES ET DE MESSAGES DANS LES RÉSEAUX TEMPS RÉELS 4. QUELQUES EXEMPLES DU DYNAMISME ACTUEL DU TEMPS RÉEL

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

Systèmes et algorithmes répartis

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

WEA Un Gérant d'objets Persistants pour des environnements distribués

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

Le modèle client-serveur

Algorithmique répartie

Cours Bases de données

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

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

Rapport d activité. Mathieu Souchaud Juin 2007

Problèmes liés à la concurrence

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

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

Programmation parallèle et distribuée

Chapitre 1 : Introduction aux bases de données

Chapitre 4 : Exclusion mutuelle

Le Network File System de Sun (NFS)

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

LIVRE BLANC PRODUIT. Evidian SafeKit. Logiciel de haute disponibilité pour le clustering d application

Prise en compte des ressources dans les composants logiciels parallèles

Réplication des données

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

La continuité de service

SQL Server Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

NOTIONS DE RESEAUX INFORMATIQUES

CLOUD CP3S SOLUTION D INFRASTRUCTURE SOUMIS À LA LÉGISLATION FRANÇAISE. La virtualisation au service de l entreprise. Évolutivité. Puissance.

Conduite et Gestion de Projet - Cahier des charges

Exécutif temps réel Pierre-Yves Duval (cppm)

La réplication sous SQL Server 2005

Sur un ordinateur exécutant Windows 2000 Server Ayant une adresse IP statique

Propagation sur réseau statique et dynamique

Conception de circuits numériques et architecture des ordinateurs

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

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

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

Année Universitaire 2009/2010 Session 2 de Printemps

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Check-list de maintenance du système Instructions impératives pour l'utilisateur du système Dernière mise à jour 09 juin 2011

L annuaire et le Service DNS

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

portnox pour un contrôle amélioré des accès réseau Copyright 2008 Access Layers. Tous droits réservés.

MEAD : temps réel et tolérance aux pannes pour CORBA

Recherche dans un tableau

Temps Réel. Jérôme Pouiller Septembre 2011

Systèmes d'alarme intrusion AMAX Simple et fiables

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Module 0 : Présentation de Windows 2000

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.

Module BDR Master d Informatique (SAR)

Virtualisation du poste de travail. Denis CASANOVA UFR Sciences & Technologies CUME - 29 Mars 2012

ManageEngine IT360 : Gestion de l'informatique de l'entreprise

Symantec Backup Exec.cloud

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Introduction à la Programmation Parallèle: MPI

UML et les Bases de Données

LE PROBLEME DU PLUS COURT CHEMIN

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

Messagerie asynchrone et Services Web

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Fiche technique CPU 314SC/DPM (314-6CG13)

Espace de stockage intermédiaire. Compte de Messagerie. Communication «Asynchrone» «Compte de Messagerie»

Algorithmes d'apprentissage

Implémentation des SGBD

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

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Nouvelles stratégies et technologies de sauvegarde

ACCESSNET -T IP Technique système TETRA d Hytera.

Master e-secure. VoIP. RTP et RTCP

SafeKit. Sommaire. Un livre blanc de Bull Evidian

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

Introduction aux systèmes temps réel. Iulian Ober IRIT

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)?

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

CA ARCserve Backup. Avantages. Vue d'ensemble. Pourquoi choisir CA

Objectif. Participant. Prérequis. Pédagogie. Oracle Enterprise Manager 10g Grid Control Rel 2. 5 Jours [35 Heures]

en version SAN ou NAS

Algorithmique des Systèmes Répartis Protocoles de Communications

CULTe Le samedi 9 février2008 à 15h. Conf 1 : WIFI, les bases

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

Transcription:

Algorithmique Distribuée Introduction et Contexte Laurent PHILIPPE Master 2 Informatique UFR des Sciences et Techniques 2013/2014 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 1 / 67

Introduction Qu'est que l'algorithmique distribuée? De l'algorithmique... Solution à un problème de traitement Tri Graphes Synchronisation...Pour les systèmes distribués Introduction de la communication Contraintes spéciques Laurent PHILIPPE Chapitre 1: Introduction et Contexte 2 / 67

Solutions intuitives Interroger tous les autres lors d'une réservation Informer tous les autres lors d'une annulation Laurent PHILIPPE Chapitre 1: Introduction et Contexte 3 / 67 Systèmes distribués Exemple Système distribué Une entreprise de voyage (bus) 4 antennes réparties géographiquement Problème Les clients réservent leur(s) place(s) dans les agences Peuvent annuler leur voyage Réservations simultanées pour la(les) place(s) Garantir pas de surbooking ni bus sous-utilisé, optimal

Sommaire 1 Systèmes distribués 2 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 4 / 67

Sommaire Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 1 Systèmes distribués 2 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 5 / 67

Sommaire Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 1 Systèmes distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 2 Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 6 / 67

Système Centralisé Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Caractérisation Ensemble de composants (c urs, processeurs, périphériques) partageant une mémoire et une horloge Propriétés Possibilité de dater de manière non ambiguë les évènements Possibilité d'accéder à une donnée commune Partage de ressources : processeur, mémoire, disque, périph,... Programmation concurrente synchronisée : sémaphore, mutex Exemple : problème de synchronisation en Java multi-thread Laurent PHILIPPE Chapitre 1: Introduction et Contexte 7 / 67

Système Distribué Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Caractérisation Ensemble de composants (ordinateurs,téléphones,embarqués,...) autonomes reliés par un réseau de communication, sans partage. Programmation distribuée Pas d'état global : un processus ne peut pas connaître instantanément l'état des autres processus Pas d'horloge globale : chaque processus a sa propre horloge Echanges : communication et synchronisation, uniquement par échange de messages Risque de perte de messages Risque de fautes Laurent PHILIPPE Chapitre 1: Introduction et Contexte 8 / 67

Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Systèmes Distribués : avantages / inconvénients Avantages Accès et partage de ressources distantes : distribution permet la mise à disposition de services ressources physiques : imprimantes, espace disque, processeurs, etc ressources logiques : chiers, données textuelles, audio, images, vidéo Répartition géographique : ex : système de réservation avec des centres dans diérents lieux Puissance de calcul : connexion de machines en réseau permet d'obtenir une puissance de calcul à moindre coût Disponibilité : relative indépendance des défaillances des diérents sites Flexibilité : architecture Laurent PHILIPPE distribuée Chapitre plus 1: Introduction modulaire et Contexte 9 / 67

Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Systèmes Distribués : avantages / inconvénients Inconvénients Pas d'horloge globale Pas d'état global immédiat accessible à un site Fiabilité relative : distribution permet d'introduire de la tolérance aux fautes Sécurité relative : architecture distribuée plus dicile à protéger (plusieurs points d'accès aux ressources, évolution dynamique de l'architecture) Laurent PHILIPPE Chapitre 1: Introduction et Contexte 10 / 67

Sommaire Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 1 Systèmes distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 2 Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 11 / 67

Les systèmes de calculs distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Les clusters : Ensemble de n uds identiques ayant le même OS connectés par un réseau local high speed (ex : InniBand) Architecture caractérisée par une certaine homogénéité Utilisés pour la programmation parallèle : un même programme est exécuté en parallèle sur plusieurs machines. (SPMD) Laurent PHILIPPE Chapitre 1: Introduction et Contexte 12 / 67

Les systèmes de calculs distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Les grilles : Système prote d'un ensemble de machines qui sont ou ne sont pas dédiées Machines peuvent être éloignées Architectures hétérogènes : au niveau hardware, système... Calcul, données, applications, etc. Types de grilles : Desktop grid Resource Grid Service Grid Laurent PHILIPPE Chapitre 1: Introduction et Contexte 13 / 67

Les systèmes d'information distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Systèmes orientés données Les systèmes à base de transactions : systèmes de gestion de bases de données distribués. Les EAI (Enterprise Application Integration) : coordination de diérents systèmes Systèmes coopératifs Midleware : gestion coordonnées de systèmes WEB Services : accès à des serveurs distants Laurent PHILIPPE Chapitre 1: Introduction et Contexte 14 / 67

Stabilité des systèmes précédents Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Propriétés Noeuds xes Noeuds ables : peu de fautes Connexion permanente et de haute qualité Laurent PHILIPPE Chapitre 1: Introduction et Contexte 15 / 67

Les systèmes mobiles et "pervasifs" Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Exemples Ordinateurs portables, téléphones, etc. Robots, drônes, etc Réseaux de capteurs : collecte dans un environnement, surveillance médicale,... Réseaux dius : domotique, réseaux had-hoc,... Instabilité Noeuds peuvent apparaître/disparaître Pas toujours de connexion réseau Mobilité des noeuds Systèmes peu traités dans ce cours Laurent PHILIPPE Chapitre 1: Introduction et Contexte 16 / 67

Sommaire Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 1 Systèmes distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 2 Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 17 / 67

Une couche middleware Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Dénition Couche d'exécution distribuée entre les systèmes d'exploitation locaux et les applications Objectifs Orir une interface permettant de : rendre indépendantes les applications par rapport aux plates-formes cacher la distribution aux utilisateurs : orir une interface la plus proche possible du "centralisé" Laurent PHILIPPE Chapitre 1: Introduction et Contexte 18 / 67

Une couche middleware Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Services facilitant l'exploitation des ressources Datation Synchronisation Nommage/Localisation Courtier Sécurité Messaging Transactions distribuées... Laurent PHILIPPE Chapitre 1: Introduction et Contexte 19 / 67

Distribué ou centralisé? Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Centralisé souvent plus facile mais... Concentration en un point conduit à la surcharge Fragilité face à la tolérance aux pannes Pas toujours adapté aux besoins (ex : traitements locaux) Distribué souvent plus résistant mais... Diculté de mise en uvre N'évite pas tous les risques de surcharge (ex : diusion systématique de messages) Preuve complexe Laurent PHILIPPE Chapitre 1: Introduction et Contexte 20 / 67

Distribué ou centralisé? Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares Les deux concepts ne sont cependant pas opposés Modèles mixtes : Hiérarchique (ex : un maître délègue aux serveurs secondaires) Redondance (ex : serveur de backup) Super-nodes Choix dépend des dicultés de réalisation : pragmatisme Laurent PHILIPPE Chapitre 1: Introduction et Contexte 21 / 67

Sommaire Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 1 Systèmes distribués 2 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 22 / 67

Modèle conceptuel de système distribué Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Objectifs Modèle Description statique et comportementale Abstraction pour faciliter l'analyse Validation et preuve de propriétés Les éléments de modélisation Processus, sites, n uds : notion de site logique (processus) Communication : liens, topologie, protocoles (point à point, diusion),... Connaissance partielle de chaque site logique Laurent PHILIPPE Chapitre 1: Introduction et Contexte 23 / 67

Sommaire Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 1 Systèmes distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 2 Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 24 / 67

Site logique ou processus Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Dénitions Elément logiciel eectuant une tâche donnée tâche : ensemble d'instructions instruction : correspond à un évènement local du processus évènement local : changement d'état du processeur, émission de message réception de message Laurent PHILIPPE Chapitre 1: Introduction et Contexte 25 / 67

Site logique ou processus Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Possède Un identiant unique Un état local Une mémoire locale Une horloge locale Connaît (hypothèse) Les processus avec qui il peut communiquer et leur nombre (voisins) Les procédures de communication Eventuellemnt l'état approximatif des autres processus Laurent PHILIPPE Chapitre 1: Introduction et Contexte 26 / 67

Sommaire Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 1 Systèmes distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 2 Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 27 / 67

Protocoles de communication point à point diusion Laurent PHILIPPE Chapitre 1: Introduction et Contexte 28 / 67 Systèmes distribués La communication Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Topologie La topologie d'un réseau décrit la façon dont les processus peuvent communiquer entre eux. Exemple de topologies anneau uni ou bi-directionnel réseau complet arbre grille

Communication synchrone/asynchrone Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Communication synchrone Entre les processus P i et P j se fait par rendez-vous : le premier processus qui atteint un point de communication attend l'autre Synchronisation entre l'émetteur et le récepteur Communication asynchrone Le processus P i envoie un message et continue son exécution sans se préoccuper si P j l'a reçu Délais de communication arbitraires mais nis On ne sait pas quand un message émis sera reçu Cas particulier de la perte de message : algorithmes tolérants aux pannes Laurent PHILIPPE Chapitre 1: Introduction et Contexte 29 / 67

Sommaire Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 1 Systèmes distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 2 Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 30 / 67

Modèle de système distribué Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Graphe de processus Graphe : G(P, C) Sommets = sites logiques, P ensemble de processus Arcs = liaisons de communication entre les sites logiques, C ensemble de liens Arc entre P i et P j signie que P i et P j peuvent communiquer sans intermédiare Laurent PHILIPPE Chapitre 1: Introduction et Contexte 31 / 67

Modèle d'exécution distribuée Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Chronogramme Représentation graphique Ordre des évènements Déroulement chronologique sur chaque site Représentation simple mais limitée Évènements Emission de message Réception de message Evènement interne Laurent PHILIPPE Chapitre 1: Introduction et Contexte 32 / 67

Exemple de chronogramme Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Processus 1 Processus 2 Processus 3 E1.1 E2.1 E1.2 E2.2 E3.1 E1.3 E1.4 E2.5 E2.3 E2.4 E3.2 E3.3 E3.4 E1.5 E2.6 E3.5 E1.6 E2.7 E3.6 E3.7 E2.8 E3.8 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 33 / 67

Modèle d'exécution distribuée Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Modèle des évènements Pour une exécution C (calcul) distribuée d'un ensemble P de processus L'ensemble des évènements est noté E v, L'exécution locale d'un processus p est composée d'une séquence cp, 0 cp, 1 cp, 2... d'états du processus, où cp 0 est l'état initial. La transition du l'état cp i 1 à l'état cp i du processus p est marquée par l'occurence de l'évènement ep i On dénit E v = p P {e0 p, ep, 1 ep, 2...} Laurent PHILIPPE Chapitre 1: Introduction et Contexte 34 / 67

Modèle d'exécution distribuée Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Modèle des communications Un évènement peut-être interne, une émission ou une réception L'état c i p contient donc l'ensemble des variables du processus dans l'état i et l'historique complète des communications : La liste sentpq i des messages envoyés de p à q parmi les évènements ep 0 à ei p, la liste rcvdpq i des messages que q à reçu de p parmi les évènements ep 0 à ei p, Laurent PHILIPPE Chapitre 1: Introduction et Contexte 35 / 67

Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Restrictions du modèle de système distribué Nombre de processus est constant Topologie de communication est xe Seules interactions possibles : échange de messages Aucun processus n'est isolé Laurent PHILIPPE Chapitre 1: Introduction et Contexte 36 / 67

Sommaire Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 1 Systèmes distribués Systèmes centralisés vs. système distribué Les diérents types de systèmes distribués Les middlewares 2 Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 37 / 67

L'algorithmique distribuée Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Qu'est ce que c'est? Algorithmique Point de vue modélisé Spécique aux problèmes soulevés par les systèmes distribués Caractéristiques Programmes + Communication par messages Pas de donnée partagée : chaque programme déni ses propres données Exécution : déroulement en parallèle des programmes, synchronisation/échanges sur les messages Preuve Laurent PHILIPPE Chapitre 1: Introduction et Contexte 38 / 67

Modèle algorithmique Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Algorithme des processus Tous les processus exécutent le même algorithme Décomposé en : Données, les données locales aux processus, valeur d'initialisation Messages, les messages utilisés (envoyés/reçus) par le processus, peuvent contenir des données si besoin Règles, les fonctions du processus. Composées en général de : Règle d'intialisation, processus initiateur Règle prinicipale, liée à la fonction de l'algorithme Règles de réception des messages, sur le mode message En général on fait l'hypothèse du traitement atomique, au moins sur les règles de réception des messages Laurent PHILIPPE Chapitre 1: Introduction et Contexte 39 / 67

Modèle algorithmique Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Modèle de communication Diérents types de messages (ACK, REQ, etc.) envoyer : Envoie TYPE(parametres) à destinataire recevoir : Reçoit TYPE(parametres) de emetteur Dénition de règles associées aux réceptions Propriétés Synchronisation dépend des proriétés des fonctions de communication Peuvent être dénies spéciquement (précisé) Mais généralement asynchrone : envoi du message sans attendre sa réception Laurent PHILIPPE Chapitre 1: Introduction et Contexte 40 / 67

Exemple : diusion dans un anneau Les sites logiques La communication Les Modèles de systèmes distribués Le modèle algorithmique Variables pour chaque processus P i : Succ i : Successeur de P i dans l'anneau Messages utilisés : BROADC(P, Msg) : Message de diusion Règle 1 : P i demande de diuser Msg sur l'anneau début Envoie BROADC(i, Msg) à Succ i n Règle 2 : P i reçoit BROADC(init, Msg) de P j début if init!=i then Envoie BROADC(init, Msg) à Succ i n Laurent PHILIPPE Chapitre 1: Introduction et Contexte 41 / 67

Sommaire 1 Systèmes distribués 2 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 42 / 67

Exemple simple Accès partagé à un garage N portes P places de parking Problème Limite du nombre max de voitures Chaque porte d'entrée dispose seulement de données locales Comment savoir si une voiture peut sortir? Comment savoir si une voiture peut entrer? Laurent PHILIPPE Chapitre 1: Introduction et Contexte 43 / 67

Accès partagé à un garage Contraintes/Hypothèses Pas de données partagées Pas d'horloge commune Échanges entre portes uniquement basés sur les messages On suppose que toutes les portes peuvent communiquer directement entre elles Une voiture qui demande à entrer/sortir entre/sort eectivement Exercice Proposer plusieurs solutions permettant de garantir qu'aucune voiture ne rentre sans avoir de place. Laurent PHILIPPE Chapitre 1: Introduction et Contexte 44 / 67

Accès partagé à un garage Solutions 1 Une porte centralise la valeur 2 Un quota est attribué à chaque porte 3 Les portes qui n'ont plus de quota interrogent les autres pour savoir si une place s'est libérée 4 Les portes communiquent entre elles pour gérer le compteur en commun 5 Chacun travaille indépendemment, collaboration seulement si le nombre de places passe sous un seuil 6 Et encore bien d'autres solutions... Laurent PHILIPPE Chapitre 1: Introduction et Contexte 45 / 67

Accès partagé à un garage Exercice 1 Ecrire les algorithmes des portes pour l'entrée et la sortie d'une voiture dans le cas centralisé. 2 Donner la preuve de cet algorithme Contraintes Les portes secondaires demandent à la porte principale Pas de mise en attente des voitures : plus de place = refus d'accès Le résultat attendu est une variable ACCORD ou REFUS Laurent PHILIPPE Chapitre 1: Introduction et Contexte 46 / 67

Solution - 1 : porte principale (maître) Variables la porte P m : int compteur initialisé a P Messages utilisés :?? Règle 1 : Une voiture demande d'entrer début if compteur == 0 then return REFUS else compteur = compteur - 1 return ACCORD n Règle 2 : Une voiture demande de sortir début compteur = compteur + 1 n Laurent PHILIPPE Chapitre 1: Introduction et Contexte 47 / 67

Solution - 1 : portes secondaires (esclaves) Demandent à la porte principale : message ACCES, de demande message RETOUR(rep), qui contient la réponse message SORTIE pour informer qu'une voiture sort Laurent PHILIPPE Chapitre 1: Introduction et Contexte 48 / 67

Solution - 1 : portes secondaires (esclaves) Variables la porte P i : m identicateur de la porte maître Messages utilisés : ACCES : demande d'accès pour une voiture RETOUR(rep) : réponse rep du maître SORTIE : informe la porte maître de la sortie d'une voiture Règle 1 : Une voiture demande d'entrer début Envoie ACCES à m n Règle 2 : Réception du message RETOUR(rep) du maître début return rep n Règle 3 : Une voiture demande de sortir début compteur = compteur + 1 n Laurent PHILIPPE Chapitre 1: Introduction et Contexte 49 / 67

Solution - 1 : porte principale (maître) Variables la porte P m : int compteur initialisé a P Messages utilisés : ACCES : demande d'accès pour une voiture RETOUR(rep) : réponse rep du maître SORTIE : informe la porte maître de la sortie d'une voiture Règle 1 : Une voiture demande d'entrer Règle 2 : Une voiture demande à sortir Règle 3 : Reçoit un message ACCES de P i début if compteur == 0 then envoie RETOUR(REFUS) à P i else compteur = compteur - 1 ; RETOUR(ACCORD) à P i n Règle 4 : Reçoit un message SORTIE début compteur = compteur + 1 n Laurent PHILIPPE Chapitre 1: Introduction et Contexte 50 / 67

Solution - 1 Preuve Montrer la proposition : aucune voiture entre dans le parking si il n'y a pas de place disponible Idée Repose sur une autre assertion : le nombre compteur est le compte exact du nombre de voitures dans le parking : Quand une voiture entre, quelque soit la porte utilisée, le compteur est décrémenté Quand une voiture sort, quelque soit la porte utilisée, le compteur est incrémenté Laurent PHILIPPE Chapitre 1: Introduction et Contexte 51 / 67

Solution - 1 Problèmes Synchronisation chez la porte principale : concurence entre les fonctions locales et distantes, concurence entre les fonctions distantes Centralisé : panne de la porte principale entraîne une panne du parking Laurent PHILIPPE Chapitre 1: Introduction et Contexte 52 / 67

Accès partagé à un garage Exercice 1 Écrire les algorithmes des portes pour l'entrée et la sortie d'une voiture dans le cas où un quota est attribué à chaque porte 2 Donner la preuve de cet algorithme Contraintes Au début chaque porte se voit attribuer le même quota On suppose que le nombre de places est divisible par le nombre de portes Pas de mise en attente des voitures : plus de place = refus d'accès Le résultat attendu est une variable ACCORD ou REFUS Laurent PHILIPPE Chapitre 1: Introduction et Contexte 53 / 67

Solution - 2 : quotas d'entrées par porte Variables la porte P i : int compteur initialisé à P N Messages utilisés : Règle 1 : Une voiture demande d'entrer début if compteur == 0 then return REFUS else compteur = compteur - 1 return ACCORD n Règle 2 : Une voiture demande à sortir début compteur = compteur + 1 n Laurent PHILIPPE Chapitre 1: Introduction et Contexte 54 / 67

Solution - 2 Preuve Montrer la proposition : aucune voiture n'entre dans le parking si il n'y a pas de place disponible Idée Bien sûr cet algorithme ne permet pas de garantir cette proposition, il sut pour cela de donner un exemple où cela ne marche pas A partir de l'état intial, P + 1 voitures arrivent à la porte i N Aucune voiture sort par cette porte Aucune voiture n'entre par une autre porte La dernière voiture qui arrive à la porte i ne peut pas rentrer alors qu'il reste des places Laurent PHILIPPE Chapitre 1: Introduction et Contexte 55 / 67

Solution - 2 Problèmes Ne permet pas d'utiliser toutes les places Toutes les voitures sortent par la même porte Une porte tombe en panne Laurent PHILIPPE Chapitre 1: Introduction et Contexte 56 / 67

Accès partagé à un garage Exercice 1 Solutions 2 + lorsque le quota est épuisé, les portes s'interrogent entre elles pour savoir si une place s'est libérée 2 Donner la preuve de cet algorithme Contraintes Au début chaque porte se voit attribuer le même quota On suppose que le nombre de places est divisible par le nombre de portes Pas de mise en attente des voitures : plus de place = refus d'accès Le résultat attendu est une variable ACCORD ou REFUS Laurent PHILIPPE Chapitre 1: Introduction et Contexte 57 / 67

Solution - 4 Les portes communiquent pour gérer le compteur en commun Quelques pistes : Mise en place d'un jeton : Le jeton porte le nombre de places : doit être rapide si grand nombre de portes le jeton distribue des places libres aux portes d'entrée Consensus Maître tournant : le maître peut modier la valeur, demande à devenir maître, enregistre à qui a donné la maîtrise Laurent PHILIPPE Chapitre 1: Introduction et Contexte 58 / 67

Exercices A faire Solution - 4 : anneau A faire Solution - 5 : consensu Laurent PHILIPPE Chapitre 1: Introduction et Contexte 59 / 67

Sommaire 1 Systèmes distribués 2 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 60 / 67

Complexité d'un algorithme distribué Deux points de vue sur la complexité 1 Temps local au processus Temps de l'exécution d'un calcul local Temps de transfert de message 2 Temps entre processus Nombre de messages Nombre de processus impliqués Choix de complexité dépend des propriétés du système : performances réseau, topologie, etc. Laurent PHILIPPE Chapitre 1: Introduction et Contexte 61 / 67

Propriétés d'un algorithme distribué Propriété de sûreté Un état catastrophique ne sera jamais atteint Exemple : accès en exclusion mutuelle où une section critique est accessible par au plus un processus Propriété de vivacité Un état de satisfaction sera fatalement atteint Exemple : toute demande d'accès à la section critique sera satisfaite ou encore tout message émis sera reçu Laurent PHILIPPE Chapitre 1: Introduction et Contexte 62 / 67

Propriété de ponctualité Des contraintes temporelles peuvent être xées Exemple : une échéance de remise de messages au plus tard Laurent PHILIPPE Chapitre 1: Introduction et Contexte 63 / 67 Systèmes distribués Propriétés d'un algorithme distribué Propriété d'équité Garantir que les processus ont tous les mêmes chances d'accès à une ressource Exemple : il n'y a pas un processus qui accède plus à une section critique Propriété de terminaison L'algorithme distribué se termine ou conduit à une décision Exemple : cas de l'élection d'un maître

Sommaire 1 Systèmes distribués 2 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 64 / 67

Première approche : comprendre les problèmes Connaître les algorithmes Connaître des solutions aux problèmes Savoir les appliquer à diérents problèmes Laurent PHILIPPE Chapitre 1: Introduction et Contexte 65 / 67

Sommaire 1 Systèmes distribués 2 3 4 5 6 Laurent PHILIPPE Chapitre 1: Introduction et Contexte 66 / 67

Cours de Gérard Padiou (ENSEEIHT Toulouse) Cours de Eric Cariou (Université de Pau) Livres : A.Tannenbaum "Distributed Systems" Prentice Education Ed. A.D. Kshemkalyani, M. Singhal, Distributed Computing : Principles, Algorithms, and Systems, Cambridge University Press Laurent PHILIPPE Chapitre 1: Introduction et Contexte 67 / 67