plan Systèmes et algorithmes répartis Plan Sources Principes et concepts Les parfums Les épines Exemple Un principe de conception

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "plan Systèmes et algorithmes répartis Plan Sources Principes et concepts Les parfums Les épines Exemple Un principe de conception"

Transcription

1 Préambule Définition et problématique Modélisation des systèmes répartis Préambule Définition et problématique Modélisation des systèmes répartis plan Systèmes et algorithmes répartis et concepts Philippe Quéinnec, Gérard Padiou Département Informatique et Mathématiques Appliquées ENSEEIHT 19 novembre Préambule 2 Définition et problématique Les parfums Les épines Un principe de conception 3 Modélisation des systèmes répartis Objectifs Aspect statique Aspect dynamique Systèmes et algorithmes répartis I 1 / 35 Systèmes et algorithmes répartis I 2 / 35 Plan Préambule Définition et problématique Modélisation des systèmes répartis Sources Préambule Définition et problématique Modélisation des systèmes répartis 1 Préambule 2 Définition et problématique Les parfums Les épines Un principe de conception 3 Modélisation des systèmes répartis Objectifs Aspect statique Aspect dynamique M. Raynal, Distributed Algorithms for Message-Passing Systems, Fault-Tolerant Agreement in Synchronous Message-passing Systems et Communication and Agreement Abstractions for Fault-Tolerant Asynchronous Distributed Systems, S. Krakowiak, Algorithmique et techniques de base des systèmes répartis, proton.inrialpes.fr/ krakowia/enseignement/m2r-sl/sr/ A.D. Kshemkalyani, M. Singhal, Distributed Computing : Principles, Algorithms, and Systems, ajayk/dcs-book Systèmes et algorithmes répartis I 3 / 35 Systèmes et algorithmes répartis I 4 / 35

2 Préambule Définition et problématique Modélisation des systèmes répartis Préambule : tendance Préambule Définition et problématique Modélisation des systèmes répartis Préambule : aspects de la distribution (répartition) Répartition communication entre objets informatisés Actuellement : ordinateurs + téléphones + tablettes toujours connectés L Internet des objets (The Internet of things) 24 milliards d appareils connectés entre eux en 2020 du porte-clefs au réfrigérateur en passant par les plantes L informatique dans les nuages (cloud computing) : l accès pour tous aux ressources/services informatiques Distributed Applications Computing Algorithms Architectures Systems Systèmes et algorithmes répartis I 5 / 35 Systèmes et algorithmes répartis I 6 / 35 Préambule Définition et problématique Modélisation des systèmes répartis Préambule : de quoi allons nous parler? Plan Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Distributed Applications Systems Computing Algorithms Architectures Temps réel & Multimedia, Simulation répartie, Objets communicants, Mobilité, etc Introduction, Causalité, Modèle standard algorithmiques Problèmes génériques : élection, terminaison, consensus, cliché, etc Fichiers, Mémoire répartie, Tolérance aux fautes (diffusion de groupe), etc 1 Préambule 2 Définition et problématique Les parfums Les épines Un principe de conception 3 Modélisation des systèmes répartis Objectifs Aspect statique Aspect dynamique Systèmes et algorithmes répartis I 7 / 35 Systèmes et algorithmes répartis I 8 / 35

3 Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Modèle centralisé ou réparti Les parfums Modèle centralisé Les processus se partagent des ressources critiques ou pas Modèle réparti Les processus échangent des données par messages Apports de la répartition Accès aux ressources distantes et partage : ressources physiques : imprimantes, traceurs... ressources logiques : fichiers données : textuelles, audio, images, vidéo Répartition géographique Puissance de calcul Disponibilité Flexibilité Systèmes et algorithmes répartis I 9 / 35 Systèmes et algorithmes répartis I 10 / 35 Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception MAIS modèle d exécution plus complexe Préambule Définition et problématique Modélisation des systèmes répartis Idée... pour en savoir plus Les parfums Les épines Un principe de conception Problèmes... m1 est-il toujours envoyé avant m2 dans toute exécution? m1 est-il toujours reçu avant m2 dans toute exécution? Peut-on déduire? date(r 1 ) < date(r 2 )? date(e 1 ) < date(e 2 ) e 1 m 1 r 1 S 3 S 1 r 2 e 2 m 2 S 2 Dates dans messages date(e 1 ) < date(e 2 )? e 1 avant? e 2 Pas sûr, car l horloge n existe pas!!! <m 1,date(e 1 )> e 1 r 1 S 3 S 1 e S 2 2 r 2 <m 2,date(e 2 )> Fort non déterminisme : explosion des états possibles Systèmes et algorithmes répartis I 11 / 35 Systèmes et algorithmes répartis I 12 / 35

4 En réalité Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Modèle d exécution plus complexe (suite) S 1 il existe 2 horloges date(e 1 ) < date(e 2 ) e 1 avant e 2 Si les horloges sont synchronisées! e 1 <m 1,date(e 1 )> r 1 S 3 S 1 r 3 e 2 S 2 H 1 <m 2,date(e 2 )> H 2 Problème P3 veut savoir si P1 ou P2 ont ouvert des fichiers? Connaissance instantanée impossible f 1 ouvert? P 3 f 1 P 1 ouvert? f 2 P 2 f 2 S 2 Pas de référentiel temporel unique Un processus ne peut pas connaître instantanément l état courant de ses partenaires. S 3 Systèmes et algorithmes répartis I 13 / 35 Systèmes et algorithmes répartis I 14 / 35 Préambule Définition et problématique Modélisation des systèmes répartis Les épines, en résumé Les parfums Les épines Un principe de conception Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Thèmes de recherche sur la répartition Impact de la répartition Pas d horloge globale : chaque site a son horloge Pas d état global immédiat accessible à un site Fiabilité globale relative : probabilité non négligeable d un arrêt d une machine, d un processus quel que part Sécurité relative : usagers potentiels nombreux Non déterminisme (parallélisme) : systèmes asynchrones Conséquence Modèle de calcul différent du cas centralisé Ordre partiel entre les événements d un calcul Calcul d état global passé Concevoir, modéliser, expérimenter Modélisation théorique Algorithmique Langages Systèmes d exploitation Intergiciels (middleware) Systèmes et algorithmes répartis I 15 / 35 Systèmes et algorithmes répartis I 16 / 35

5 Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception : découvrir le graphe de communication Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Découverte : principe de l inondation Le problème On considère un ensemble de sites connectés 2 à 2 par des canaux bidirectionnels. Comment chaque site peut-il apprendre la structure du graphe? Connaissance initiale Chaque site connaît son identité (id i ) et l identité de ses voisins voisins i = {id x, id y,...}. Le couple (id i, id j ) représente le canal entre id i et id j (et symétriquement). Aucun site ne connaît l identité de tous les sites, ni leur nombre. c5 P1 P3 c1 c3 c4 c2 P4 P2 c6 c7 P5 Le problème redéfini Comment chaque site id i peut-il connaître l ensemble des canaux (id j, id k ) existants? Principe Un site i qui veut connaître le graphe diffuse à tous ses voisins sa position (id i, voisins i ) Quand un site i reçoit un message (id k, voisins k ) pour la première fois, il met à jour sa connaissance du graphe et transmet le message à ses voisins. Sinon, il l ignore. Il conclut quand il a reçu un message de tous les sites dont il a eu connaissance via les voisinages Systèmes et algorithmes répartis I 17 / 35 Algorithme pour le site i Opération start() = for each id j voisins i do send (id i, voisins i ) to id j end for sites known i {id i } Variables locales au site i : id i : son identité (const) voisins i : ses voisins (const) sites known i : les sites dont il a reçu un message channels known i : les canaux qu il a appris when receiving (id, voisins) do if sites known i = then start(); fi if id sites known i then -- premier message de id sites known i sites known i {id} channels known i channels known i { (id, id k ) : id k voisins } for each id j voisins i -- propage le message send (id, voisins) to id j end for if (id j, id k ) channels known i : {id j, id k } sites known i then id i endif endif conna^ıt le graphe. FIN Systèmes et algorithmes répartis I 18 / 35 Préambule Définition et problématique Modélisation des systèmes répartis Questions pas triviales Les parfums Les épines Un principe de conception Terminaison : tous les sites finissent-ils par atteindre FIN? (oui) Terminaison : un site peut-il savoir que les autres ont terminé? (non) Correction : à la terminaison de i, channels known i = le graphe? (oui) Correction : après terminaison de tous, i, j : channels known i = channels known j? (oui) Coût en messages? (2 * nombre de sites * nombre de canaux) Complexité en temps? (2 * diamètre) (diamètre = max (i,j) min distance(i, j)) Systèmes et algorithmes répartis I 20 / 35

6 Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Principe de conception Idée : masquer la répartition Une idée clé : la transparence Principe de conception 1 Un bon système réparti est un système qui semble centralisé (qui s utilise comme) Principe de conception 2 Un bon système réparti n est pas un système centralisé Niveaux de transparence Accès Localisation Partage Réplication Fautes Migration Charge Échelle Mécanismes Interface Nommage Synchronisation Groupe Atomicité Mobilité Réflexivité Reconfiguration Systèmes et algorithmes répartis I 21 / 35 Systèmes et algorithmes répartis I 22 / 35 Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Transparence d accès Transparence de localisation Propriété Accès à une ressource distante accès à une ressource locale Niveau langage de commande : sh ssh (non transparence) Niveau service système : read,write identiques que le fichier opérande soit local ou distant (transparence) Niveau langage à objet : appel de méthode local ou à distance identique pour l appelant (transparence) Solution : Notion d interface Cas des intergiciels à objets : langage IDL et bus logiciel Propriété La localisation d une ressource reste cachée. Non transparence : commande ssh bach.enseeiht.fr Transparence : Niveau service système : open( nom-fichier,... ) : nom du fichier indépendant de la localisation du fichier Niveau langage à objet : références aux objets distants sans nécessité de connaître leur localisation Solution : Services de nommage gérant des noms globaux Cas des intergiciels à objets : serveurs de noms Systèmes et algorithmes répartis I 23 / 35 Systèmes et algorithmes répartis I 24 / 35

7 Préambule Définition et problématique Modélisation des systèmes répartis Transparence du partage Les parfums Les épines Un principe de conception Préambule Définition et problématique Modélisation des systèmes répartis Transparence de la réplication Les parfums Les épines Un principe de conception Propriété L usage partagé (et en parallèle) d une ressource doit rester cohérent ( sémantique équivalente au cas centralisé). Niveau service système : cohérence d accès à un fichier partagé : assurer les contraintes d exclusion mutuelle des lecteurs/rédacteurs, mais coûteux Niveau langage à objets : limiter l exécution en parallèle des méthodes sur un objet Solution : Mécanismes de synchronisation Problème : mécanismes connus mais souvent coûteux en réparti Propriété La répartition permet la redondance pour plus de fiabilité Niveau service système : assurer le maintien de plusieurs copies cohérentes d un même fichier Niveau langage à objets : assurer la réplication transparente d un objet Niveau intergiciel : assurer que plusieurs serveurs répliqués évoluent en cohérence Solution : Synchronisme virtuel Notion de groupe et de protocoles de diffusion atomique Systèmes et algorithmes répartis I 25 / 35 Systèmes et algorithmes répartis I 26 / 35 Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Transparence des fautes Transparence de la migration Propriété La répartition induit un contexte moins fiable que celui du centralisé : panne partielle Niveau service système : un service n est plus accessible (serveur de noms!) Niveau langage à objets : un appel à distance de méthode peut échouer... Solution : Traitement d exception et atomicité Atomicité : un traitement s exécute en entier ou pas du tout Propriété Permettre la migration de code, de processus, d agents, d objets. Niveau service système : déplacer un serveur d une machine chargée à une machine sous-utilisée Niveau langage à objets : code mobile : exemple des applets Java, exemple des fichiers postscript objets mobiles (ou agents mobiles) Solution : la mobilité des traitements et/ou des données Agents mobiles (contexte d exécution mobile), code mobile Systèmes et algorithmes répartis I 27 / 35 Systèmes et algorithmes répartis I 28 / 35

8 Préambule Définition et problématique Modélisation des systèmes répartis Transparence de charge Les parfums Les épines Un principe de conception Préambule Définition et problématique Modélisation des systèmes répartis Transparence d échelle Les parfums Les épines Un principe de conception Propriété Masquer (et empêcher) les phénomènes de surcharge, écroulement La répartition permet naturellement la mise en œuvre de techniques d équilibrage de charge Niveau système : reconfigurer dynamiquement les services sur les machines disponibles selon la charge des serveurs Niveau grappe (cluster) : répartir les traitements parallèles de façon équilibrée sur les différents processeurs Solution : réflexivité Réflexivité : possibilité d auto observation des composants Systèmes et algorithmes répartis I 29 / 35 Propriété Permettre l extension d un système sans remettre en cause son fonctionnement global Niveau système : introduire de nouveaux serveurs sur de nouvelles machines pour s adapter à une augmentation de l activité applicative Solution : Adaptabilité et autonomie Adaptabilité et autonomie : mise en œuvre de mécanismes automatique d adaptation dynamique Systèmes et algorithmes répartis I 30 / 35 Préambule Définition et problématique Modélisation des systèmes répartis Les parfums Les épines Un principe de conception Plan Préambule Définition et problématique Modélisation des systèmes répartis Objectifs Aspect statique Aspect dynamique En résumé Répartition Accès et partage de ressources via un réseau de communication à tout usager qui en a le droit et où qu il soit 1 Préambule 2 Définition et problématique Les parfums Les épines Un principe de conception 3 Modélisation des systèmes répartis Objectifs Aspect statique Aspect dynamique Systèmes et algorithmes répartis I 31 / 35 Systèmes et algorithmes répartis I 32 / 35

9 Préambule Définition et problématique Modélisation des systèmes répartis Objectifs Aspect statique Aspect dynamique Préambule Définition et problématique Modélisation des systèmes répartis Objectifs Aspect statique Aspect dynamique Modéliser un calcul réparti Modèle de calcul réparti Aspect statique Objectifs Description statique et comportementale Abstraction pour faciliter l analyse Validation de propriétés (sûreté et vivacité) Les éléments de modélisation Les activités, processus, sites, etc site logique La communication : liens, liaisons, canaux, protocoles (point à point, diffusion)... Les connaissances globales de chaque site logique Graphe structurel (statique) Sommets sites logiques Arcs liaisons Nombreux attributs : Parallélisme Fiabilité Performances P 1 P 3 P 2 c 1 c 2 c3 c 4 c 5 P 4 P 5 Inconvénient : modèle statique, mais permet de poser les bases des problèmes de la répartition. Systèmes et algorithmes répartis I 33 / 35 Systèmes et algorithmes répartis I 34 / 35 Préambule Définition et problématique Modélisation des systèmes répartis Modèle de calcul réparti Aspect dynamique Objectifs Aspect statique Aspect dynamique Description globale (dans un repère temporel global) Description événementielle Trois types d événements : émission, réception, interne Modélisation de la communication : diffusion, perte, délais, etc A e 1 i 1 e 2 r 3 e 4 B r 2 r 1 e 5 r' 3 e 6 r 4 C e 3 r" 3 i 2 r 5 Systèmes et algorithmes répartis I 35 / 35

10

11 Le modèle standard Description des algorithmes Le modèle standard Description des algorithmes plan Systèmes et algorithmes répartis Modèle standard et principes algorithmiques Philippe Quéinnec, Gérard Padiou Département Informatique et Mathématiques Appliquées ENSEEIHT 20 octobre Le modèle standard Approche événementielle Causalité Abstraction d un calcul Prise de cliché 2 Description des algorithmes Description du comportement des processus : l élection Systèmes et algorithmes répartis II 1 / 42 Systèmes et algorithmes répartis II 2 / 42 Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Plan Vision statique : Graphe de processus 1 Le modèle standard Approche événementielle Causalité Abstraction d un calcul Prise de cliché 2 Description des algorithmes Description du comportement des processus : l élection Description graphique Sommets processus / sites Arcs liaisons de communication / canaux P2 c1 c7 P1 c3 c2 P5 c5 c6 c4 P3 P4 Systèmes et algorithmes répartis II 3 / 42 Systèmes et algorithmes répartis II 4 / 42

12 Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Propriétés Connaissances d un processus Propriétés des processus / sites Un processus possède une identité unique Un processus possède un état rémanent Un processus exécute un code séquentiellement Un processus n a qu une connaissance partielle des autres Un processus peut communiquer avec un voisinage Pas de panne (par arrêt ou comportement byzantin) Processus Environnement Propriétés du réseau Multiples paramètres : point à point ou diffusion, (a)synchrone, fiable, délais bornés, etc Messages : ni duplication ni erreur Nombre de processus? Voisinage de communication? Structure du réseau : maillé, anneau, statique/dynamique, etc Systèmes et algorithmes répartis II 5 / 42 Le modèle standard Description des algorithmes Vision dynamique : Chronogramme Approche événementielle Causalité Abstraction d un calcul Prise de cliché Systèmes et algorithmes répartis II 6 / 42 Le modèle standard Description des algorithmes Système asynchrone vs synchrone Approche événementielle Causalité Abstraction d un calcul Prise de cliché Représentation événementielle 3 types d événements : émission, réception, interne Mise en évidence de la causalité e1 r2 e3 e4 P1 i1 P2 Asynchrone Pas de temps externe Progression de chaque processus à son rythme Délai de transmission arbitraire Synchrone Existence de pas de calcul (round) globaux Un message émis dans un pas est reçu au pas suivant / dans le même pas (selon le modèle) P3 r1 e2 P1 P1 r = 1 r = 2 r = 3 P4 e5 P2 P2 0 temps P3 P3 Systèmes et algorithmes répartis II 7 / 42 Systèmes et algorithmes répartis II 8 / 42

13 Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Relation de causalité (Lamport 1978) Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Relation de causalité (Lamport 1978) Ordre partiel entre événements Les événements d un processus sont totalement ordonnés : e et e sur le même site, et e précède e, alors e e. L émission d un message précède causalement sa réception : Si e = émission(m) et e = réception(m), alors e e. Transitivité : e, e, e : e e e e e La relation est un ordre partiel : e e = e e e e Indépendance du temps physique A B C a1 a2 a3 a4 a5 m1 c1 b1 m2 b2 c2 m3 b3 c3 m4 a 1 a 2 a 3 a 4... a 1 c 1, c 2 a 4, b 4 c 4 a 1 c 3 (car a 1 c 1 c 2 c 3 ) a 2 c 4 a 3 c 2 b4 m5 c4 Systèmes et algorithmes répartis II 9 / 42 Systèmes et algorithmes répartis II 10 / 42 Le modèle standard Description des algorithmes Abstraction d un calcul réparti Approche événementielle Causalité Abstraction d un calcul Prise de cliché Passé / futur causal Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Exécutions causalement équivalentes A B C a1 a2 a3 a4 a5 m1 c1 b1 m2 b2 c2 Ensemble d événements + relation causale ensemble d exécutions réelles équivalentes a 1 ; b 1 ; c 1 ; a 2 ;... a 1 ; a 2 ; c 1 ; b 1 ;... a 1 ; c 1 ; a 2 ;... c 1 ; a 1 ; a 2 ;... car a 1 c 1 Le choix des événements fixe un niveau d observation m3 Systèmes et algorithmes répartis II 11 / 42 b3 c3 m4 b4 m5 c4 Partition des événements passé(e) = {f f e} futur(e) = {f e f } concurrence(e) = {f f passé(e) f futur(e)} A B C passé(b2) futur(b2) a1 a2 a3 a4 a5 m2 m4 m1 b1 b3 b4 b2 m3 m5 c1 c2 c3 c4 Systèmes et algorithmes répartis II 12 / 42

14 Le modèle standard Description des algorithmes Coupure et coupure cohérente Approche événementielle Causalité Abstraction d un calcul Prise de cliché Le modèle standard Description des algorithmes Passé et coupure cohérente Approche événementielle Causalité Abstraction d un calcul Prise de cliché Coupure Une coupure est un ensemble d événements qui forment des préfixes complets des histoires locales. Coupure cohérente Une coupure C est cohérente si e C : e : e e e C A B C a1 a2 a3 m1 c1 b1 m2 b2 c2 m3 KO a4 Systèmes et algorithmes répartis II 13 / 42 Le modèle standard Description des algorithmes Coupure cohérente et état global b3 m4 c3 OK b4 a5 Approche événementielle Causalité Abstraction d un calcul Prise de cliché m5 c4 Une coupure C est cohérente ssi C = e C (passe(e) {e}) : Pas de trou sur un site A B C Une réception n est pas présente sans son émission a1 a2 a3 m1 c1 b1 m2 b2 c2 m3 KO a4 Systèmes et algorithmes répartis II 14 / 42 Le modèle standard Description des algorithmes Treillis des coupures (cohérentes) b3 m4 c3 OK b4 a5 Approche événementielle Causalité Abstraction d un calcul Prise de cliché m5 c4 Une coupure cohérente correspond à un état global qui aurait pu exister. A B E(t) e t e' État effectif L état n a pas existé à un instant global C r r' A B e' E(t') e t' Réalité La coupure est cohérente mais... r' r Treillis des coupures L ensemble des coupures forme un treillis pour l inclusion : si C 1 et C 2 sont deux coupures, alors C 1 C 2 et C 1 C 2 sont des coupures Treillis des coupures cohérentes L ensemble des coupures cohérentes forme un treillis pour l inclusion : si C 1 et C 2 sont deux coupures cohérentes, alors C 1 C 2 et C 1 C 2 sont des coupures cohérentes Systèmes et algorithmes répartis II 15 / 42 Systèmes et algorithmes répartis II 16 / 42

15 Le modèle standard Description des algorithmes Treillis des coupures cohérentes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Le modèle standard Description des algorithmes Treillis des coupures cohérentes Autre exemple Approche événementielle Causalité Abstraction d un calcul Prise de cliché Arc du treillis = occurrence d un événement possible Une exécution = suite d états globaux cohérents = chemin dans le treillis Explosion du nombre d exécutions causalement équivalentes (dessins : cours S. Krakowiak) Systèmes et algorithmes répartis II 17 / 42 (dessin : cours S. Krakowiak) Systèmes et algorithmes répartis II 18 / 42 Le modèle standard Description des algorithmes Prise de cliché (snapshot) Approche événementielle Causalité Abstraction d un calcul Prise de cliché Le modèle standard Description des algorithmes Prise de cliché (snapshot) Schéma temporel de la prise de cliché Approche événementielle Causalité Abstraction d un calcul Prise de cliché Définition Objectif : Capter, centraliser un état global passé des processus {m3} e1 e3 {m4} {} {} {m1,m2} e4 e2 Cliché global instantané Prise instantanée impossible Un site collecteur accumule Prise cohérente de clichés locaux Problème des messages en transit Clichés locaux + Messages en transit {e 1, e 2, e 3, e 4 } + {m 1, m 2, m 3, m 4 } {m3} e1 e3 {} {m4} {} {m1,m2} e4 e2 P 1 P 2 P 3 P 4 e 1 m 0 m 4 m 3 m 1 m 2 e 3 e 4 e 2 m 5 Systèmes et algorithmes répartis II 19 / 42 Systèmes et algorithmes répartis II 20 / 42

16 Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Algorithme de Chandy-Lamport (1985) Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Algorithme de Chandy-Lamport (1985) Idée Matérialiser la coupe par la circulation d un marqueur visitant les sites Les messages émis après le passage du marqueur ne peuvent pas être dans la coupe Les messages émis par S j avant le passage du marqueur sur S j, et reçus par S i après le passage du marqueur sur S i, sont considérés comme les messages en transit de S j vers S i Hypothèse Canaux FIFO (pas de perte, pas de dépassement) Hypothèses Réseau fortement connexe ( s, s : s s ) Canaux unidirectionnels et fifo : s, Rc(s) : canaux en réception Em(s) : canaux en émission de l algorithme Utilisation de messages marqueurs Répartition de l évaluation : chaque site évalue : son cliché local ; les messages considérés en transit sur ses canaux en réception : c Rc(s) Rc(s) S Em(s) Systèmes et algorithmes répartis II 21 / 42 Le modèle standard Description des algorithmes Algorithme de Chandy-Lamport Approche événementielle Causalité Abstraction d un calcul Prise de cliché Systèmes et algorithmes répartis II 22 / 42 Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Prises de clichés locaux et marqueurs Comportement d un site Sur réception d un PREMIER marqueur ou spontanément : 1 Prendre son cliché local L s et émettre un marqueur sur chaque canal d émission c Em(s) 2 Enregistrer dans une liste entransit[c] les messages reçus sur chaque canal de réception c Rc(s) jusqu à la réception d un marqueur sur ce canal 3 Lorsqu un marqueur a été reçu sur TOUS les canaux de réception, communiquer au collecteur cet état partiel : L s, {entransit[c], c Rc(s)} A B Prise de cliché Réception des messages en transit issus de B e r m m e r Réception du marqueur issu de B Rappel : l arrivée du marqueur => prise de cliché Message marqueur Message en transit Systèmes et algorithmes répartis II 23 / 42 Systèmes et algorithmes répartis II 24 / 42

17 Le modèle standard Description des algorithmes État enregistré = état possible Approche événementielle Causalité Abstraction d un calcul Prise de cliché Le modèle standard Description des algorithmes Vérifier la correction... Approche événementielle Causalité Abstraction d un calcul Prise de cliché État enregistré Σ enreg = cliché enregistré Σ init = coupure cohérente contenant l événement déclencheur du cliché Σ final = coupure cohérente dans lequel le protocole de prise de cliché est terminé Alors Σ init Σ enreg Σ final (il existe un chemin de Σ init à Σ final passant par Σ enreg dans le treillis des coupures cohérentes) : sur le treillis page 17, si Σ init = Σ 11 et Σ final = Σ 32, Σ enreg peut être Σ 11, Σ 21, Σ 12, Σ 31, Σ 22 ou Σ 32, et a pu ne pas être traversé dans la réalité. Systèmes et algorithmes répartis II 25 / 42 Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Utilisation du cliché : propriété stable Propriétés Sûreté Coupure cohérente Collecte complète des messages en transit Vivacité Tout site finit par prendre un cliché local Un marqueur finit par arriver sur chaque canal de réception A B Cohérence de la coupure marqueur e r impossible C Séquence en transit complète A B e marqueur impossible Systèmes et algorithmes répartis II 26 / 42 Le modèle standard Description des algorithmes C Approche événementielle Causalité Abstraction d un calcul Prise de cliché Utilisation du cliché : propriété possible/certaine r Prédicat stable Un prédicat P sur un état global E d un système est stable ssi E : E E P(E) P(E ) (exemples : le calcul est terminé, il y a eu 10 messages reçus... ) Vérification de P Si P est un prédicat stable alors : P(Σ enreg ) P(Σ final ) (et tout état ultérieur) P(Σ enreg ) P(Σ init ) (et tout état antérieur) Prédicat possible/certain Pour un prédicat P : Pos(P) (possibly P) : il existe une observation cohérente (= un chemin dans le treillis) qui passe par un état où P est vrai. Def (P) (definitely P) : toutes les observations cohérentes (= tous les chemins) passent par un état où P est vrai. Vérification P(Σ enreg ) Pos(P) mais pas l inverse... Pos(P) Def ( P) mais pas l inverse... Systèmes et algorithmes répartis II 27 / 42 Systèmes et algorithmes répartis II 28 / 42

18 Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché de vérification de propriétés Le modèle standard Description des algorithmes de vérification Propriété stable Approche événementielle Causalité Abstraction d un calcul Prise de cliché e 1 0 x = 3 x = 4 x = 5 e e 1 e 1 4 e e 1 1 e e e 2 2 e 2 3 e 2 4 e 2 5 e 2 y = 6 y = 4 y = 2 x 4? (en supposant x croissant propriété stable) Pos(x = y 2)? Def (x = y)? x 4? (sous l hypothèse x croissant) N importe quel cliché Σ enreg obtenu après Σ 31 permet de le vérifier (d après Lorenzo Alvisi) Systèmes et algorithmes répartis II 29 / 42 Le modèle standard Description des algorithmes de vérification Possibilité Approche événementielle Causalité Abstraction d un calcul Prise de cliché Pos(x = y 2)? x = y 2 est vrai dans les états cohérents Σ 31 et Σ 41 Détecté uniquement si Σ enreg {Σ 31, Σ 41 } Σ enreg pas nécessairement survenu dans la réalité Systèmes et algorithmes répartis II 31 / 42 Systèmes et algorithmes répartis II 30 / 42 Le modèle standard Description des algorithmes de vérification Certitude Approche événementielle Causalité Abstraction d un calcul Prise de cliché Def (x = y)? Vrai Pos(x = y) pas détecté si on capture un état antérieur à Σ 32 ou postérieur à Σ 54 La capture d un état (p.e. Σ 42 ) ne permet pas de conclure Systèmes et algorithmes répartis II 32 / 42

19 Le modèle standard Description des algorithmes Approche événementielle Causalité Abstraction d un calcul Prise de cliché Le modèle standard Description des algorithmes Description du comportement des processus : l élection Utilisation du cliché : propriété possible/certaine Principe de la vérification Plan Un processus moniteur M collecte tous les états locaux M construit le treillis des coupures cohérentes (à partir d un codage complet de la relation de causalité, cf chapitre suivant) Pour évaluer Pos(P) : parcourir le treillis depuis l état initial, niveau par niveau, et s arrêter au premier état où P est vrai. Aucun état Pos(P). Pour évaluer Def (P) : parcourir le treillis depuis l état initial, niveau par niveau, en ne développant que les états vérifiant P. Si plus d état, alors Def (P) ; si état final atteint (et P dans cet état) alors Def (P). Explosion combinatoire : pour N sites ayant chacun au plus m états, possiblement m N coupures cohérentes. 1 Le modèle standard Approche événementielle Causalité Abstraction d un calcul Prise de cliché 2 Description des algorithmes Description du comportement des processus : l élection Systèmes et algorithmes répartis II 33 / 42 Systèmes et algorithmes répartis II 34 / 42 Le modèle standard Description des algorithmes Description du comportement des processus : l élection Le modèle standard Description des algorithmes Description du comportement des processus : l élection algorithmiques Algorithmes symétriques code répliqué, données initiales propres : identité, voisinage de communication. Structurer les échanges de messages : Utilisation de réseaux en anneau Utilisation de la structure d arbre Étudier des problèmes génériques : Les services : datation, exclusion mutuelle, consensus, élection... Les observations de propriétés stables : terminaison, interblocage La tolérance aux fautes : réplication, atomicité Systèmes et algorithmes répartis II 35 / 42 Description des algorithmes Principe des commandes gardées (E.W. Dijkstra) Process P(id :0..N-1) { type Etat = { <Définition des états possibles> }; Etat EtatCourant = Init; <variables locales>, <action d initialisation> while (<Condition>) { select { when <Cond-1> {[accept Msg-1(<params-1>);] <Action-1>} []... [] when <Cond-p> {[accept Msg-p(<params-p>);] <Action-M>} } } } Choix d une action : garde vraie et message à consommer le plus ancien, ou non déterministe Pour un envoi : send M(<args>) to <destinataire(s)> Systèmes et algorithmes répartis II 36 / 42

20 Le modèle standard Description des algorithmes Description du comportement des processus : l élection Le modèle standard Description des algorithmes Description du comportement des processus : l élection : l élection Solution correcte ou fausse? Le problème de l élection Objectif : Élire un seul processus mozart bach berlioz verdi vivaldi grieg Un processus a une identité unique qu il connaît Un processus ne connaît pas le nombre global de processus Un processus ne connaît pas l identité des autres Communication sur un anneau logique On suppose que les processus sont totalement ordonnés (ici par leur indice, en pratique, par leur adresse IP par exemple) Process P(id :0..N-1) { // et : opérateurs modulo N type Etat = {candidat,élu}; Etat étatcourant = candidat; int proc; while (étatcourant == candidat) { accept Candidat(proc) from P[id 1]; if (proc < id) send Candidat(proc) to P[id 1]; else if (proc == id) étatcourant = élu; } } Systèmes et algorithmes répartis II 37 / 42 Le modèle standard Description des algorithmes Description du comportement des processus : l élection Solution qui conduit à l élection (du + petit) Process P(id :0..N-1) { type Etat = {candidat,élu}; Etat étatcourant = candidat; int proc; send Candidat(id) to P[id 1]; /* chacun candidate */ while (étatcourant == candidat) { accept Candidat(proc) from P[id 1]; if (proc < id) send Candidat(proc) to P[id 1]; else if (proc == id) étatcourant = élu; } Pas parfait : un seul processus se termine Systèmes et algorithmes répartis II 39 / 42 Systèmes et algorithmes répartis II 38 / 42 Solution plus complète (tous les processus s arrêtent) Process P(id :0..N-1) { type Etat = {candidat,élu,perdant}; Etat étatcourant = candidat; int proc; send Candidat(id) to P[id 1]; /* chacun candidate */ while (étatcourant == candidat) { select { accept Candidat(proc) from P[id 1]; if (proc < id) send Candidat(proc) to P[id 1]; else if (proc == id) étatcourant = élu; [] accept Elu(proc) from P[id 1]; étatcourant = perdant; send Elu(proc) to P[id 1]; } } // while if (étatcourant==élu) { send Elu(id) to P[id 1]; accept Elu(proc) from P[id 1]; } }

21 Le modèle standard Description des algorithmes Description du comportement des processus : l élection Le modèle standard Description des algorithmes Description du comportement des processus : l élection Déclenchement spontané individuel Pas nécessairement tous candidats au départ (mais tous éligibles) Process P(id :0..N-1) { type Etat = {candidat,élu,perdant}; Etat étatcourant = candidat; int proc; on random() send Candidat(id) to P[id 1]; while (étatcourant == candidat) { select { accept Candidat(proc) from P[id 1]; if (proc < id) send Candidat(proc) to P[id 1]; else if (proc == id) étatcourant = élu; else if (proc > id) send Candidat(id) to P[id 1]; []. Systèmes} et algorithmes répartis II 41 / 42 Conclusion Modélisation par des événements locaux Relation entre ces événements, en particulier la causalité Représentation avec des chronogrammes Notion d état global, de coupure Calcul d un état global Systèmes et algorithmes répartis II 42 / 42

22

23 Problème de datation Les protocoles de communication Problème de datation Les protocoles de communication plan Systèmes et algorithmes répartis Causalité et datation Philippe Quéinnec, Gérard Padiou Département Informatique et Mathématiques Appliquées ENSEEIHT 9 septembre Problème de datation Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern 2 Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Systèmes et algorithmes répartis III 1 / 29 Systèmes et algorithmes répartis III 2 / 29 Problème de datation Les protocoles de communication Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern Problème de datation Les protocoles de communication Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern Plan 1 Problème de datation Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern 2 Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Problème de base et difficultés Comment dater les événements d une exécution répartie? Pas d horloge globale Tous les événements ne sont pas causalement liés Datation cohérente avec la relation causale : e, e : e e d e < d e Idée : Utiliser les horloges matérielles de chaque site Risque : Datation incohérente de l événement de réception d un message : la date de réception précède la date d émission Possible si l horloge du site de réception est en retard (suffisamment) sur celle du site de l émetteur Systèmes et algorithmes répartis III 3 / 29 Systèmes et algorithmes répartis III 4 / 29

24 Problème de datation Les protocoles de communication Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern Problème de datation Les protocoles de communication Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern Temps réel Temps logique Difficultés Cohérence avec la causalité Datation définissant un ordre total Solutions Nécessite une synchronisation des horloges locales : invariant max (h i) min (h i) < ɛ i=1..n i=1..n Protocole de synchronisation d horloges possible mais dans des contextes réseaux assurant une certaine qualité de service ou par l usage d un signal diffusé (horloge atomique) de base Compter les événements au lieu du temps réel Associer à chaque site une horloge logique locale Surcharger les messages avec leur date d émission Recaler si nécessaire l horloge locale d un site lors de chaque réception de message Avantage : vision plus abstraite d un calcul réparti Systèmes et algorithmes répartis III 5 / 29 Systèmes et algorithmes répartis III 6 / 29 Problème de datation Les protocoles de communication Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern Problème de datation Les protocoles de communication Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern Une tentative... Horloge de Lamport Un compteur horloge sur chaque site Surcharge des messages et recalage de compteur A B C 0 <1,m 1 > 0 0 Recalage (1) (2) (3) (6) a 1 1 a 2 2 a 3 3 a 4 6 <3,m 2 > <5,m 3 > (6) 4 5 b 3 6 b 1 b 2 <6,m (4) (5) 4 > c 1 c 2 c 3 (2) (3) (7) e e d(e) < d(e ) Mêmes dates pas causalement liés mais d(e) < d(e ) e e (ex : d(c 2 ) < d(b 3 ) c 2 b 3 ) Systèmes et algorithmes répartis III 7 / 29 Propriétés Introduit un ordre total entre événements Dates distinctes pour tout couple d événements Date = (numéro de site, compteur local) ordre total sur les sites (par leur numéro) public class Date { protected int s; protected int cpt; static boolean Prec (Date d1, Date d2) { return (d1.cpt < d2.cpt) ((d1.cpt == d2.cpt) && (d1.s < d2.s)); } } Systèmes et algorithmes répartis III 8 / 29

25 Problème de datation Les protocoles de communication Actions associées aux événements Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern Problème de datation Les protocoles de communication Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern Horloge vectorielle de Fidge-Mattern (1988) L événement est daté avec le résultat de l action. Type d événement sur un site s Action sur le site s Événement interne sur s H s = H s + 1; Émission sur s de m H s = H s + 1; envoi de H s, m ; Réception sur s de dm, m H s = max(h s, dm) + 1; Propriétés datation isomorphe à l ordre causal utilisation de vecteurs de dimension égale au nombre de sites coût plus élevé : surcharge des messages par un vecteur Pour un événement e, HV (e)[i] = nombre d événements du passé de e sur p i (y compris e) A B C (A,1) (A,2) (A,3) (A,6) a1 1 a2 2 a3 3 a4 6 <(A,1), m1> c1 (C,2) <(A,3),m2> <(B,5),m3> (A,7) a b1 (B,4) b2 (B,5) b3 (B,6) <(B,6),m4> c2 c3 (C,3) (C,7) <(A,7),m5> c4 (C,8) 8 7 c5 (C,9) Expression des relations entre dates D, D : D D i : D[i] D [i] D, D : D < D D D k : D[k] < D [k] D D (D < D ) (D < D) Systèmes et algorithmes répartis III 9 / 29 Systèmes et algorithmes répartis III 10 / 29 Problème de datation Les protocoles de communication Actions associées aux événements Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern L événement est daté avec le résultat de l action. Type d événement sur un site s Action sur le site s Événement interne sur s H s [s] = H s [s] + 1 Émission sur s de m H s [s] = H s [s] + 1 envoi de H S, m Réception sur s de dm, m H s [s] = H s [s] + 1 H s [s ] = max(h s [s ], dm[s ]), s s A B C (0,0,0) a1 (1,0,0) a2 (2,0,0) a3 (3,0,0) <(3,0,0),m2> <(1,0,0), m1> <(3,2,0),m3> (0,0,0) (3,1,0) (3,2,0) (3,3,0) (0,0,0) c1 b1 b2 a4 b3 (1,0,1) (1,0,2) c2 (4,2,0) <(3,3,0),m4> c3 (3,3,3) Systèmes et algorithmes répartis III 11 / 29 Problème de datation Les protocoles de communication Horloge vectorielle de Fidge-Mattern Datation isomorphe à l ordre causal Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern e e D(e) D(e ) et e e D(e) D(e ) Coupure Date d une coupure C = (c 1,..., c n ) : HV (C) = sup(hv (c 1 ),..., HV (c n )) C 2 C 1 HV (C 2 ) < HV (C 1 ) C cohérente HV (C) = HV (c 1 )[1],..., HV (c n )[n] Soit C cohérente. Alors i, j : HV (c i )[i] HV (c j )[i]. L incrémentation de HV (c i )[i] ne peut venir que d un événement local ou résulter d un message provenant du passé Soit C non cohérente. il existe un événement e i hors coupe qui est dans le passé causal de C Sur le site i : HV (c i )[i] < HV (e i )[i] et HV (e i )[i] HV (C)[i] HV (C)[i] > HV (c i )[i], donc HV (C) (HV (c 1 )[1],..., HV (c n )[n]) Systèmes et algorithmes répartis III 12 / 29

26 Plan Problème de datation Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Protocole FIFO Problème de datation Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée 1 Problème de datation Temps réel vs temps logique Horloge de Lamport Horloge vectorielle de Fidge-Mattern S1 S2 m, m : s 1 e1 e2 e1 e2 m2 m1 m1 Non FIFO r2 r1 r1 FIFO m m s2 s 1 s 2 e(m) e(m ) r(m) r(m ) m2 r2 2 Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée S1 S2 e1 m1 e2 m2 r2 r1 d1 d2 délivrance réception Systèmes et algorithmes répartis III 13 / 29 Systèmes et algorithmes répartis III 14 / 29 Problème de datation Les protocoles de communication Protocole causalement ordonné Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Protocole FIFO Problème de datation Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Objectif : Mettre de l ordre Réceptions incohérentes par rapport aux émissions P1 e1 e2 P2 P3 m2 e3 r2 m3 m1 r 3 r 1 alors que e 1 e 3 délivrance réception r3 r1 Objectif Garantir la cohérence des réceptions sur un même site par rapport à leur éventuelle émission depuis un même site réordonner les messages reçus sur un site Trois événements au lieu de deux par message : l émission e, la réception r, la délivrance d. Causalité : e r d S exprime par la propriété : s 1, s 2, m, m : s 1 m s2 s 1 m s 2 e(m) e(m ) d(m) d(m ) Systèmes et algorithmes répartis III 15 / 29 Systèmes et algorithmes répartis III 16 / 29

27 Protocole FIFO Problème de datation Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Problème de datation Les protocoles de communication Protocole causalement ordonné Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Réalisation : il suffit de numéroter les messages pour chaque canal (couple site d émission, site de réception) Récepteur pour un canal : type Message = contenu, numéro ; int prochain = 0; SortedSet<Message> enattente; // trié par numéro while (true) { recevoir m; enattente.add(m); while (enattente.first().numéro = prochain) { m enattente.removefirst(); délivrer m.contenu prochain++; } } Systèmes et algorithmes répartis III 17 / 29 Objectif Garantir la cohérence des réceptions sur un même site par rapport à leur causalité éventuelle en émission réordonner les messages reçus sur un site Trois événements au lieu de deux par message : l émission e, la réception r, la délivrance d. Causalité : e r d S exprime par la propriété : s, m, m m m : s s e(m) e(m ) d(m) d(m ) Systèmes et algorithmes répartis III 18 / 29 Histoire causale Problème de datation Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Problème de datation Les protocoles de communication Histoire causale : exemple Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Histoire causale d un message H c (m) L histoire causale H c (m) d un message m est l ensemble des messages qui ont leurs événements d émission précédant causalement l émission de m : H c (m) = {m : e(m ) e(m)} P 1 P 2? Critère de délivrance d un message Un message m est délivré sur un site s ssi tous les messages de son histoire causale ayant aussi s comme site de destination ont été déjà délivrés : s, m H c (m) : m s m s d(m ) d(m) Systèmes et algorithmes répartis III 19 / 29 P 3 m 1 m 2 m 4 m 7 m 8 m 9 m 10 P 4 m 3 m 5 m 6 H c (m 10 ) = {m 8, m 4, m 9, m 7, m 1, m 6, m 3, m 2 } H c (m 6 ) = {m 3 } H c (m 8 ) = {m 4, m 1, m 2 } Systèmes et algorithmes répartis III 20 / 29

28 Problème de datation Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Approche par surcharge (piggybacking) Principe A B C Surcharger chaque message avec l histoire des messages qui le précèdent causalement Dans le contexte du courrier électronique : Approche similaire du réexpédier avec copie de ce que l on a reçu e1 <>,m1 e <m1,c>,m r e2 <(m1,c);(m,b)>, m2 r2 d1 d2 r1 message ignoré Systèmes et algorithmes répartis III 21 / 29 Problème de datation Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Approche par surcharge (piggybacking) Mise en œuvre Simple et apport d une certaine tolérance aux pertes de messages par redondance Messages de + en + longs Quand, Comment réduire les histoires? A B C <>,m1 <(m1,c)>,m2 <(m1,c)>,m3 Éliminer (m1,c) car B sait que C a reçu m1 <(m1,c);...>,m5 <(m2,b);(m3,b)>,m4 Systèmes et algorithmes répartis III 22 / 29 Problème de datation Les protocoles de communication Datation, premier essai... Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Problème de datation Les protocoles de communication Approche par compteurs (Raynal) Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Datation causale (horloge vectorielle) Permet la détection des anomalies en réception MAIS pas leur prévention e A 1 e B C 1 < 0,M 1 > 0 e 2 r 2 < 2,M 2 > 0 r r Structures de données Représenter l histoire causale de chaque message Chaque site S s gère : MP s : une matrice de précédence causale MP s [i, j] = nombre de messages émis de S i vers S j, connu de S s Dernier s : un vecteur de compteurs des messages reçus de chaque site Dernier s [i] = nombre de messages reçus du site S i sur S s Tout message est surchargée par une copie de la matrice MP du site émetteur Systèmes et algorithmes répartis III 23 / 29 Systèmes et algorithmes répartis III 24 / 29

29 Problème de datation Les protocoles de communication Actions associées aux événements Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Problème de datation Les protocoles de communication Contrôle des délivrances Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Type d événement sur un site s Action sur le site s Émission sur s de M vers s MP s [s, s ] + + envoi de MP s, M Réception sur s de MP, M MP s = max(mp, MP s ) issu de s Dernier s [s ] + + Délivrance sur s de MP, M Délivrable(M) = issu de s Dernier s [s ] = MP[s, s] i s : Dernier s [i] MP[i, s] P 1 P 2 P 3 P 4 m 1 m 2 m 3 m 4 m 7 m 8 m 9 Dernier = (0,1,0,1) m 5 m 6 émis vers P ? <m 10, > Dernier = (0,2,0,1) M Délivrable = FIFO entre s et s et il ne précède pas les messages dont l émission le précède causalement. Systèmes et algorithmes répartis III 25 / 29 Problème de datation Les protocoles de communication Horloges de plus en plus précises Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Systèmes et algorithmes répartis III 26 / 29 Problème de datation Les protocoles de communication Diffusion causalement ordonnée Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Horloges de Lamport Passé de l ensemble du système, connu de s, réduit à la longueur de la plus longue chaîne causale aboutissant à l événement Horloges vectorielles Connaissance de premier ordre : passé de s que s connaît, connaissance par s que s a eu un certain nombre d événements Horloges matricielles Connaissance de second ordre : connaissance par s de la connaissance par s du passé de s. Par exemple, permet de savoir que tous les sites connaissent un événement donné Systèmes et algorithmes répartis III 27 / 29 La diffusion ordonnée est plus simple que la communication point-à-point! Approche par matrice causale A B C Il suffit de gérer un vecteur d émission au lieu d une matrice Toutes les lignes sont identiques : un processus envoie le même nombre de messages à tous (1,0,0) (1,0,0) (1,1,0) (1,1,0) (0,0,0) (1,1,1) Défaut de causalité Vecteur local (a,b,c) Systèmes et algorithmes répartis III 28 / 29

30 Conclusion Problème de datation Les protocoles de communication Délivrance ordonnée Protocoles ordonnés Protocole causalement ordonné Diffusion causalement ordonnée Datation logique des événements Protocoles de communication ordonnés Distinction réception / délivrance Systèmes et algorithmes répartis III 29 / 29

31 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Systèmes et algorithmes répartis Problèmes génériques Philippe Quéinnec, Gérard Padiou Département Informatique et Mathématiques Appliquées ENSEEIHT 13 novembre 2014 Systèmes et algorithmes répartis IV 1 / 36 Plan Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable 1 Exclusion mutuelle Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres 2 Détection de la terminaison Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits 3 Détection de l interblocage Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas 4 La diffusion fiable Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Systèmes et algorithmes répartis IV 3 / 36 plan Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable 1 Exclusion mutuelle Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres 2 Détection de la terminaison Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits 3 Détection de l interblocage Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas 4 La diffusion fiable Systèmes et algorithmes répartis IV 2 / 36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Spécification du problème process P(int i) :... ; Entrer(i) ; <SC> ; Sortir(i) ;... Sortir(i) Diagramme d état hors Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Entrer(i) exclusion candidat D est en exclusion Fin de Entrer A est candidat Sûreté : Un processus au plus en exclusion i, j :: P i.exclusion P j.exclusion i = j Vivacité faible : pas d interblocage (certains candidats finissent par entrer) Vivacité forte : Tout candidat finit par entrer Protocole : Tout processus en exclusion finit par sortir Systèmes et algorithmes répartis IV 4 / 36 A C D B

32 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Élection vs exclusion mutuelle Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Algorithme à base de jeton circulant Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Algorithme basé sur le contrôle d un objet circulant Problèmes similaires Isoler un processus parmi tous : introduire une asymétrie Problèmes bien différents Élection d un quelconque des processus mais exclusion mutuelle parmi les candidats L élection est définitive mais l exclusion mutuelle se termine et se transmet évolution dynamique Systèmes et algorithmes répartis IV 5 / 36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Algorithmes à base de permission Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Anneau logique (indépendant de la structure du réseau physique) : chaque site a un successeur Jeton circulant : un site non demandeur transmet le jeton à son successeur un site demandeur attend le jeton pour obtenir l exclusion mutuelle un site qui sort d exclusion mutuelle transmet le jeton à successeur Propriétés Sûreté : unicité du jeton Vivacité : intégrité de l anneau (existence et circulation du jeton) Systèmes et algorithmes répartis IV 6 / 36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Permissions individuelles : Ricart et Agrawala (1981) Un processus candidat doit demander à d autres processus la permission d entrer en exclusion À tout P i on associe un ensemble D i contenant les processus à contacter Condition nécessaire : i j : j D i i D j Deux types de permissions : individuelles : un processus donne son autorisation selon son propre état n engage que lui d arbitre : les processus s échangent des permissions préexistantes en nombre fixé engage tous les processus qui dépendent de lui Objectif : Minimiser les ensembles D i Systèmes et algorithmes répartis IV 7 / 36 Hypothèses Chaque processus connaît l identité des N processus Réseau de communication fiable et maillé (non FIFO) Pas de défaillance de processus Solution Utilisation de permissions individuelles avec : i : D i = Tous {i} Ordonnancement des requêtes par datation Messages Message de requête : le site i demande l autorisation à j Message d autorisation : le site j donne son autorisation à i Pas de message de refus : le refus est temporaire Systèmes et algorithmes répartis IV 8 / 36

33 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Algorithme de Ricart et Agrawala Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Requêtes d entrée totalement ordonnées : Utilisation d horloges de Lamport Chaque processus P i candidat ou en exclusion connaît la date de sa requête courante Date(R i ) Un candidat entre en exclusion s il a obtenu les permissions de tous les autres il possède alors la requête la plus ancienne Revient à vérifier que la requête R i d un processus P i est la plus vieille requête des processus candidats ou en exclusion : k : P k.etat hors Date(R i ) Date(R k ) Systèmes et algorithmes répartis IV 9 / 36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Permissions d arbitres Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Algorithme de Ricart-Agrawala Process P(i: 0..N-1) { type Etat = {hors,candidat,exclusion}; Etat EC hors; Date hloc new Date(i,0); // horloge locale Date dr; // date de la requ^ete de ce site Set<int> Att ; Set<int> D 0..N-1 \ {i} while (true) { select { when (EC = hors) // hors candidat EC candidat; dr hloc.top(); for k D : send Rq(i,dr) to P k ; [] accept Rq(p, d); hloc.recaler(d); if (EC hors dr < d) then Att.add(p); else send Perm(i) to P p ; [] when (EC = candidat) // candidat? exclusion accept Perm(p); D D \ {p}; if (D = ) EC exclusion; [] when (EC = exclusion) // exclusion hors for k Att : send Perm(i) to P k ; Att } // select } // while } Quorums ; D 0..N-1 \ {i}; EC hors; Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Principe Obtenir la permission de tous les arbitres contactés. Condition nécessaire : arbitre commun : i, j : D i D j i prend pour arbitre : Note : 1 et 5 ne sont pas arbitres Définition Un système de quorum est un ensemble d ensembles, tel que tout couple d ensemble a une intersection non vide : Q = {Q 1,..., Q n }, i, j : Q i Q j Un quorum Q i est responsable pour l ensemble total. Idéalement : Effort identique : Tous les quorums ont la même taille : i : Q i = K Responsabilité identique : Tous les sites appartiennent au même nombre de quorums : i : {j : i Q j } = D Minimalité : K = D = le plus petit possible (théorie : n) Systèmes et algorithmes répartis IV 11 / 36 Systèmes et algorithmes répartis IV 12 / 36

34 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres Permissions d arbitres Permissions d arbitres ATTENTION : pas de miracle... Construction facile d un système de quorum quasi optimal : Construire une matrice arbitraire, éventuellement en dupliquant certains sites : Tout processus utilise les arbitres de sa colonne et de sa ligne D 5 = {2, 4, 6, 8} Tout processus utilise au plus 2 n 1 arbitres Tout arbitre appartient à au plus 2 n 1 ensembles Modèle parallèle processus ressources critiques Un processus doit collecter des jetons ressources critiques Problème : risque d interblocage Solution préventive : ordonner les jetons et les demander en respectant cet ordre Solution dynamique : ordonner les requêtes (approche transactionnelle) et appliquer l algorithme wound-wait ou wait-die nécessite un ordre total sur les requêtes : usage d horloges de Lamport Risque de livelock Systèmes et algorithmes répartis IV 13 / 36 Plan Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable 1 Exclusion mutuelle Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres 2 Détection de la terminaison Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits 3 Détection de l interblocage Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas 4 La diffusion fiable Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Systèmes et algorithmes répartis IV 15 / 36 Systèmes et algorithmes répartis IV 14 / 36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Détection d une propriété stable Spécification Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Propriété stable à détecter : Tous les processus sont passifs ET pas de message en transit. A B C Sûreté : Pas de fausse détection : Term ( i :: P i.passif EnTransit = ) Vivacité : La terminaison finit par être détectée : ( i :: P i.passif EnTransit = ) Term Obs en cours Systèmes et algorithmes répartis IV 16 / 36 Fini

35 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Définition d un calcul diffusant Un processus au moins émet un ou plusieurs messages A Puis, tous les processus adoptent le même comportement : loop { /* un pas de calcul */ recevoir(m) ; traiter m ; envoyer 0 à N 1 messages ; } Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Terminaison sur un anneau (Misra, 1983) Principe Les sites sont organisés en anneau (communication FIFO depuis le précédent / vers le suivant mais à destinataire arbitraire). Parcourir l anneau et vérifier que tous les sites sont passifs. Difficulté Un message émis avant le passage du visiteur sur le site émetteur peut être reçu après le passage du visiteur sur le site récepteur et réactiver un site trouvé passif B C Les phases actives peuvent être vues comme atomiques Systèmes et algorithmes répartis IV 17 / 36 Terminaison sur un anneau Process P(i : 0..N-1) { variables : couleur {blanc,noir} état {actif,passif} jeton {true,false}. while (true) { select { when accept message_applicatif // action couleur noir; état actif; [] when accept jeton(val) // réception jeton jeton true; nb val; if (nb = N color = blanc) then TERMINAISON DÉTECTÉE [] when jeton état = passif // envoi jeton if (couleur = blanc) then send jeton(nb + 1) to P i 1 else send jeton(1) to P i 1 couleur blanc; jeton false; [] else // attente état passif; } } } faire deux tours en vérifiant qu aucun site n a pas changé d état entre temps Systèmes et algorithmes répartis IV 18 / 36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Terminaison sur un anneau logique Graphe de communication arbitraire Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Circuit logique contenant tous les arcs (éventuellement plusieurs fois) Communication FIFO Terminaison comme précédemment, avec N = longueur du circuit Graphe de communication arbitraire avec la causalité Anneau logique contenant tous les sites (mais pas nécessairement tous les arcs) Communication causale : le jeton en transit depuis un site s ne peut pas arriver sur s avant les messages envoyés de s vers s et émis avant sa visite sur s Terminaison comme précédemment, avec N = longueur de l anneau Systèmes et algorithmes répartis IV 20 / 36

36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Algorithme des quatre compteurs (Mattern, 1987) Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Vague : itération répartie Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Principe A B C Terminaison E(t) = R(t) MAIS impossible à évaluer Approche : Compteurs locaux des messages émis et reçus Mécanisme de vague pour collecter les valeurs des compteurs La vague i collecte R i = r i et E i = e i Passage de la vague i (émis,reçus) (4,3) (2,2) m M (2,3) S 1 S 2 S 3 S 4 Faire_suivre i Visiter i Observateur Visiter i Enquêter i Collecter i vague i Faire_suivre (i+1) Visiter (i+1) Visiter (i+1) Enquêter (i+1) Collecter (i+1) vague (i+1) Systèmes et algorithmes répartis IV 21 / 36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Algorithme des quatre compteurs (Mattern) Détection de la terminaison nécessite deux vagues successives Terminaison si : R i = E i+1 ( t < d i+1 : E(t) = R(t)) Détection avec un retard d au plus la durée de la dernière vague Systèmes et algorithmes répartis IV 22 / 36 Algorithme des quatre compteurs preuve Vivacité : si le calcul est terminé, alors la terminaison est détectée Calcul terminé il existe une date à partir de laquelle les compteurs de messages émis/reçus par site ne changent plus deux vagues successives trouveront E 1 = R 1 = E 2 = R 2. Sûreté : si la terminaison est annoncée, alors le calcul est terminé application A B C i-ème vague (i+1)-ème vague di fi di+1 fi+1 Systèmes et algorithmes répartis IV 23 / 36 observateur (E1, R1) (E, R) (1) E R calcul réparti (2) E 1 E E 2 compteurs croissants (3) R 1 R R 2 idem (4) E 2 = R 1 détection annoncée (5) E R d après 2,3,4 E = R d après 1,5 (E2, R2) (E, R) valeurs réelles (et inconnues) des compteurs entre deux vagues successives.

37 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Algorithme des crédits (Mattern) Un peu oublié mais pourtant simple et performant... Principe A B C Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits Le processus initial possède un crédit de 1 Le crédit courant est partagé entre les messages émis Un processus rend son crédit s il n envoie pas de message Terminaison lorsque la somme collectée égale 1 Collecteur 1 ½ ½ ½ ½ 0 ½ ¾ 1 ½ Systèmes et algorithmes répartis IV 25 / 36 ¼ ¼ ½ ¼ ¼ ¼ Plan Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable 1 Exclusion mutuelle Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres 2 Détection de la terminaison Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits 3 Détection de l interblocage Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas 4 La diffusion fiable Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas Systèmes et algorithmes répartis IV 26 / 36 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas Spécification du problème Graphe d attente Détection d une propriété stable Interblocage dû aux communications : attente de la réception d un message Un processus est-il définitivement bloqué? Sûreté : pas de fausse détection Vivacité : Un processus bloqué finit par le savoir Note : définition identique en centralisé, résolutions différentes (absence d état global) A K H E D B? I G D s interroge? K,B,D,G en interblocage C J Graphe d attente Graphe dont les nœuds sont les processus, et un arc entre p i et p j si p i est bloqué / en attente de p j p4 p1 p2 p3 p5 Modèles de communication Modèle ET : un processus est bloqué tant qu il n a pas reçu un message depuis tous ceux qu il attend p4 p1 p2 p3 p5 Modèle OU : un processus est bloqué tant qu il n a pas reçu un message depuis l un de ceux qu il attend Systèmes et algorithmes répartis IV 27 / 36 Systèmes et algorithmes répartis IV 28 / 36

38 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas Caractérisation de l état d interblocage Modèle ET Existence d un cycle dans le graphe d attente Modèle OU Existence d une composante fortement connexe terminale dans le graphe d attente Composante fortement connexe terminale (CFCT) Un sous-graphe G d un graphe G = {S, A} est une CFCT (knot) ssi il existe un chemin entre tout couple de sommets de G et si tout sommet de G a ses successeurs dans G : s, s G : s s s G : suc(s) suc(s) G Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas Algorithme : calcul diffusant et arbre de contrôle K.Mani Chandy, J. Misra, Laura M. Haas (1983) Phase 1 : construction d un arbre de recouvrement des sites bloqués (message d enquête) Phase 2 : un site répond lorsqu il est bloqué et que tous ses successeurs ont répondu, ou qu il a déjà été visité (dans ce cas, cycle ou jonction avec une enquête en cours) Si le site initiateur obtient une réponse de tous ses successeurs, il y a interblocage P1 P5 P2 P4 P3 P1 Arbre construit P5 P2 P3 P4 Systèmes et algorithmes répartis IV 29 / 36 P2 P5 P3 cycle Propriétés Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable 1e visite P4 cycle P1 P4 2e visite P2 2e visite (jonction) Enquête Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas 3e visite P2 P4 P1 Réponse Terminaison de la construction de l arbre P 2 est interbloqué Pas de terminaison : Il faudra recommencer... Systèmes et algorithmes répartis IV 31 / 36 P3 P5 P2 Systèmes et algorithmes répartis IV 30 / 36 Plan Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable 1 Exclusion mutuelle Le problème Jeton circulant Algorithme de Ricart-Agrawala Algorithme à base d arbitres 2 Détection de la terminaison Le problème Terminaison sur un anneau Algorithme des quatre compteurs Algorithme des crédits 3 Détection de l interblocage Le problème Caractérisation de l interblocage Algorithme de Chandy, Misra, Haas 4 La diffusion fiable Systèmes et algorithmes répartis IV 32 / 36

39 La diffusion fiable Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Envoyer un message à un ensemble de destinataires, tels que tous les processus corrects le délivrent, ou aucun. Hypothèses Réseau point-à-point fiable (tout message finit par arriver, intact, s il existe un lien entre l émetteur et le destinataire) Réseau connexe, pas nécessairement complet Défaillance d arrêt : un processus peut s arrêter définitivement Systèmes et algorithmes répartis IV 33 / 36 P1 P3 P4 P2 P5 Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Réalisation par inondation Diffuser(m), sur p -- p = émetteur, m = message s voisins(p) {p} faire envoyer( p,m ) à s fin pour Réception( p,m ), sur q si q n a pas déjà délivré m alors si p q alors -- propagation s voisins(q) faire envoyer( p,m ) à s fin pour fin si délivrer(m) fin si Systèmes et algorithmes répartis IV 34 / 36 Propriétés Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Conclusion Exclusion mutuelle Détection de la terminaison Détection de l interblocage La diffusion fiable Tout processus qui délivre un message l a au préalable envoyé à ses voisins. Pour qu un processus correct ne reçoive pas un message, il faudrait donc qu aucun processus correct ne le lui ait envoyé, et donc délivré. Nombre de messages nécessaires = nombre de liens de communication ( 2) Le protocole tolère des arrêts de processus, tant que le graphe reste connexe. Si le graphe cesse d être connexe partitions. La propriété de fiabilité devient tous les destinataires d une même partition le délivrent, ou aucun. Quelques problèmes standards Prise de cliché (chapitre II) Élection (chapitre II) Exclusion mutuelle Interblocage Terminaison d un calcul réparti Diffusion fiable Systèmes et algorithmes répartis IV 35 / 36 Systèmes et algorithmes répartis IV 36 / 36

40

41 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données plan Systèmes et algorithmes répartis Tolérance aux fautes Philippe Quéinnec Département Informatique et Mathématiques Appliquées ENSEEIHT 4 novembre Sûreté de fonctionnement Vocabulaire Les moyens Traitement des erreurs 2 Serveurs à haute disponibilité Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel 3 Tolérance aux fautes pour les données Techniques logicielles Techniques matérielles Systèmes et algorithmes répartis V 1 / 45 Systèmes et algorithmes répartis V 2 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Plan Sûreté de fonctionnement 1 Sûreté de fonctionnement Vocabulaire Les moyens Traitement des erreurs 2 Serveurs à haute disponibilité Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel 3 Tolérance aux fautes pour les données Techniques logicielles Techniques matérielles Availability, disponibilité : capacité à être prêt à délivrer un service Reliability, fiabilité : continuité de service Safety, sécurité/sûreté : absence d effets catastrophiques sur l environnement Security, sécurité : préservation de la confidentialité et de l intégrité des informations Repairability, maintenabilité : capacité à restaurer un service correct après une défaillance Systèmes et algorithmes répartis V 3 / 45 Systèmes et algorithmes répartis V 4 / 45

42 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Mesures de fiabilité et disponibilité Fiabilité Vocabulaire Les moyens Traitement des erreurs MTTF (mean time to failure) : temps moyen jusqu à la prochaine panne MTTR (mean time to repair) : temps moyen de réparation MTBF (mean time between failure) = MTTF + MTTR Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Différence entre fiabilité et disponibilité Indisponibilité = 1 - disponibilité = MTTR/(MTTF + MTTR) MTTR/MTTF (si MTTR MTTF ) diviser MTTR par 2 = doubler MTTF Différence entre fiabilité (MTTF) et disponibilité (a) Disponibilité Disponibilité moyenne = fraction du temps où le système est disponible Pannes franches : dispo moyenne = MTTF/(MTTF+MTTR) 99.99% (4 nines) indisponible 50 min / an % (5 nines) indisponible 5 min / an Systèmes et algorithmes répartis V 5 / 45 (dessin : S. Krakowiak) Systèmes et algorithmes répartis V 6 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Le vocabulaire Cascade/Propagation Défaillance (failure) Déviation par rapport à la spécification. Manifestation d une erreur vis-à-vis du service. Erreur (error) Partie de l état du système entraînant la défaillance. Manifestation d une faute vis-à-vis du système. Note : une erreur est susceptible de causer une défaillance mais pas nécessairement (erreur latente, erreur compensée... ) Faute (fault) Cause de l erreur. client de A défaillance A erreur faute défaillance B erreur faute Le bon fonctionnement de A dépend du bon fonctionnement de B Une défaillance de B constitue une faute pour A Cette faute peut à son tour provoquer une erreur interne de A, causant une défaillance de A Ex : faute de programmation division par 0 arrêt du service Systèmes et algorithmes répartis V 7 / 45 Systèmes et algorithmes répartis V 8 / 45

43 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Classification informelle des fautes Vocabulaire Les moyens Traitement des erreurs Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Classification des défaillances Vocabulaire Les moyens Traitement des erreurs Point de vue nature : accidentelle ou intentionnelle origine : matérielle ou humaine création : conception ou opération persistance : permanente ou temporaire faute physique : accidentelle, matérielle, opération, permanente faute transitoire : accidentelle, matérielle, opération, temporaire faute intermittente : accidentelle, matérielle ou humaine, conception, temporaire faute de conception : accidentelle, humaine, conception, permanente faute d interaction : accidentelle, humaine, opération, temporaire attaques, intrusions : intentionnelle, humaine, conception ou opération Systèmes et algorithmes répartis V 9 / 45 Un serveur doit rendre un service correctement, i.e. conformément à une spécification (valeur, transition, vitesse... ). défaillance d omission : le service ignore une requête défaillance temporelle : la réponse est fonctionnellement correcte mais pas au bon moment défaillance temporelle d avance : réponse trop tôt défaillance temporelle de retard : réponse trop tard (défaillance de performance) défaillance de réponse : réaction inadaptée à la requête défaillance de valeur : valeur renvoyée erronée défaillance de transition : transition interne erronée défaillance arbitraire ou byzantine Systèmes et algorithmes répartis V 10 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Défaillance d arrêt Vocabulaire Les moyens Traitement des erreurs Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Les moyens de la sûreté de fonctionnement Si, suite à une première omission, le serveur ignore toutes les requêtes jusqu à ce qu il soit redémarré, on parle de panne franche, défaillance d arrêt, crash failure ou fail stop. Redémarrage amnesia-crash : état initial indépendant de l état avant crash pause-crash : état identique à l état avant crash halting-crash : pas de redémarrage (crash définitif) Défaillance d arrêt = cas le plus simple, auquel on essaie de se ramener (arrêt forcé sur tout type de défaillance) Note : un client ne peut pas distinguer entre un serveur planté, un serveur lent ou une défaillance du réseau. Systèmes et algorithmes répartis V 11 / 45 Construction Prévention des fautes : comment empêcher par construction, l occurrence ou l introduction de fautes Tolérance aux fautes : comment fournir un service conforme à la spécification, en dépit de fautes Validation Élimination des fautes : comment réduire, par vérification et tests, la présence de fautes Prévision des fautes : comment estimer, par évaluation, la présence et l apparition de fautes Systèmes et algorithmes répartis V 12 / 45

44 s Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs de la tolérance aux fautes Écrire un programme sans (trop de) bugs = prévention (méthodologie de développement) + élimination (vérification de types, preuves, tests... ) S adapter à un environnement hostile = prévision (à quoi faut-il s attendre?) + tolérance (que faut-il faire?) Empêcher le piratage = prévision (quelles attaques?) + prévention (cryptographie... ) Systèmes et algorithmes répartis V 13 / 45 Traiter les erreurs Détecter l existence d un état incorrect (erreur) Remplacer l état incorrect par un état correct Traiter les fautes Composants multiples, pour réduire la probabilité qu une faute dans l un d entre eux conduise à une défaillance de l ensemble Traitements multiples Principe : la redondance Redondance d information (détection d erreur) Redondance temporelle (traitements multiples) Redondance architecturale (composants multiples) Systèmes et algorithmes répartis V 14 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Méfiance Traitement des erreurs Nombreux pièges : Mauvaise analyse des fautes possibles Réaction inappropriée due à des hypothèses mal formulées : le remède aggrave la situation Redondance mal conçue : Éléments redondants ayant des modes de défaillance identiques Faux sentiment de sécurité Il n existe pas de méthodes de tolérance aux fautes valables dans l absolu, seulement des méthodes adaptées à des hypothèses particulières d occurrence de fautes. Ces hypothèses doivent donc être explicitement formulées, après analyse soigneuse. S.Krakowiak Systèmes et algorithmes répartis V 15 / 45 Recouvrement (error recovery) Remplacer l état incorrect par un état correct Détecter l erreur explicitement (vérifier des propriétés spécifiques à l état) implicitement (observation d anomalies : délai de garde, protection mémoire... ) Deux techniques de recouvrement : Reprise (backward recovery) Poursuite (forward recovery) Compensation (error masking) L état possède une redondance interne suffisante pour détecter et corriger l erreur Totalement transparent pour l utilisateur Par exemple : vote majoritaire interne Systèmes et algorithmes répartis V 16 / 45

45 Recouvrement Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Reprise Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Reprise (backward recovery) Retour en arrière vers un état antérieur dont on sait qu il est correct Nécessite la capture et la sauvegarde de l état Technique générale Coûteuse en temps et place Poursuite (forward recovery) Reconstruction d un état correct, sans retour en arrière Reconstruction souvent partielle, service dégradé Technique spécifique à l application et aux types d erreurs possibles Reprise Le système est remis dans un état précédant l occurrence de l erreur points de reprise pour sauvegarder l état (périodiquement, ou sur transition importante) La sauvegarde et la restauration doivent être atomique (pas d interférences) L état des points de reprise doit lui-même être protégé contre les fautes Systèmes et algorithmes répartis V 17 / 45 Systèmes et algorithmes répartis V 18 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Points de reprise en réparti Vocabulaire Les moyens Traitement des erreurs Compensation : vote majoritaire Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Vocabulaire Les moyens Traitement des erreurs Soit prise de clichés ( état cohérent possible) Soit des points de reprise individuels + construction d un état global cohérent risque d effet domino 4 1 P1 P2 Point de reprise 6 P3 État global cohérent 5 3 envoi 2 x Erreur détectée réception Systèmes et algorithmes répartis V 19 / 45 Résiste à la défaillance d un composant de traitement et d un voteur par étape (dessin : S. Krakowiak) Systèmes et algorithmes répartis V 20 / 45

46 Plan Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Serveur tolérant aux fautes Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel 1 Sûreté de fonctionnement Vocabulaire Les moyens Traitement des erreurs 2 Serveurs à haute disponibilité Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel 3 Tolérance aux fautes pour les données Techniques logicielles Techniques matérielles Redondance : N serveurs pour résister N 1 pannes franches Redondance froide (reprise) Points de reprise Serveurs de secours prêts à démarrer Redondance passive (poursuite) Serveur de primaire serveurs de secours Un seul serveur (le primaire) exécute les requêtes des clients La panne du primaire est visible des clients Redondance active (compensation) N serveurs symétriques exécutant toutes les requêtes La panne d un serveur est invisible aux clients (tant qu il reste un serveur!) Systèmes et algorithmes répartis V 21 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Serveur primaire secours froids Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Systèmes et algorithmes répartis V 22 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Serveur primaire serveurs de secours client serveur de secours requête serveur primaire point de reprise (en attente) traitement réponse restauration de l'état client serveur primaire secours 1 requête traitement nouvel état + réponse (en attente) ack ack réponse Panne visible par le client Points de reprise : périodiquement, ou à chaque transition importante Simple mais latence de reprise Retour en arrière requêtes traitées mais oubliées secours 2 Diffusion fiable (pas de diffusion partielle) Cohérence : quand le primaire répond, tous les serveurs non en panne sont dans le même état Poursuite : tout serveur de secours peut remplacer le primaire en cas de panne Systèmes et algorithmes répartis V 23 / 45 Systèmes et algorithmes répartis V 24 / 45

47 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Défaillance du serveur primaire client serveur primaire secours 1 secours 2 requêt (en attente) Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel délai de garde 1 2 requête répétée Détection de la défaillance par le client et par les secours Le client renvoie sa requête au secours devenu primaire (élection ou ordre défini à l avance) Diffusion fiable tous les serveurs sont à jour, ou aucun : Si la panne est arrivée en 1 (aucun serveur à jour) comme une nouvelle requête Si la panne est arrivée en 2 (tous les serveurs à jour) renvoie de la réponse déjà calculée Les requêtes ont un identifiant unique, pour distinguer 1 et 2. Systèmes et algorithmes répartis V 25 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Cas particulier : 1 seul secours (Alsberg & Day) client serveur primaire secours requête traitement (en attente) nouvel état + réponse réponse Protocole plus simple (pas besoin de diffusion fiable) Réponse envoyée par le secours Systèmes et algorithmes répartis V 26 / 45 ack Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance active Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Nécessité de la diffusion atomique Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel client serveur serveur serveur requête (en attente) traitement traitement traitement réponses Tous les serveurs sont équivalents et exécutent le même traitement Le client choisit la première réponse (panne d arrêt), ou la réponse majoritaire (panne arbitraire) Diffusion fiable et totalement ordonnée (atomique) : Message délivré par tous les destinataires ou aucun Deux messages différents sont délivrés dans le même ordre sur tous les destinataires communs Systèmes et algorithmes répartis V 27 / 45 client client serveur serveur serveur requête 1 requête 2 T1 T1 T2 Le serveur 1 traite la requête 2 avant la 1, alors que les serveurs 2 et 3 traitent 1 puis 2 état incohérent si les traitements modifient l état des serveurs (traitements non commutatifs) Systèmes et algorithmes répartis V 28 / 45 T2 T2 T1

48 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Comparaison redondance froide/passive/active Mécanismes nécessaires : Diffusion fiable pour passive, fiable-atomique pour active Coordination des départs/arrivées (notion de vue, à suivre) Ressources : Serveur froid : éteint ; reprise longue Serveur primaire : serveurs de secours non utilisés gratuits / utilisés pour autre chose ; reprise non immédiate Redondance active : exécutions superflues ; reprise immédiate Transparence pour le client : uniquement en redondance active Sensibilité aux bugs logiciels : même état + même entrée même bug tous se plantent... (redondance froide moins sensible : retour en arrière) Système critique : combinaison des trois techniques compensation/poursuite/reprise : 2 serveurs actifs + 1 secours passif + 1 secours froid avec points de reprise Systèmes et algorithmes répartis V 29 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Groupes de processus Travaux de Kenneth P. Birman (Cornell University) Protocoles de groupes Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Gestion d un ensemble de processus avec des opérations pour l appartenance : évolution de la composition du groupe, connaissance de la composition du groupe la diffusion : communication vers un ensemble de processus Motivations : ensemble de processus se comportant comme un processus unique, avec tolérance aux fautes (réplication) travail coopératif, partage d information Groupe de pairs Groupe client-serveur groupe de diffusion groupe hiérarchique Systèmes et algorithmes répartis V 30 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Service de groupes : interface Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Diffusion Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel diffuser(p,m) : le processus p diffuse le message m au groupe délivrer(p,m) : le message m est délivré à p changement-de-vue(p,id,v) : une nouvelle vue V (= ensemble de processus) identifiée par id est délivrée au processus p La diffusion se fait toujours dans la vue courante Groupe diffuser délivrer service de groupe envoyer Processus recevoir système de communication changement de vue Envoi d un message à un ensemble de destinataires Diffusion générale (broadcast) Les destinataires sont tous les processus d un ensemble défini implicitement (p.e. tous les processus du système). L émetteur est généralement aussi destinataire. broadcast(émetteur, message) Diffusion de groupe (multicast) Les destinataires sont un ou plusieurs groupes spécifiés. L émetteur peut ne pas appartenir aux groupes destinataires. Les groupes peuvent ne pas être disjoints. multicast(émetteur, message, {groupe1, groupe2...}) Systèmes et algorithmes répartis V 31 / 45 Systèmes et algorithmes répartis V 32 / 45

49 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Propriétés indépendantes de l ordre d émission Diffusion fiable Un message est délivré à tous les destinataires corrects ou à aucun. Diffusion totalement ordonnée (dite atomique) La diffusion est fiable et les messages sont délivrés dans le même ordre sur tous leurs destinataires. P1 t2 t2 Uniformité Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Diffusion fiable uniforme Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Si un message est délivré à un processus (correct ou défaillant), il sera délivré à tous les processus corrects avec diffusion fiable : délivrance à tous les processus corrects ou aucun, on ne se préoccupe pas des processus défaillants. P1 P2 P2 t1 t1 P3 G1 G2 L ordre total peut (ou non) être compatible avec la causalité Systèmes et algorithmes répartis V 33 / 45 P4 Non uniforme (mais fiable) Uniforme Nécessaire si un processus défaillant peut (avant sa défaillance) exécuter des actions irréversibles, notamment vis-à-vis de l extérieur. Systèmes et algorithmes répartis V 34 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Propriétés liées à l ordre d émission Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Classes de propriétés Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Diffusion FIFO Deux messages d un même émetteur sont délivrés dans l ordre de leur émission. P1 m1 m2 m1 m2 fiable atomique P2 Diffusion causale L ordre de délivrance respecte la causalité de l ordre (causal) d émission. P1 P2 c1 m c2 c1 m c2 fiable FIFO fiable causale atomique FIFO atomique causale G1 G2 Systèmes et algorithmes répartis V 35 / 45 Systèmes et algorithmes répartis V 36 / 45

50 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Protocoles de groupe : l appartenance Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Diffusion anarchique Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel C1 C2 S1 S2 S3 Le service d appartenance (membership) vise à fournir à tout instant à chaque membre du groupe une vue de la composition courante du groupe. m2 m1 Partition primaire : la suite des vues fournies aux membres est totalement ordonnée. Il n y a pas de partition, ou de manière équivalente, un unique primaire. Partition multiple : la suite des vues fournies aux membres est partiellement ordonnées. Il peut y avoir simultanément plusieurs vues disjointes. Ordre causal? Ordre total? Atomicité? Arrêt/Reprise? m4 m5 m3 état crash Systèmes et algorithmes répartis V 37 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données groupe avec synchronisme fort Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Systèmes et algorithmes répartis V 38 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données groupe avec synchronisme virtuel Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel C1 C2 S1 S2 S3 C1 C2 S1 S2 S3 m1 m1 m2 m2 m3 m3 crash m4 m4 crash S4 m5 m5 Systèmes et algorithmes répartis V 39 / 45 Systèmes et algorithmes répartis V 40 / 45

51 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel Le synchronisme virtuel Impossibilités Une vue = état d un groupe (ensemble des membres) Garantir qu une diffusion est délivrée dans la vue où elle a été émise Garantir que, entre deux changements de vue, tous les membres reçoivent les mêmes messages Garantir que tous les membres voient la même séquence de changements de vue Progression limitée à la partition majoritaire Impossibilité du service d appartenance Un service d appartenance minimal (spécifications peu contraignantes) est impossible dans un système asynchrone avec une seule défaillance d arrêt. Résultat similaire à Fischer, Lynch, Paterson (cf partie consensus ). Le consensus est réductible à l appartenance. Impossibilité de la diffusion atomique La diffusion atomique (= totalement ordonnée) est impossible dans un système asynchrone avec une seule défaillance d arrêt. Solutions (cf partie consensus ) : supposer du synchronisme et/ou les détecteurs de fautes Systèmes et algorithmes répartis V 41 / 45 Systèmes et algorithmes répartis V 42 / 45 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Techniques logicielles Techniques matérielles Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Techniques logicielles Techniques matérielles Plan 1 Sûreté de fonctionnement Vocabulaire Les moyens Traitement des erreurs 2 Serveurs à haute disponibilité Redondance froide Redondance passive Redondance active Groupes et synchronisme virtuel 3 Tolérance aux fautes pour les données Techniques logicielles Techniques matérielles Techniques logicielles Cf cours suivant (réplication des données) Systèmes et algorithmes répartis V 43 / 45 Systèmes et algorithmes répartis V 44 / 45

52 Sûreté de fonctionnement Serveurs à haute disponibilité Tolérance aux fautes pour les données Techniques logicielles Techniques matérielles RAID Redundant Array of Inexpensive/Independent Disks Plusieurs disques sur lesquels on partitionne et duplique les données meilleure performance (accès parallèle) meilleure disponibilité (redondance) Multiples configurations selon besoins (non développé : contrôle centralisé) Systèmes et algorithmes répartis V 45 / 45

53 Cohérence Mise en œuvre Systèmes et algorithmes répartis Données réparties Philippe Quéinnec, Gérard Padiou Première partie Réplication de données Département Informatique et Mathématiques Appliquées ENSEEIHT 12 novembre 2014 Systèmes et algorithmes répartis VI 1 / 76 Systèmes et algorithmes répartis VI 2 / 76 plan Cohérence Mise en œuvre Plan Cohérence Mise en œuvre Cohérence Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 3 Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence 2 Cohérence Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 3 Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Systèmes et algorithmes répartis VI 3 / 76 Systèmes et algorithmes répartis VI 4 / 76

54 Réplication de données Cohérence Mise en œuvre Principe général Cohérence Mise en œuvre Réplication Placement de plusieurs exemplaires d une même donnée sur différents sites. Intérêt de la réplication Favorise les accès locaux : performance Tolérance aux pannes (copies multiples) Répartition de charge Mode déconnecté envisageable en cohérence à terme Principe : fournir des objets partagés par couplage dans les espaces d adressage de structures d exécution (couplage virtuel) réparties Partage par copie locale (efficacité) Programmation simple (accès local) Le système charge éventuellement les données à la demande Le système assure la cohérence des données partagées Systèmes et algorithmes répartis VI 5 / 76 Cohérence Mise en œuvre Réplication optimiste / pessimiste Systèmes et algorithmes répartis VI 6 / 76 Cohérence Mise en œuvre Réplication et répartition des données Réplication optimiste Autoriser l accès à une copie sans synchronisation a priori avec les autres copies Modifications propagées en arrière plan Conflits supposés peu nombreux, et résolus quand ils sont détectés Réplication pessimiste Garantit l absence de conflits Mécanisme bloquant de prévention Where a pessimistic algorithm waits, an optimistic one speculates. Deux sujets : Une même donnée, répliquée sur plusieurs sites mêmes valeurs? Plusieurs données, sur des sites différents l ensemble est-il cohérent? Mais en fait, c est le même problème! P1 P2 w(x)0 w(x)1 r(x)0 P1 P2 w(x)1 w(y)1 r(y)0 r(x)0 w i (x)b = écriture, sur le site i, de la variable x avec la valeur b Systèmes et algorithmes répartis VI 7 / 76 Systèmes et algorithmes répartis VI 8 / 76

55 Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Plan Cohérence 1 2 Cohérence Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 3 Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Définition Cohérence : relation que gardent entre elles les différentes copies des données Cohérence stricte, linéarisabilité, cohérence séquentielle Cohérences faibles (weak consistency) cohérence à la sortie (release consistency) cohérence à l entrée (entry consistency) Cohérences non séquentielles cohérence causale cohérence à terme (eventual consistency) Systèmes et algorithmes répartis VI 9 / 76 Systèmes et algorithmes répartis VI 10 / 76 Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérence stricte Linéarisabilité Cohérence stricte Toute lecture sur un élément X renvoie une valeur correspondant à l écriture la plus récente sur X. Modèle idéal Difficile à mettre en œuvre Synchronisation des horloges (difficile d avoir un référentiel de temps absolu) Temps de communication (temps de propagation des mises à jour) Opérations instantanées approximation de ce modèle par des modèles moins contraignants Systèmes et algorithmes répartis VI 11 / 76 Définition Le résultat d une exécution parallèle est le même que celui d une exécution séquentielle qui respecte l enchaînement des opérations. Toutes les opérations sont exécutées selon une certaine séquence S (comme en centralisé) Si deux opérations (lecture ou écriture) sont telles que la première finit avant que la deuxième ne commence, alors elles figurent dans cet ordre dans S. La cohérence interne des données est respectée dans S (après une écriture et jusqu à la prochaine, la lecture délivre la valeur écrite) Note : le point 2 nécessite un ordre total sur les dates de début/fin, par exemple le temps absolu. Systèmes et algorithmes répartis VI 12 / 76

56 Cohérence Mise en œuvre Cohérence stricte vs linéarisabilité Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérence séquentielle Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles P1 P2 P3 P4 w(x)a w(x)b r(x)? r(x)? Séquences valides pour la linéarisabilité : w 1 (x)a w 2 (x)b r 3 (x)b r 4 (x)b (= stricte sur les débuts) w 1 (x)a r 3 (x)a w 2 (x)b r 4 (x)b (= stricte sur les fins) w 2 (x)b w 1 (x)a r 3 (x)a r 4 (x)a Séquences invalides pour la linéarisabilité : w 2 (x)b r 3 (x)b w 1 (x)a r 4 (x)a (début r 3 postérieur à fin w 1 ) w 2 (x)b r 4 (x)b w 1 (x)a r 3 (x)a (début r 4 postérieur à fin w 1 / r 3 ) Systèmes et algorithmes répartis VI 13 / 76 Définition Le résultat d une exécution parallèle est le même que celui d une exécution séquentielle qui respecte l ordre partiel de chacun des processeurs. Toutes les opérations sont exécutées selon une certaine séquence S (comme en centralisé) Les opérations exécutées par tout processus P figurent dans S dans le même ordre que dans P La cohérence interne des données est respectée dans S (après une écriture et jusqu à la prochaine, la lecture délivre la valeur écrite) Remarque : on ne contraint pas l ordre des opérations dans des processus différents. Systèmes et algorithmes répartis VI 14 / 76 Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Linéarisabilité/cohérence séquentielle/non séquentielle Cohérence séquentielle Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles P1 P2 P3 w(x)a r(x)a w(x)b r(x)b r(x)a r(x)b Linéarisable P4 S = w 1 (x)a r 3 (x)a r 4 (x)a w 2 (x)b r 4 (x)b r 3 (x)b P1 P2 w(x)b w(x)a r(x)a r(x)b Cohérence P3 r(x)a r(x)b séquentielle P4 S = w 1 (x)a r 3 (x)a r 4 (x)a w 2 (x)b r 3 (x)b r 4 (x)b Cohérence non séquentielle P1 w(x)a P2 P3 P4 w(x)b r(x)b r(x)a Systèmes et algorithmes répartis VI 15 / 76 r(x)a r(x)b Les processeurs doivent s accorder sur l ordre des accès un accès en écriture est terminé si une lecture à la même adresse rend la valeur écrite (quelque soit le processeur) chaque écriture doit être terminée pour continuer l exécution (sinon deux écritures peuvent s inverser) Dans la pratique, algorithme d ordonnancement global diffusion des modifications à tous les sites (ordre total) ou un serveur n autorisant qu une seule copie en écriture (par unité) lourd et inefficace : r + w t, où r est la durée d une lecture, w d une écriture, et t est le temps minimal de transfert d un message mais assez intuitif Systèmes et algorithmes répartis VI 16 / 76

57 Cohérence Mise en œuvre Cohérence et synchronisation Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérences faibles Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles La présence de code de synchronisation (p.e. exclusion mutuelle ou verrous) simplifie la cohérence nécessaire : Cohérence séquentielle pour la prise des verrous Cohérence faible pour les objets Règle : tous les accès mémoire doivent être terminés avant chaque point de synchronisation acquire(v) release(v) r(x)1 w(y)2 w(z)3 P1 P2 ack(v) Systèmes et algorithmes répartis VI 17 / 76 Différencier les points d entrée et de sortie de synchronisation Cohérence à la sortie (release consistency) en sortie de synchronisation, les accès doivent être terminés mise à jour précoce (eager) : envoi des modifications à tous les noeuds (ayant une copie) mise à jour paresseuse (lazy) : acquisition par le processeur qui reprend le verrou (sorte de cohérence à l entrée) Cohérence à l entrée (entry consistency) association explicite entre variable de synchronisation et variables partagées verrouillage avant d utiliser un objet mise en cohérence de l objet lors de la prise du verrou Systèmes et algorithmes répartis VI 18 / 76 Cohérence causale Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérence causale Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Relation de causalité e précède causalement e : e e si : Si e et e sont sur le même site, et e précède e Si e = w(x)a, et e = r(x)a (e = lecture de la valeur écrite en e) Transitivité : si e e et e e Événements concurrents = pas de précédence causale entre eux. Cohérence causale Les valeurs sont observées dans un ordre compatible avec la causalité. Note : deux écritures concurrentes peuvent être vues dans des ordres différents sur des processeurs différents. P1 P2 P3 P4 w(x)1 r(x)1 w(x)2 w(x)3 // r(x)1 r(x)3 r(x)2 r(x)1 r(x)2 r(x)3 Assez lourd à mettre en œuvre (horloges matricielles) Mais optimisations (horloges vectorielles) Gains considérables en général Systèmes et algorithmes répartis VI 19 / 76 Systèmes et algorithmes répartis VI 20 / 76

58 Cohérence Mise en œuvre Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Cohérence à terme (eventual consistency) Plan Cohérence à terme Respect de l ordre local + datation globale ordonnant les écritures sur un même objet. Aucune contrainte sur les lectures (valeurs périmées possibles) Majorité de lectures, peu d écritures Acceptable de lire une donnée non à jour s : DNS, WWW, consultation des places disponibles (mais pas réservation) En l absence prolongée de modifications, les copies finiront par devenir cohérentes Algorithmes de propagation dits épidémiques 1 2 Cohérence Cohérence séquentielle Cohérence et synchronisation Cohérences non séquentielles 3 Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Systèmes et algorithmes répartis VI 21 / 76 Cohérence Mise en œuvre Problème 1 : placement des copies Placement des copies Propagation des mises à jour Protocoles de cohérence Systèmes et algorithmes répartis VI 22 / 76 Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Problème 2 : propagation des mises à jour Copies permanentes Ensemble de copies définies a priori. Configuration statique Architecture statique de tolérance aux fautes Copies à la demande Création dynamique de copies selon les besoins Adaptation à la charge Write-update Lectures locales sans communication Modifications : locales et envoyées en multicast Cohérence : propriétés sur l ordre des messages Multicast peut être cher (à chaque écriture) Write-invalidate Invalidations diffusées en cas d écriture Lectures après chargement si nécessaire Généralement, n lecteurs - 1 écrivain Plusieurs lectures/écritures locales sans communication (si en cache) Systèmes et algorithmes répartis VI 23 / 76 Systèmes et algorithmes répartis VI 24 / 76

59 Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Problème 3 : protocoles de cohérence Cohérence Mise en œuvre Duplication active Diffusion Placement des copies Propagation des mises à jour Protocoles de cohérence Copie primaire fixe Serveur fixe. Toute demande de modification passe par ce serveur ( accès distant). Copie primaire locale Le contrôle est donné au site qui fait une mise à jour accès local. Intéressant avec les cohérences liées à la synchronisation. Duplication active Accord de l ensemble des serveurs : Diffusion fiable totalement ordonnée (atomique) Votes et quorums Algorithmes épidémiques Principe Écriture : diffusion atomique totalement ordonnée à toutes les copies toutes les copies mettent à jour dans le même ordre Lecture : utilisation d une copie quelconque : immédiatement (valeur passée possible) causalement (cohérence causale) totalement ordonnée avec les écritures (cohérence séquentielle) Systèmes et algorithmes répartis VI 25 / 76 Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Duplication active Votes et quorums Systèmes et algorithmes répartis VI 26 / 76 Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Algorithmes épidémiques (Demers et al., 1987) Principe Pour effectuer une lecture, avoir l accord de nl copies Pour effectuer une écriture, avoir l accord de ne copies Condition : nl + ne > N (nb de copies) Garantit la lecture de la plus récente écriture Votes pondérés Donner des poids différents aux copies, selon leur importance (p.e. accessibilité) N nombre total de votes ( nb de copies) nl = quorum de lecture ne = quorum d écriture Conditions : nl + ne > N et 2 ne > N Systèmes et algorithmes répartis VI 27 / 76 Diffusion à grande échelle Grand nombre de sites (> 100), voire très grand (> 10000) Nombre inconnu et variable de sites Rôle symétrique de tous les sites Présence de sites en panne Topologie d interconnexion inconnue (a priori non directement maillée) s : Internet (DNS), peer-to-peer Approche Algorithmes probabilistes Propagation aléatoire Systèmes et algorithmes répartis VI 28 / 76

60 Cohérence Mise en œuvre Algorithme épidémique : Rumeur Placement des copies Propagation des mises à jour Protocoles de cohérence Rumeur : exemple Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Rumeur (Gossip) Contamination d autres sites choisis aléatoirement avec une information supposée nouvelle. États d un site : Infectable : ne possède pas l information Contagieux : apte à contaminer des sites infectables Immunisé : a cessé d être contagieux Immunisation en aveugle ou avec rétroaction (échec d une tentative de contamination) Compteur (de tentatives ou d échecs) Probabilité d abandon après chaque tentative / échec 20 sites, nombre de sites contactés à chaque tour = 2, immunisation en aveugle à 1 tour Initial après 1e transmission après 2e transmission après 3e transmission Systèmes et algorithmes répartis VI 29 / 76 Systèmes et algorithmes répartis VI 30 / 76 Rumeur : performance Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Rumeur : performance Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Modèle simple : infect forever = pas d immunisation N = nombre de sites f = nombre de sites contactés à chaque tour par chaque site I (t) = nombre de sites infectés (contagieux ou immunisés) après le t-ième tour p(t) = I (t)/n = proportion de sites infectés au t-ième tour 1 Alors p(t) = 1+(N 1) e f t N= p(t), f=1 p(t), f=2 p(t), f= Tour Systèmes et algorithmes répartis VI 31 / 76 Modèle simple : infect and die = immunisation après un seul tour N = nombre de sites f = nombre de sites contactés par chaque site P = probabilité que tous les sites finissent par être infectés (à l ) elog N f Alors P e Inversion autour de f = log N N=50000 P(f) Systèmes et algorithmes répartis VI Fanout 32 / 76

61 Rumeur : performance Nombre de tours pour tout contaminer : Modèle sans immunisation (infect forever) : Rumeur : coût Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence R = log f +1 n+ 1 f log n+o(1) Nb sites Modèle immunisation immédiate (infect and die) : (fin de l épidémie avec tous contaminés) R = log n log log n + O(1) R(n) R(n), f=1 R(n), f=2 R(n), f=3 R(n), f=4 Diffusion probabiliste Existence de sites non informés (poches d ignorance si le choix des sites est plutôt local) Nombre de messages élevés (échecs de contamination) Nb sites Systèmes et algorithmes répartis VI 34 / 76 Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Algorithme épidémique : Anti-entropie Graphes petit monde Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Anti-entropie Périodiquement, chaque site contacte aléatoirement un autre site. Les deux sites échangent alors des informations, et leurs objets sont mis en cohérence. L algorithme converge vers l égalité des copies : cohérence à terme. Nombre de tours pour tout contaminer = O(log N) Systèmes et algorithmes répartis VI 35 / 76 Les algorithmes précédents n ont pas de notion de voisinage : choix arbitraire d un site quelconque (graphe complet). Graphe petit monde (small-world graphs) Graphe connexe vérifiant : Grand nombre de nœuds (N > 10000) Faible connectivité des nœuds (de l ordre de 5 à 10) Distance entre deux nœuds quelconques log N Remarquablement adapté aux algorithmes épidémiques, résistant aux pannes (de sites et de liens) Apparaît spontanément (ex : réseau routier : maillage local, rocade, autoroutes)... ou pas (ex : réseau aérien avec quelques gros hubs à forte connectivité) Systèmes et algorithmes répartis VI 36 / 76

62 Conclusion Cohérence Mise en œuvre Placement des copies Propagation des mises à jour Protocoles de cohérence Conception SGF répartis conventionnels SGF répartis spécialisés Intérêt de la réplication Favorise les accès locaux : performance Tolérance aux pannes (copies multiples) Répartition de charge Mode déconnecté envisageable en cohérence à terme Limites Diverses formes de cohérence, aucune simple ET performante Cohérences faibles comportements surprenants Diverses implantations, toutes complexes Difficiles de faire cohabiter plusieurs formes de cohérence selon la nature des données Deuxième partie Systèmes de fichiers répartis Systèmes et algorithmes répartis VI 37 / 76 Systèmes et algorithmes répartis VI 38 / 76 plan Conception SGF répartis conventionnels SGF répartis spécialisés Plan Conception SGF répartis conventionnels SGF répartis spécialisés Les principes et objectifs SGF réparti Sémantique de la concurrence 4 Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 5 SGF répartis conventionnels NFS v3 (l ancêtre) NFS v4 AFS 6 SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox 4 Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 5 SGF répartis conventionnels NFS v3 (l ancêtre) NFS v4 AFS 6 SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Systèmes et algorithmes répartis VI 39 / 76 Systèmes et algorithmes répartis VI 40 / 76

63 Conception SGF répartis conventionnels SGF répartis spécialisés Les principes et objectifs SGF réparti Sémantique de la concurrence Conception SGF répartis conventionnels SGF répartis spécialisés Les principes et objectifs SGF réparti Sémantique de la concurrence Données rémanentes et abstraction des ressources Objectif Espace logique de fichiers Espace physique de ressources / Modem ADSL Disques mach mach.sym bin local Scanner clé USB sh cat Imprimante Projection de l espace logique sur l espace physique Systèmes et algorithmes répartis VI 41 / 76 Un bon système de fichiers répartis est un système de fichiers... qui peut passer pour un système centralisé Obtenir le meilleur niveau de transparence de la répartition transparence d accès transparence de la localisation transparence du partage, de la concurrence transparence de la réplication transparence des fautes transparence de l hétérogénéité transparence d échelle... Systèmes et algorithmes répartis VI 42 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés Transparence de la localité Les principes et objectifs SGF réparti Sémantique de la concurrence Conception SGF répartis conventionnels SGF répartis spécialisés Architecture d un système de fichiers Les principes et objectifs SGF réparti Sémantique de la concurrence Une étape : le réseau est la racine Domain OS (Apollo) : //mozart/usr/... Cedar : /serveur/<chemin local> Service de fichiers à plat (flat file system) Service de nommage (répertoires) Module client : API simple et unique, indépendante de l implantation Client Kernel or Server Disparition des noms de sites : NFS Tous les fichiers sont intégrés dans une arborescence unique Implantation : par extension du montage de volume à distance Implantation : par exportation sélective des volumes Application program Application program Client module Directory service Flat file service Transparence de la localité Désignation uniforme (source : Coulouris Dollimore) Systèmes et algorithmes répartis VI 43 / 76 Systèmes et algorithmes répartis VI 44 / 76

64 SGF centralisé Conception SGF répartis conventionnels SGF répartis spécialisés Les principes et objectifs SGF réparti Sémantique de la concurrence Conception SGF répartis conventionnels SGF répartis spécialisés SGF réparti : Niveau répertoire Les principes et objectifs SGF réparti Sémantique de la concurrence API Unix canal open(nom,mode) canal creat(nom, mode) connexion du fichier à un canal connexion avec création Fonction Noms symboliques noms internes (Unique File IDentifiers UFID) Protection : contrôle d accès close(canal) int read(canal,tampon,n) int write(canal,tampon,n) pos = lseek(canal, depl, orig) stat(nom, attributs) déconnexion lecture de n octets au plus écriture de n octets au plus positionnement du curseur Lecture des attributs du fichier Génération de noms internes (UFID) : Engendrés par le serveur pour les clients Unicité, non réutilisation, protection API RPC Service Répertoire unlink(nom) link(nom orig,synonyme) suppression du nom dans le rép. Nouvelle référence UFID Lookup(UFID rép, String nom) AddName(UFID rép, String nom, UFID uid) UnName(UFID rép, String nom) String[] GetNames(UFID rép, String motif) résolution du nom insérer le nom supprimer le nom recherche par motif Systèmes et algorithmes répartis VI 45 / 76 Systèmes et algorithmes répartis VI 46 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés SGF réparti : Niveau fichier Les principes et objectifs SGF réparti Sémantique de la concurrence Conception SGF répartis conventionnels SGF répartis spécialisés Problème sémantique du partage Les principes et objectifs SGF réparti Sémantique de la concurrence Fonction Passage d un nom interne global (UFID à un descripteur) Accès au fichier (attributs) API RPC Service Fichier byte[] Read(UFID uid, int pos,int n) Write(UFID uid,int pos,byte[] z,int n) UFID Create() Delete(UFID uid) GetAttributes(UFID uid, Attributs a) Attributs SetAttributes(UFID uid) lire n octets au + en pos écrire n octets en pos créer un fichier supprimer l UID du fichier lire les attributs du fichier mettre à jour les attributs Opérations idempotentes (sauf create) : RPC at-least-once Serveur sans état : redémarrage sans reconstruction de l état précédent Systèmes et algorithmes répartis VI 47 / 76 Idéalement Sémantique centralisée (Unix-like) : lecture de la dernière version écrite Sous une autre forme : une lecture voit TOUTES les modifications faites par les écritures précédentes Difficultés Ordre total Propagation immédiate des modifications Pas de copie contention Idée : copies caches et sémantique de session Systèmes et algorithmes répartis VI 48 / 76

65 Conception SGF répartis conventionnels SGF répartis spécialisés Les principes et objectifs SGF réparti Sémantique de la concurrence Conception SGF répartis conventionnels SGF répartis spécialisés Les principes et objectifs SGF réparti Sémantique de la concurrence L approche session L approche session (suite) Stratégie orientée session Un serveur unique maintient la version courante Lors de l ouverture à distance par un client (début de session), une copie locale au client est créée Les lectures/écritures se font sur la copie locale Seul le client rédacteur perçoit ses écritures de façon immédiate (sémantique centralisée) Lors de la fermeture (fin de session), la nouvelle version du fichier est recopiée sur le serveur : La session (d écritures du client) est rendue visible aux autres clients Problème Plusieurs sessions de rédacteurs en parallèle... L ordre des versions est l ordre de traitement des fermetures La version gagnante est indéfinie Autres solutions Invalidation les copies clientes par le serveur lors de chaque création de version Le contrôle du parallélisme : garantir un seul rédacteur Une autre idée : Fichiers à version unique (immuable) Systèmes et algorithmes répartis VI 49 / 76 Systèmes et algorithmes répartis VI 50 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés NFS v3 (l ancêtre) NFS v4 AFS Conception SGF répartis conventionnels SGF répartis spécialisés NFS v3 (l ancêtre) NFS v4 AFS Plan NFS (Network File System) : 4 Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 5 SGF répartis conventionnels NFS v3 (l ancêtre) NFS v4 AFS 6 SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Origine : Sun Microsystems (1984, 1995, 2003, 2010) Transparence d accès et de localisation ( virtual file system) Traitement de l hétérogénéité ( virtual node vnode) Désignation non uniforme (a priori) Approche intégrée (modification des primitives du noyau) Protocole RPC entre noyaux ( système fermé) : sémantique au moins une fois Serveur : site qui exporte des volumes Client : accès à un système de fichiers distants par montage à distance (extension du mount) Serveur sans état (mais v4 avec état) Systèmes et algorithmes répartis VI 51 / 76 Systèmes et algorithmes répartis VI 52 / 76

66 Conception SGF répartis conventionnels SGF répartis spécialisés NFS v3 (l ancêtre) NFS v4 AFS Idée de base de NFS : le montage à distance de volumes Architecture de NFS Conception SGF répartis conventionnels SGF répartis spécialisés NFS v3 (l ancêtre) NFS v4 AFS Montagedevolumesàdistance Client computer Server computer mount /dev/disk0s3 /sys/mach dev mach / sys mount rubis:/dev/disk0s1 /projets mach.sym projets Siterubis dev UNIX system calls UNIX kernel Application program Local Application program Virtual file system Remote UNIX kernel Virtual file system bin local disk0s1 Volume distant UNIX file system Other file system NFS client NFS protocol NFS server UNIX file system disk0s3 Volume local sh cat (source : Coulouris Dollimore) Systèmes et algorithmes répartis VI 53 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés NFS Transparence de localisation et hétérogénéité NFS v3 (l ancêtre) NFS v4 AFS Systèmes et algorithmes répartis VI 54 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés NFS v3 (l ancêtre) NFS v4 AFS Gestion de caches clients et serveur La notion de virtual file system (VFS) Étend la notion de système de fichiers (file system) aux volumes à distance et à des systèmes de fichiers hétérogènes VFS un volume support d un système de fichiers particulier La notion de virtual node (vnode) Extension de la notion de inode Pointe un descripteur local (inode) ou distant (rnode) Notion de file handle ou UFID Un nom global, engendré par le serveur et donné au client Identification du FS n o inode n o de génération Objectif Garantir la sémantique centralisée : la version lue est la dernière version écrite Approximation... Sur ouverture, le client mémorise : (date de dernière modification, date présente) Interrogation du serveur si lecture après plus de p secondes (p = 3 sec. pour fichier ordinaire, p = 10 sec. si répertoire) Systèmes et algorithmes répartis VI 55 / 76 Systèmes et algorithmes répartis VI 56 / 76

67 Conception SGF répartis conventionnels SGF répartis spécialisés NFS v3 (l ancêtre) NFS v4 AFS Conception SGF répartis conventionnels SGF répartis spécialisés NFS v3 (l ancêtre) NFS v4 AFS NFS avec serveur à état : v4 AFS (Andrew File System) Principales différences... Introduction des notions de serveur à état et de session : Open et Close réapparaissent! procédures de reprise sur incident Protocole sécurisé beaucoup plus poussé : usage de kerberos, chiffrement Groupement des requêtes pour de meilleures performances Notion de délégation : le client a une copie locale utilisable jusqu à une alerte du serveur (callback) Traitement de la transparence de migration et/ou réplication Verrouillage temporisé : notion de bail (lease) Usage de TCP/IP Origine : Carnegie Mellon University (1986) SGF uniforme pour servir plusieurs milliers de machines Deux composants : les stations serveurs (VICE) les stations clientes (VERTUE) Réplication en lecture seule des fichiers systèmes Migration des fichiers utilisateurs (serveur client) Gestion de caches sur les stations clientes Arborescence partagée commune /vice Systèmes et algorithmes répartis VI 57 / 76 Systèmes et algorithmes répartis VI 58 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés Gestion de caches de fichiers Traitement d un accès à un fichier /vice/... NFS v3 (l ancêtre) NFS v4 AFS Conception SGF répartis conventionnels SGF répartis spécialisés Gestion de caches de fichiers Avantages et inconvénients NFS v3 (l ancêtre) NFS v4 AFS Approche orientée session Lors de l ouverture du fichier si fichier déjà présent en cache local, ouverture locale si fichier absent contacter un serveur pour obtenir une copie de tout le fichier Lors de la fermeture du fichier recopie de la version locale sur le serveur le serveur avertit les autres stations clientes qui contiennent ce fichier dans leur cache d invalider leur version (callback) Avantages Minimise la charge d un serveur : ceux-ci ne gèrent que les fichiers partagés, or 80% sont privés et temporaires L invalidation par rappel est efficace car les cas de partage parallèle sont rares Les transferts de fichier dans leur totalité sont efficaces Inconvénients Cohérence des copies d un même fichier non garantie Sémantique copie lue dernière version écrite non garantie Systèmes et algorithmes répartis VI 59 / 76 Systèmes et algorithmes répartis VI 60 / 76

68 Évolutions Conception SGF répartis conventionnels SGF répartis spécialisés NFS v3 (l ancêtre) NFS v4 AFS Limitations Introduction de la mobilité : partitionnement réseau, mode déconnecté, pannes, etc Réplication (résolution des conflits d écriture?) Unité de travail = document = ensemble de fichiers Constant Data Availability s d évolutions Coda (CMU) : réplication optimiste en mode déconnecté, résolution de conflit manuelle Peer-to-peer (voir Locus, extension de NFS) : Ficus (UCLA) Travail collaboratif : Bayou (Xerox PARC) Systèmes de gestion de versions décentralisé (git) Sites d hébergement / partage de fichiers (Dropbox, Google Drive... ) Conclusion Conception SGF répartis conventionnels SGF répartis spécialisés Des problèmes bien maîtrisés NFS v3 (l ancêtre) NFS v4 AFS Implantation performante des fichiers dans un contexte réparti en assurant transparence d accès et de localisation conduit à une re-centralisation : serveurs dédiés Problème : concurrence d accès aux fichiers partagés modifiés Approches session ou spécifiques (transactions) Des tendances fortes et/ou solutions matures Tolérance aux fautes : par réplication (transparence assurée) Évolution pour prendre en compte la mobilité des clients Sécurité : par partitionnement Systèmes et algorithmes répartis VI 61 / 76 Systèmes et algorithmes répartis VI 62 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Plan GFS Google File System 4 Conception Les principes et objectifs SGF réparti Sémantique de la concurrence 5 SGF répartis conventionnels NFS v3 (l ancêtre) NFS v4 AFS 6 SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Objectifs Système de fichiers scalable Applications manipulant de gros volumes de données Haute performance pour un grand nombre de clients Tolérant aux fautes sur du matériel basique d applications : stockage de vidéo (youtube), moteur de recherche (google), transactions commerciales passées (amazon), catalogues de vente Systèmes et algorithmes répartis VI 63 / 76 Systèmes et algorithmes répartis VI 64 / 76

69 Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox GFS hypothèses Interface Hypothèses traditionnelles invalides ( fichiers majoritairement petits, courte durée de vie, peu de modifications concurrentes ) Les pannes sont normales, pas exceptionnelles : milliers de serveurs de stockage Les fichiers sont énormes : plusieurs TB est normal Accès aux fichiers : Lecture majoritairement séquentielle, rarement arbitraire Écriture majoritairement en mode ajout, rarement arbitraire Deux sous-classes : Fichiers créés puis quasiment que lus (ex : vidéos) Fichiers constamment en ajout par des centaines d applications, peu lus (ex : log) Nombre de fichiers faible par rapport au volume (quelques millions) Applications dédiées cohérence relâchée Systèmes et algorithmes répartis VI 65 / 76 Nommage Nommage non hiérarchique Opérations Classiques : create, delete, open, close, read, write Additionnelles : append : partage en écriture, sans verrouillage snapshot : copie efficace d un fichier ou d une arborescence, sans verrouillage Implantation Ordinateurs de bureau, équipés d un système de fichiers standard (linux : extfs) Serveurs GFS implantés en espace utilisateur Systèmes et algorithmes répartis VI 66 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox GFS cluster GFS fichiers Un maître : metadonnées + table de chunks par fichier Des chunk servers : fichiers découpés en chunks (64 MB) répliqués, plusieurs milliers de serveurs par maître (source : Wikipedia) Systèmes et algorithmes répartis VI 67 / 76 (source : Paul Krzyzanowski) Systèmes et algorithmes répartis VI 68 / 76

70 GFS Master Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Lecture d un fichier Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Métadonnées des fichiers Nommage : bête table de hachage (pas de répertoire géré par le système, mais fichier applicatif contenant une liste de noms de fichiers) Contrôle d accès Table fichier chunks Emplacement des chunks Nommage et tables en mémoire (relativement petites) pour performance pas de cache côté serveur Maintenance Verrouillage de chunk Allocation/déallocation de chunk, ramasse-miettes Migration de chunk (équilibrage, arrêt de machines) Répliqué (schéma maître-esclave) pour tolérance aux fautes 1 Contacter le maître 2 Obtenir les métadonnées : identifiants de chunks formant le fichier 3 Pour chaque chunk handle, obtenir la liste des chunkservers 4 Contacter l un quelconque des chunkservers pour obtenir les données (sans passer par le maître) Systèmes et algorithmes répartis VI 69 / 76 Systèmes et algorithmes répartis VI 70 / 76 Écriture d un fichier Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Conception SGF répartis conventionnels SGF répartis spécialisés Google Cluster Environment Google File System Hadoop Distributed File System Dropbox 1 Phase 0 : demande d écriture auprès du maître un chunk responsable + un nouveau numéro de version 2 Phase 1 : envoi des données : Le client envoie ses données à écrire au serveur de chunk responsable Ce serveur propage à l un des réplicas, qui propage au suivant, etc Les données sont conservées en mémoire, non écrites 3 Phase 2 : écriture des données Le client attend l acquittement de tous les réplicas (du dernier) Il envoie un message de validation au primaire Le primaire ordonne les écritures (numéro de version), effectue son écriture et informe les réplicas Les réplicas effectuent l écriture et l acquittent au primaire. L ordre des opérations est identique pour tous (numéro de version) 4 Le primaire informe le client Systèmes et algorithmes répartis VI 71 / 76 Amener les calculs aux données patron mapreduce : 1 Map : filtrage + tri (naturellement ) 2 Shuffle : redistribution des résultats intermédiaires 3 Reduce : fusion ( si associatif) (source : Paul Krzyzanowski) Systèmes et algorithmes répartis VI 72 / 76

71 Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox HDFS Hadoop Distributed File System Conception SGF répartis conventionnels SGF répartis spécialisés Dropbox partage de fichiers Google File System Hadoop Distributed File System Dropbox Réplication grand public Répertoires sur différents ordinateurs/mobiles, synchronisés pour avoir le même contenu Schéma copie primaire (Dropbox) / copies secondaires (utilisateur) Hypothèses (source : Paul Krzyzanowski) Systèmes et algorithmes répartis VI 73 / 76 Énormément d utilisateurs (> 200 millions) Par utilisateur : peu de volume (quelques Go) et peu de modifications (quelques centaines / jour) Ressources utilisateur faibles Bande passante utilisateur faible Rapport lecture/écriture proche de 1 Systèmes et algorithmes répartis VI 74 / 76 Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Conception SGF répartis conventionnels SGF répartis spécialisés Google File System Hadoop Distributed File System Dropbox Dropbox principes Dropbox architecture Approche Copie locale complète du répertoire partagé (moins vrai avec l application mobile : cache) Accès local et natif aux fichiers partagés (lecture et écriture) Trafic uniquement en cas de modification Client local léger assurant la cohérence Cohérence suffisante : écritures en arrière-plan, notification asynchrone des modifications (client connecté) Séparation entre serveurs de metadonnées (nommage, droits d accès, liste de blocs) et serveurs de blocs de données Systèmes et algorithmes répartis VI 75 / 76 (source : Paul Krzyzanowski) Systèmes et algorithmes répartis VI 76 / 76

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Systèmes et algorithmes répartis

Systèmes et algorithmes répartis Systèmes et algorithmes répartis Principes et concepts Philippe Quéinnec, Gérard Padiou queinnec@enseeiht.fr http://queinnec.perso.enseeiht.fr/ens/sar.html Département Informatique et Mathématiques Appliquées

Plus en détail

Systèmes et algorithmes répartis

Systèmes et algorithmes répartis Systèmes et algorithmes répartis Causalité et datation Philippe Quéinnec, Gérard Padiou Département Informatique et Mathématiques Appliquées ENSEEIHT 31 août 2016 Systèmes et algorithmes répartis III 1

Plus en détail

Systèmes et applications distribués Intergiciels et applications communicantes

Systèmes et applications distribués Intergiciels et applications communicantes Systèmes et applications distribués Intergiciels et applications communicantes Philippe Quéinnec Télécommunication et Réseaux 2e année ENSEEIHT 24 février 2014 Inspiré de cours de G. Padiou, Ph. Mauran

Plus en détail

TD sur les horloges logiques.

TD sur les horloges logiques. TD sur les horloges logiques. Exercice : Datation des évènements L objectif est de comparer deux évènements e et e qui se passent dans deux sites différents. Nous supposerons que l évènement e (resp. e

Plus en détail

Introduction aux Systèmes Distribués. Gestion du temps & état global dans un système distribué

Introduction aux Systèmes Distribués. Gestion du temps & état global dans un système distribué Introduction aux Systèmes Distribués Licence Informatique 3 ème année Gestion du temps & état global dans un système distribué Eric Cariou Université de Pau et des Pays de l'adour Département Informatique

Plus en détail

Détection de la terminaison distribuée

Détection de la terminaison distribuée Cours Algorithmique répartie Master 2 Université Paris-Diderot Devoir 1 (à rendre avant le 22 février 2010) Détection de la terminaison distribuée Généralités Π = {p 0,..., p n 1 } est l ensemble des processus.

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis onception des systèmes répartis 3ième nnée Informatique et Mathématiques ppliquées orrigé écembre 2003 Quelques problèmes de causalité entre flux multimedia On considère une application échangeant des

Plus en détail

L approche Bases de données

L approche Bases de données L approche Bases de données Cours: BD. Avancées Année: 2005/2006 Par: Dr B. Belattar (Univ. Batna Algérie) I- : Mise à niveau 1 Cours: BDD. Année: 2013/2014 Ens. S. MEDILEH (Univ. El-Oued) L approche Base

Plus en détail

Modélisation conceptuelle des Systèmes Distribués

Modélisation conceptuelle des Systèmes Distribués Modélisation conceptuelle des Systèmes Distribués Eric Cariou Master Technologies de l'internet 1 ère année Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Systèmes

Plus en détail

Algorithmique des Systèmes Répartis. Problèmes - Concepts - Techniques - Outils

Algorithmique des Systèmes Répartis. Problèmes - Concepts - Techniques - Outils Algorithmique des Systèmes Répartis Systèmes Répartis Problèmes - Concepts - Techniques - Outils Master Informatique Dominique Méry Université de Lorraine 19 février 2013 1 / 40 Plan 1 Problèmes des systèmes

Plus en détail

Chapitre 3. Exclusion mutuelle répartie

Chapitre 3. Exclusion mutuelle répartie Chapitre 3 Exclusion mutuelle répartie Chap 3 Exclusion mutuelle répartie Pas de mémoire commune => échanges de messages Protocole exempt d interbolcage et équitable => un processus désireux de pénétrer

Plus en détail

Algorithmique Distribuée

Algorithmique Distribuée Algorithmique Distribuée Problèmes et Algorithmes Fondamentaux Arnaud labourel http://pageperso.lif.univ-mrs.fr/ arnaud.labourel Aix-Marseille Université 15 janvier 2014 Arnaud Labourel (AMU) Algorithmique

Plus en détail

Corrigé de l examen de systèmes opératoires Module Synchronisation des processus

Corrigé de l examen de systèmes opératoires Module Synchronisation des processus Corrigé de l examen de systèmes opératoires Module Synchronisation des processus 2ième Année Informatique et Mathématiques Appliquées 17 Novembre 1999 1 Les sémaphores 1. Donner la définition d un sémaphore

Plus en détail

IRL : Simulation distribuée pour les systèmes embarqués

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en détail

Université Paris Diderot Master 1 II. Théorie et pratique de la concurrence

Université Paris Diderot Master 1 II. Théorie et pratique de la concurrence Université Paris Diderot Master 1 II Théorie et pratique de la concurrence Partiel du 30 avril 2009 Durée : 1h30. Tous les documents sont autorisés. Le barème est indicatif. Question 1 : Soit le programme

Plus en détail

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle Besoin de concevoir des systèmes massivement répartis. Évaluation de systèmes répartis à large échelle Sergey Legtchenko Motivation : LIP6-INRIA Tolérance aux pannes Stockage de données critiques Coût

Plus en détail

Modèle Client-Serveur Partage du serveur entre clients

Modèle Client-Serveur Partage du serveur entre clients Modèle Client-Serveur Partage du serveur entre clients Un serveur peut servir plusieurs clients Vu d un client particulier client requête réponse serveur Vu du serveur Gestion des requêtes (priorité) Exécution

Plus en détail

Algorithmique et systèmes répartis

Algorithmique et systèmes répartis Algorithmique et systèmes répartis Tendances et avenir Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT 30 novembre 2012 Gérard Padiou Algorithmique et systèmes répartis 1 /

Plus en détail

Introduction aux applications réparties

Introduction aux applications réparties Introduction aux applications réparties Noël De Palma Projet SARDES INRIA Rhône-Alpes http://sardes.inrialpes.fr/~depalma Noel.depalma@inrialpes.fr Applications réparties Def : Application s exécutant

Plus en détail

ALGORITHMIQUE DU CONTROLE REPARTI

ALGORITHMIQUE DU CONTROLE REPARTI ALGORITHMIQUE DU CONTROLE REPARTI Télécom ParisTech Module Algorithmique répartie de l UE INF346 Irène CHARON Mars 2009 Tables des matières Chapitre 1 - Généralités... 1 1.1. Introduction... 1 1.2. Algorithmes

Plus en détail

Modèle spagetthi et solution EAI

Modèle spagetthi et solution EAI EAI Définition L'EAI est une notion ancienne mais toujours d'actualité. En effet, le besoin de faire communiquer des applications développées à des moments différents, dans des technologies différentes

Plus en détail

Introduction aux systèmes répartis

Introduction aux systèmes répartis Introduction aux systèmes répartis Grappes de stations Applications réparties à grande échelle Systèmes multicalculateurs (1) Recherche de puissance par assemblage de calculateurs standard Liaison par

Plus en détail

Introduction aux automates

Introduction aux automates Introduction aux automates Principes et exemples Pascal André IRIN Université de Nantes 2 rue de la Houssinière ; B.P. 92208 44322 Nantes Cedex 03 Pascal.Andre@irin.univ-nantes.fr Introduction aux automates

Plus en détail

Les Algorithmes par Vagues. Algorithmique Distribuée

Les Algorithmes par Vagues. Algorithmique Distribuée Les Algorithmes par Vagues 1 Les Algorithmes par Vagues Introduction Définitions Particularités Vague pour topologie en anneau Vague pour topologie en arbre Vague pour topologie quelconque 2 Introduction

Plus en détail

Introduction au model-checking et application à la vérification des protocoles cryptographiques

Introduction au model-checking et application à la vérification des protocoles cryptographiques Introduction au model-checking et application à la vérification des protocoles cryptographiques Prof. John MULLINS École Polytechnique de Montréal Prof. John MULLINS (École Polytechnique) Introduction

Plus en détail

Algorithmique dans les systèmes distribués - Elec9on de leader -

Algorithmique dans les systèmes distribués - Elec9on de leader - Algorithmique dans les systèmes distribués - Elec9on de leader - Eddy Caron 03 M. ENS- Lyon Quelques algorithmes distribués Quelques méthodes générales d approche Principe général: introduire des contraintes

Plus en détail

Chapitre 4 : Exclusion mutuelle

Chapitre 4 : Exclusion mutuelle Chapitre 4 : Exclusion mutuelle Pierre Gançarski Juillet 2004 Ce support de cours comporte un certain nombre d erreurs : je décline toute responsabilité quant à leurs conséquences sur le déroulement des

Plus en détail

Chap. V : Les interruptions

Chap. V : Les interruptions UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Nous étudions dans ce chapitre les interruptions matérielles (ou externes), c est-à-dire déclenchées par le matériel (hardware)

Plus en détail

Tolérance aux pannes dans les systèmes distribués. Alain BUI

Tolérance aux pannes dans les systèmes distribués. Alain BUI Tolérance aux pannes dans les systèmes distribués Alain BUI Professeur Département de Mathématiques et Informatique alain.bui@univ-reims.fr Alain BUI -- Université de Reims 1 Introduction Nombre croissant

Plus en détail

Exécution des applications réparties

Exécution des applications réparties Exécution des applications réparties Programmation des Applications Réparties Olivier Flauzac URCA Master STIC-Informatique première année Olivier Flauzac (URCA) PAR : Exécution des applications réparties

Plus en détail

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

Plus en détail

DUT Informatique - Module M-4102C Modélisation et construction des applications

DUT Informatique - Module M-4102C Modélisation et construction des applications DUT Informatique - Module M-4102C Modélisation et construction des applications réparties Applications réparties (distributed systems) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier

Plus en détail

DUT Informatique - Module M-4102C Modélisation et construction des applications réparties

DUT Informatique - Module M-4102C Modélisation et construction des applications réparties DUT Informatique - Module M-4102C Modélisation et construction des applications réparties Applications réparties (distributed systems) J. Christian Attiogbé Février 2009, maj 2015 J. Christian Attiogbé

Plus en détail

Objectifs du cours Modèles et Approches Formels de Systèmes Distribués

Objectifs du cours Modèles et Approches Formels de Systèmes Distribués Objectifs du cours Modèles et Approches Formels de Systèmes Distribués Mohamed Mosbah LaBRI ENSEIRB - Université Bordeaux 1 mosbah@labri.fr dept-info.labri.fr/~mosbah/mafsd.html Connaître les caractéristiques

Plus en détail

Master Informatique. Master Informatique 1ère année 1 er sem. Anonymat : Numéro à coller. Examen Réparti 2 : ARES 2010-2011

Master Informatique. Master Informatique 1ère année 1 er sem. Anonymat : Numéro à coller. Examen Réparti 2 : ARES 2010-2011 Master Informatique ère année er sem. Anonymat : Numéro à coller Master Informatique ère année er sem. Examen Réparti : ARES 0- Durée totale: h00 Autorisé: Une feuille A4 manuscrite Non autorisés: Autres

Plus en détail

1 Programmation Client/Serveur basée sur TCP/IP

1 Programmation Client/Serveur basée sur TCP/IP Outils Informatique pour l ingénieur TD 1 Réseau et Web IP, Client/serveur 1 Programmation Client/Serveur basée sur TCP/IP 1.1 Buts de cette réalisation Ce TP sur la programmation client/serveur a pour

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

Deuxième partie. Protocoles d exclusion mutuelle. Plan. Interférences et isolation. Isolation Protocoles d exclusion mutuelle

Deuxième partie. Protocoles d exclusion mutuelle. Plan. Interférences et isolation. Isolation Protocoles d exclusion mutuelle Plan Deuxième partie 1 2 Primitives de gestion des activités 2 / 26 4 / 26 Interférences et isolation Contenu de cette partie di cultés résultant d accès concurrents à un objet partagé mise en œuvre de

Plus en détail

Supervision des réseaux et services pair à pair

Supervision des réseaux et services pair à pair Supervision des réseaux et services pair à pair Présentation des travaux de Thèse Guillaume Doyen LORIA - Université Henri Poincaré pour l obtention du Doctorat en Informatique de l université Henri Poincaré

Plus en détail

Algorithmique distribuée. Exclusion mutuelle

Algorithmique distribuée. Exclusion mutuelle Algorithmique distribuée Exclusion mutuelle Eric Cariou Master Technologies de l'internet 1 ère année Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Exclusion

Plus en détail

Autostabilisation. de l exclusion mutuelle sur un anneau à l élection d un chef sur un graphe quelconque

Autostabilisation. de l exclusion mutuelle sur un anneau à l élection d un chef sur un graphe quelconque : de l exclusion mutuelle sur un anneau à l élection d un chef sur un graphe quelconque Laboratoire d Informatique Fondamentale d Orléans, Université d Orléans, Orléans, FRANCE JIRC 30 juin 2005 Blois

Plus en détail

Introduction aux algorithmes répartis

Introduction aux algorithmes répartis Objectifs et plan Introduction aux algorithmes répartis Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR http://sardes.inrialpes.fr/people/krakowia! Introduction aux algorithmes

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Concours interne d ingénieur des systèmes d information et de communication. «Session 2010» Meilleure copie "étude de cas architecture et systèmes"

Concours interne d ingénieur des systèmes d information et de communication. «Session 2010» Meilleure copie étude de cas architecture et systèmes Concours interne d ingénieur des systèmes d information et de communication «Session 2010» Meilleure copie "étude de cas architecture et systèmes" Note obtenue : 14,75/20 HEBERGE-TOUT Le 25 mars 2010 A

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

Systèmes de fichiers. Didier Verna

Systèmes de fichiers. Didier Verna 1/23 de fichiers didier@lrde.epita.fr http://www.lrde.epita.fr/ didier 2/23 Table des matières 1 2 Structure des fichiers 3 Structure des répertoires 4 Protection et sécurité 4/23 Répondre aux problèmes

Plus en détail

L exclusion mutuelle distribuée

L exclusion mutuelle distribuée 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é

Plus en détail

Présentation. Logistique. Résumé de la 1e Partie. Mise en place du système

Présentation. Logistique. Résumé de la 1e Partie. Mise en place du système Présentation Diapo01 Je m appelle Michel Canneddu. Je développe avec 4D depuis 1987 et j exerce en tant qu indépendant depuis 1990. Avant de commencer, je tiens à remercier mes parrains Jean-Pierre MILLIET,

Plus en détail

Algorithmes distribués

Algorithmes distribués Algorithmes distribués Master informatique 2015-2016 Stella MARC-ZWECKER stella@unistra.fr Plan prévisionnel du cours 1) Concepts propres aux algorithmes distribués 2) Le temps logique 3) Algorithmes d

Plus en détail

Systèmes et algorithmes répartis

Systèmes et algorithmes répartis Systèmes et algorithmes répartis Tolérance aux fautes Philippe Quéinnec Département Informatique et Mathématiques Appliquées ENSEEIHT 4 novembre 2014 Systèmes et algorithmes répartis V 1 / 45 plan 1 Sûreté

Plus en détail

Systèmes d exploitation Gestion des processus

Systèmes d exploitation Gestion des processus Systèmes d exploitation Gestion des processus Didier Verna didier@lrde.epita.fr 5 décembre 2000 Table des matières Table des matières Généralités... 3 États d un processus... 4 Bloc de contrôle d un processus

Plus en détail

Techniques et outils de test pour les logiciels réactifs synchrones

Techniques et outils de test pour les logiciels réactifs synchrones Journées Systèmes et Logiciels Critiques Institut IMAG ; 14-16 nombre 2000 Techniques et outils de test pour les logiciels réactifs synchrones Farid Ouabdesselam 1 Méthodes de test : classification générale

Plus en détail

Question 1.1. Modélisation d une machine simple

Question 1.1. Modélisation d une machine simple D'apres TD ENSEEIHT Question 1. Modélisation d une machine à café Corrigé du Travaux Dirigés n 2 Ingénierie des protocoles LOTOS Question 1.1. Modélisation d une machine simple La modélisation de la machine

Plus en détail

Bases de données réparties

Bases de données réparties Bases de données réparties J. Akoka - I. Wattiau 1 Contexte Technologique : des solutions de communication efficace entre les machines des SGBD assurent la transparence des données réparties standardisation

Plus en détail

Projet : Plan Assurance Qualité

Projet : Plan Assurance Qualité Projet : Document : Plan Assurance Qualité 2UP_SPEC_DEV1 VERSION 1.00 Objet Ce document a pour objectif de définir la démarche d analyse et de conception objet ainsi les activités liées. Auteur Eric PAPET

Plus en détail

Parallélisme. Cours 1

Parallélisme. Cours 1 Parallélisme Cours 1 TD : 20% - TP : 30% - Examen : 50% Feuille A4 manuscrite (pas de photocopie) Fabrice.Huet@etu.unice.fr (prendre rdv par mail pr le contacter) A quoi sert le parallélisme? Augmenter

Plus en détail

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

Plus en détail

Introduction. Licence MASS L3 Inf f3

Introduction. Licence MASS L3 Inf f3 Le modèle client serveur Introduction Licence MASS L3 Inf f3 Encapsulation : rappel Données Données Application En-tête En-tête Transport UDP Données TCP Données Paquet UDP Segment TCP En-tête IP Données

Plus en détail

Moniteurs, Java, Threads et Processus

Moniteurs, Java, Threads et Processus Moniteurs, Java, Threads et Processus 1 Une vue orientée-objet de la mémoire partagée On peut voir un sémaphore comme un objet partagé accessible par deux méthodes : wait et signal. L idée du concept de

Plus en détail

INTRODUCTION À L ALGORITHMIQUE RÉPARTIE

INTRODUCTION À L ALGORITHMIQUE RÉPARTIE INTRODUCTION À L ALGORITHMIQUE RÉPARTIE Chargée de cours: Transparents :http://www-npa.lip6.fr/~blin/enseignements.html Email: lelia.blin@lip6.fr ALGORITHMIQUE SÉQUENTIELLE Une tâche / un calcul Série

Plus en détail

Multicast & IGMP Snooping

Multicast & IGMP Snooping Multicast & IGMP Snooping par Pierre SALAVERA Service Technique ACTN «Dans l article de cette semaine, je vais vous parler d un principe «à la mode» comme on dit : le Multicast (multidiffusion). Cette

Plus en détail

Module OMGL - UE ModDyn

Module OMGL - UE ModDyn Module OMGL - UE ModDyn Modélisation de la dynamique / Réseaux de Petri J. Christian Attiogbé Février 2009, maj 2012 J. Christian Attiogbé (Février 2009, maj 2012) Module OMGL - UE ModDyn 1 / 34 Plan de

Plus en détail

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

MEAD : temps réel et tolérance aux pannes pour CORBA MEAD : un intergiciel temps-réel et tolérant aux pannes pour CORBA Master 2 Informatique Recherche Université de Marne-la-Vallée Vendredi 3 mars 2006 Plan 1 Introduction 2 Solutions existantes 3 Concilier

Plus en détail

Base de données. Objectifs du cours 2014-05-20 COURS 01 INTRODUCTION AUX BASES DE DONNÉES

Base de données. Objectifs du cours 2014-05-20 COURS 01 INTRODUCTION AUX BASES DE DONNÉES 1 Base de données COURS 01 INTRODUCTION AUX BASES DE DONNÉES Objectifs du cours 2 Introduction aux bases de données relationnelles (BDR). Trois volets seront couverts : la modélisation; le langage d exploitation;

Plus en détail

Introduction à l'algorithmique Distribuée. Exclusion mutuelle

Introduction à l'algorithmique Distribuée. Exclusion mutuelle Introduction à l'algorithmique Distribuée Exclusion mutuelle Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Exclusion mutuelle distribuée Exclusion

Plus en détail

Serveurs tolérant les intrusions sur Internet

Serveurs tolérant les intrusions sur Internet Serveurs tolérant les intrusions sur Internet Ayda Saïdane Sous la direction de : Y. Deswarte & V. Nicomette Groupe Tolérance aux fautes et Sûreté de Fonctionnement informatique Plan Problématique et approches

Plus en détail

Multi-processeurs, multi-cœurs et cohérence mémoire et cache

Multi-processeurs, multi-cœurs et cohérence mémoire et cache Multi-processeurs, multi-cœurs et cohérence mémoire et cache Intervenant : Thomas Robert Institut Mines-Télécom Rappel système d exploitation & Parallélisme L unité d exécution pour un système d exploitation

Plus en détail

ACCOV 2001-2002. Système avec des processus concurrents

ACCOV 2001-2002. Système avec des processus concurrents projet ACCOV 2001-2002 ACCOV 2001-2002. Système avec des processus concurrents procedure Main is type TabDoc is array(1..6) of Document; -- contrôle l'attribution d'un nom unique package ProcId is procedure

Plus en détail

Administration réseau Routage et passerelle

Administration réseau Routage et passerelle Administration réseau Routage et passerelle A. Guermouche A. Guermouche Cours 2 : Routage et passerelle 1 Plan 1. Introduction 2. Routage dans IP Principes de base Manipulation des tables de routage 3.

Plus en détail

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

TD 2 Chapitre 4 : Support des Services et Serveurs. Objectifs : Maîtriser l'exploitation des tables de routage dynamique. SI 5 BTS Services Informatiques aux Organisations 1 ère année TD 2 Chapitre 4 : Support des Services et Serveurs Le routage dynamique Objectifs : Maîtriser l'exploitation des tables de routage dynamique.

Plus en détail

PLATEFORME DE SUPERVISION

PLATEFORME DE SUPERVISION PLATEFORME DE SUPERVISION ACCOR SOLUTIONS - Page 1/10 - PRESENTATION GENERALE SMART VE est une plateforme de supervision développée par Accor, spécifiquement dédiée aux infrastructures de recharge pour

Plus en détail

Notice d installation des cartes 3360 et 3365

Notice d installation des cartes 3360 et 3365 Notice d installation des cartes 3360 et 3365 L architecture ci-dessous représente de manière simplifiée l utilisation des cartes IP 3360 et Wi-Fi 3365, associée à une centrale Harmonia La carte IP 3360

Plus en détail

Synchronisation des Processus et les sémaphores

Synchronisation des Processus et les sémaphores Synchronisation des Processus et les sémaphores Achraf Othman Support du cours : www.achrafothman.net 1 PLAN Spécification du problème Section Critique (SC) Exclusion Mutuelle Principe Propriétés Réalisation

Plus en détail

Architecture Client/Serveur. andreu@lirmm.fr 1

Architecture Client/Serveur. andreu@lirmm.fr 1 Architecture Client/Serveur andreu@lirmm.fr 1 Qu'est-ce qu'un serveur? un «logiciel serveur» offre un service sur le réseau, le «serveur» est la machine sur laquelle s'exécute le logiciel serveur, le serveur

Plus en détail

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 5 : Sockets Stream iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 5 : Sockets Stream Nom(s) : Groupe : Date : Objectifs : manipuler les primitives relatives à la communication par sockets

Plus en détail

Introduction à l'algorithmique Distribuée. Accord & coordination : consensus & transaction

Introduction à l'algorithmique Distribuée. Accord & coordination : consensus & transaction Introduction à l'algorithmique Distribuée Accord & coordination : consensus & transaction Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Accord

Plus en détail

Système. Introduction aux systèmes informatiques

Système. Introduction aux systèmes informatiques Introduction aux systèmes informatiques Système Un système est une collection organisée d'objets qui interagissent pour former un tout Objets = composants du système Des interconnexions (liens) entre les

Plus en détail

ORIENTATIONS POUR LA CLASSE DE TROISIÈME

ORIENTATIONS POUR LA CLASSE DE TROISIÈME 51 Le B.O. N 1 du 13 Février 1997 - Hors Série - page 173 PROGRAMMES DU CYCLE CENTRAL 5 e ET 4 e TECHNOLOGIE En continuité avec le programme de la classe de sixième, celui du cycle central du collège est

Plus en détail

LA SOLUTION MODULAIRE DE MESSAGERIE QUI PERMET DE COMMUNIQUER AVEC LE MONDE ENTIER

LA SOLUTION MODULAIRE DE MESSAGERIE QUI PERMET DE COMMUNIQUER AVEC LE MONDE ENTIER LA SOLUTION MODULAIRE DE MESSAGERIE QUI PERMET DE COMMUNIQUER AVEC LE MONDE ENTIER ixware permet aux utilisateurs d envoyer et de recevoir des messages depuis leur poste de travail ou même leurs applications

Plus en détail

Chorus Factures, solution de dématérialisation fiscale des factures. Kit de communication à destination des fournisseurs. Version 2.0.

Chorus Factures, solution de dématérialisation fiscale des factures. Kit de communication à destination des fournisseurs. Version 2.0. Chorus Factures, solution de dématérialisation fiscale des Kit de communication à destination des fournisseurs Version 2.0 Réf : SOMMAIRE Introduction Enjeux de la dématérialisation fiscale des Description

Plus en détail

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD1 Exercices Exercice 1 : Décrivez les facteurs internes qui ont un impact sur les communications réseau. Les facteurs internes ayant un impact sur les communications sont liés à la nature

Plus en détail

Conception d Applications Réparties

Conception d Applications Réparties Jean-François Roos LIFL - équipe GOAL- bâtiment M3 Extension - bureau 206 -Jean-Francois.Roos@lifl.fr 1 Objectifs du Cours Appréhender la conception d applications réparties motivations et concepts architectures

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Algorithmique Distribuée Introduction et Contexte

Algorithmique Distribuée Introduction et Contexte 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

Plus en détail

Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources

Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources Algorithmique distribuée d exclusion mutuelle : vers une gestion efficace des ressources Jonathan Lejeune LIP6-UPMC/CNRS, Inria 19 septembre 2014 Directeur : Pierre Sens Encadrants : Luciana Arantes et

Plus en détail

Baccalauréat ES Nouvelle-Calédonie 2 mars 2015

Baccalauréat ES Nouvelle-Calédonie 2 mars 2015 Baccalauréat ES Nouvelle-Calédonie mars 015 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats On considère la fonction f définie pour tout réel x de l intervalle [1,5 ; 6] par : f (x)=(5x 3)e x. On

Plus en détail

Huitième partie. Processus communicants CSP/Ada. Processus communicants Communication synchrone CSP/CCS/π-calcul Rendez-vous étendu Ada

Huitième partie. Processus communicants CSP/Ada. Processus communicants Communication synchrone CSP/CCS/π-calcul Rendez-vous étendu Ada Huitième partie Processus communicants CSP/Ada Systèmes concurrents 2 / 44 Synchronisation Désignation, alternatives Architecture d'une application parallèle Plan 1 Processus communicants Synchronisation

Plus en détail

Algorithmique répartie

Algorithmique répartie Université Joseph Fourier 23/04/2014 Outline 1 2 Types de communication message envoyé à un groupe de processus Broadcast (diffusion) message envoyé à tous les processus du systèmes Unicast message envoyé

Plus en détail

Evaluation de performance en Sûreté de Fonctionnement

Evaluation de performance en Sûreté de Fonctionnement Groupe SdF Midi-Pyrénées Toulouse 5 juin 2015 Evaluation de performance en Sûreté de Fonctionnement - Andre.cabarbaye Plan Introduction Types de performances Finalité des analyses Attentes du donneur d

Plus en détail

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

Modèles à Événements Discrets. Réseaux de Petri Stochastiques Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés

Plus en détail

Clermont Ferrand - Janvier 2003

Clermont Ferrand - Janvier 2003 DISDAMIN: Algorithmes de Data Mining Distribués Valerie FIOLET (1,2) - Bernard TOURSEL (1) 1 Equipe PALOMA - LIFL - USTL - LILLE (FRANCE) 2 Service Informatique - UMH - MONS (BELGIUM) Clermont Ferrand

Plus en détail

Téléinformatique et télématique. Revenons aux définitions

Téléinformatique et télématique. Revenons aux définitions Téléinformatique et télématique Revenons aux définitions Téléinformatique: exploitation à distance de systèmes informatiques grâce à l utilisation de dispositifs de télécommunication. Télématique: ensemble

Plus en détail

Union particulière pour le dépôt international des dessins et modèles industriels (Union de La Haye)

Union particulière pour le dépôt international des dessins et modèles industriels (Union de La Haye) F H/A/32/1 ORIGINAL : ANGLAIS DATE : 24 JUIN 2013 Union particulière pour le dépôt international des dessins et modèles industriels (Union de La Haye) Assemblée Trentième-deuxième session (19 e session

Plus en détail

UML : DIAGRAMME D ETATS-TRANSITIONS

UML : DIAGRAMME D ETATS-TRANSITIONS DEFINITION: Décrit le comportement des objets d une classe au moyen d un automate d états associés à la classe Le comportement est modélisé par un graphe : Nœuds = états possibles des objets Arcs = transitions

Plus en détail

Procédure de Choix du mode Fin de Journée Version 7.1. pour le logiciel MicroJet Version 9.0x de TNT Express National.

Procédure de Choix du mode Fin de Journée Version 7.1. pour le logiciel MicroJet Version 9.0x de TNT Express National. Procédure de Choix du mode Fin de Journée Version 7.1 pour le logiciel MicroJet Version 9.0x de TNT Express National. (via un transfert FTP sur le serveur de TNT ou via une clé USB) Préambule : Cette procédure

Plus en détail

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS Sauvegarde collaborative entre pairs 1 Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS Sauvegarde collaborative entre pairs 2 Introduction Pourquoi pair à pair? Utilisation de ressources

Plus en détail

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Optimisation : pipeline jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des

Plus en détail

Sécurité des réseaux IPSec

Sécurité des réseaux IPSec Sécurité des réseaux IPSec A. Guermouche A. Guermouche Cours 4 : IPSec 1 Plan 1. A. Guermouche Cours 4 : IPSec 2 Plan 1. A. Guermouche Cours 4 : IPSec 3 Pourquoi? Premier constat sur l aspect critique

Plus en détail