Systèmes Répartis - Institut Supérieur de l`Informatique du Kef
Transcription
Systèmes Répartis - Institut Supérieur de l`Informatique du Kef
Systèmes Répartis Mr. Mehrez Boulares, Mr. Nour Ben Yahia 2013-2014 2 Introduction aux systèmes répartis • • • Les ordinateurs ont subi des changements incroyables depuis leur mise en opération vers 1945: – plus en plus de puissance, – coût de fabrication a constamment diminué permettant aux usagers de disposer d'un objet peu dispendieux compte tenu de ce qu'il nous offre en retour. Les appareils subissent des changements constants et de plus en plus rapides tant du point de vue logiciel que matériel. Depuis très peu de temps, nous retrouvons sur le marché des systèmes multiprocesseurs, des systèmes d'exploitation pour le traitement parallèle et des réseaux puissants d'interconnexion. C'est là l'importance de prendre brièvement connaissance avec le système d'exploitation de demain. Nous sommes déjà entrés quelque peu dans l'informatique répartie qui elle nous amènera vers l'informatique distribuée. ISI Kef - 2013/2014 3 Introduction aux systèmes répartis • L'informatique répartie s'oppose à la fois à l'informatique centralisée, celle des gros ordinateurs, et à l'informatique individuelle, celle des micro-ordinateurs. Elle pallie certains désavantages de cette dernière par : – Le partage des données grâce à un accès individuel, en lecture, par le réseau à des fichiers communs situés sur un disque quelconque ainsi que par le transfert de fichiers d'un disque à un autre. – Le partage des applications. Pour l'exploitation individuelle, par le réseau, d'un seul logiciel de base de données sur le disque d'une des machines connectées. – Le partage des ressources : chaque utilisateur connecté peut utiliser une même imprimante. – les communications : envoi par le réseau de courrier dans une boîte aux lettres électronique à un ou plusieurs utilisateurs connectés. Accès par le réseau téléphonique à des services d'informations : annuaires, banques de données, etc. ISI Kef - 2013/2014 4 Introduction aux systèmes répartis ISI Kef - 2013/2014 5 Introduction aux systèmes répartis ISI Kef - 2013/2014 Exemple de Système Réparti : Un intranet Source : Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001 ISI Kef - 2013/2014 6 7 Pourquoi une informatique répartie • • • • • • • • Raisons budgétaires : économie de logiciels, de matériels Raisons intrinsèques : adapter le système à l’application – BDD réparties, Web, systèmes bancaires… Besoin de partager – des informations : fichiers, BDD, messages – des ressources : unités de stockage, imprimantes, serveurs – Des services Accélérer le calcul – Parallélisation de tâches Alléger la charge : réduire les goulots d'étranglement Augmenter la fiabilité : duplication de machines, de données ⇒ réalisation de systèmes à haute disponibilité Qualité de service : diminuer les coûts, les délais, augmenter la disponibilité Réaliser des systèmes ouverts, évolutifs : adjonction facile de matériels et logiciels. ISI Kef - 2013/2014 8 Inconvénients • Très peu de logiciels existent sur le marché. • Le réseau peut très vite saturer. • La sécurisation des données sensibles est compliquée. • La mise en œuvre est difficile. ISI Kef - 2013/2014 9 Définitions (1) • Un système à plusieurs processeurs n’est pas forcément un système réparti • Qu’est-ce qu’un système réparti, distribué, parallèle ? • Classification de flynn [1972]: On différencie les systèmes sur la base du flux d’instructions et de données. – SISD : PC monoprocesseur – SIMD : machines vectorielles – MISD : pipeline – MIMD : machines multiprocesseurs faiblement et fortement couplées (systèmes parallèles, systèmes distribués, systèmes d’exploitation réseaux) ISI Kef - 2013/2014 10 ISI Kef - 2013/2014 11 Classification de Flynn L'acronyme PU, de l'anglais, signifie processeur. Le terme « Instruction Pool » représente l'ensemble des instructions disponibles pour le ou les PU. Le terme « Data Pool » représente l'ensemble des données nécessaires aux calculs. ISI Kef - 2013/2014 12 Définitions (1) • MIMD à mémoire partagée – Les processeurs ont accès à la mémoire comme un espace d'adressage global. Tout changement dans une case mémoire est vu par les autres CPU. La communication inter-CPU est effectuée via la mémoire globale. • MIMD à mémoire distribuée – Chaque CPU a sa propre mémoire et son propre système d'exploitation. Ce second cas de figure nécessite un middleware pour la synchronisation et la communication. Un système MIMD hybride est l'architecture la plus utilisée par les superordinateurs. Ces systèmes hybrides possèdent l'avantage d'être très extensibles, performants et à faible coût. ISI Kef - 2013/2014 13 Définitions (2) • Un système réparti est un ensemble de sites reliés par un réseau, comportant chacun une ou plusieurs machines. • "Un système réparti est un système qui vous empêche de travailler quand une machine dont vous n’avez jamais entendu parler tombe en panne" Lamport • "Du point de vue utilisateur, un système réparti se comporte comme un système traditionnel, mais s’exécute sur de multiples unités indépendantes" Tanenbaum • Un système d’exploitation réparti fournit et contrôle l’accès aux ressources du système réparti. • Un système d’exploitation parallèle contrôle l’exécution de programmes sur une machine parallèle (multiprocesseurs). • Un système d’exploitation de réseaux fournit une plateforme de machines reliées par un réseau chacune exécutant son propre système d’exploitation. ISI Kef - 2013/2014 14 Exemples de SRs • WWW, FTP, Mail. • Guichet de banque, agence de voyage. • Téléphones portables (et bornes). • Télévision interactive. • Agents intelligents. • Robots footballeurs. ISI Kef - 2013/2014 15 Les différentes structures Les structures centralisées • Tous les courriers sont stockés sur C (station centrale). • 1 usager = 1 boîte aux lettres sur C. • Volume de stockage important sur C. • Disponibilité du service = disponibilité de C. • 1 opération = 1 transfert d'informations. L'architecture centralisée consiste en un noyau central fort autour duquel tous les périphériques sont regroupés (ou centralisées). Ce noyau central prend la plupart des actions. L'avantage est une facilité d'administration. ISI Kef - 2013/2014 16 Les différentes structures Structure décentralisée-ou répartie • les architectures de réseau informatique se sont de plus en plus orientées vers une distribution des ressources et de la puissance informatique. • Internet est sans doute l'exemple le plus marquant d'un réseau à architecture distribuée puisqu'il ne possède aucun site central. • Dans la mise en œuvre de réseaux de moins grande ampleur, le degré de distribution (ou de centralisation) de la puissance de calcul, des périphériques, des bases de données dépend professionnelles. ISI Kef - 2013/2014 de différentes considérations stratégiques, humaines et 17 Les différentes structures Structure parallèles (Systèmes de haute performance) Les ordinateurs parallèles sont des machines qui comportent une architecture parallèle, constituée de plusieurs processeurs identiques, ou non, qui concourent au traitement d'une application. La performance d'une architecture parallèle est la combinaison des performances de ses ressources et de leur agencement. (Latence, débit). ISI Kef - 2013/2014 18 Les différentes structures Structure parallèles (Systèmes de haute performance) Architectures parallèles : – Pas de limite de mémoire. – Pas de limite de processeurs. – Accélération des calculs complexes ou coûteux en temps d'occupation CPU (calcul matriciel, simulation numérique, transformée de fourrier...). – Calcul répétitif sur un large ensemble de données structuré. – Traitement indépendant. ISI Kef - 2013/2014 19 Les différentes structures Structure parallèles (Systèmes de haute performance) Le parallélisme est la conséquence : – Besoin des applications. – Calcul scientifique. – Traitement d'images. – Bases de données qui demandent des ressources en CPU et en temps de calcul de plus en plus importantes. – Limites des architectures séquentielles. – Performance. – Capacité d'accès à la mémoire. – Tolérance aux pannes. ISI Kef - 2013/2014 20 Comparaison entre différentes architectures Comparaison des deux architectures de Systèmes de haute performance et de Systèmes distribués • Un système parallèle de HP est une réponse à un besoin de HP : – Une solution au problème. – Un système distribué est une solution à un problème de distribution géographique (historiquement). – Mais … de nos jours, la distribution peut résoudre un problème de HP. Donc, dans certains cas, un SD peut être considéré comme un système de HP. ISI Kef - 2013/2014 21 Comparaison entre différentes architectures • Comparaison des deux architectures centralisée et distribuée – L'architecture centralisée supporte un noyau central alors que l'architecture distribuée peut supporter plusieurs. – Le coût de l'une ou l'autre architecture varie suivant le domaine. En règle générale, si les périphériques ne sont pas utilisés à plein temps (par exemple, une imprimante), l'architecture centralisée est plus économique (car on économise en se basant sur le fait que tous les périphériques ne seront jamais tous utilisés en même temps). Dans le cas contraire (carte vidéo, réseau de PC), c'est l'architecture distribuée la plus économique (un gros ordinateur coûte plus cher que 10 petits ordinateurs 10 fois moins puissants). ISI Kef - 2013/2014 22 Comparaison entre différentes architectures Comparaison distribuée des deux architectures centralisée et Du point de vu de l’architecture : – Pas parallèle/Pas distribué : Machine séquentielle (un seul processeur). – Parallèle/Pas Distribué : Machines vectorielles, Machines à mémoires partagées, Machines SIMD. – Pas Parallèle/Distribué : Réseau d’ordinateurs avec communication lente exemple : Internet. – Parallèle/Distribué : Réseau haut débit. ISI Kef - 2013/2014 23 ISI Kef - 2013/2014 24 ISI Kef - 2013/2014 25 Systèmes parallèles Systèmes répartis Systèmes d’exploitation de réseaux Processeurs Sites Ressources Homogènes Hétérogènes Hétérogènes Partage ou non de mémoire Mémoires individuelles Mémoires individuelles Couplage fort Couplage failbe Couplage failbe Topologie du réseau d’interconnexion Réseau LAN + WAN Réseau LAN Les users sont au courant de la multiplicité des Processeurs Les users ont l’impression d’être dans un système centralisé Les users sont au courant de la multiplicité des Machines ISI Kef - 2013/2014 26 Identification des problèmes • Que doit résoudre un système réparti ? – Tolérance aux pannes. – Passage à l’échelle. – Nommage et accès aux applications. – Intégration de l’existant. – Déploiement des applications. – Sécurité et authentification. – Disponibilité de l’application ISI Kef - 2013/2014 27 Tolérance aux pannes • • • • • • En anglais : reliability, fault tolerance. Un serveur participant à l’application tombe en panne. Un serveur envoie des informations erronées. Un serveur n’est plus atteignable (mais pas en panne) puis le redevient. Atomicité dans les applications réparties. ISI Kef - 2013/2014 Passage à l’échelle • • • • • • En anglais : scalability. Ce qui marche pour un utilisateur, marchera-t-il pour 10 000 ? Ce qui marche pour un objet, marchera-t-il pour 1 000 000 ? Ce qui marche pour un site, marchera-t-il pour 1000 ? Exemple : les applications de gestion de commerce électronique. ISI Kef - 2013/2014 28 29 Nommage et accès aux applications • • • • • • • • Nommage et accès aux applications En anglais : naming. Comment retrouver les objets distants ? Un objet = un identifiant + un état + un comportement. Applications non réparties : nommage géré par le langage (référence) ou par l’OS (adressage). Applications réparties : nommage explicite, dynamique ? Exemple de nommage : DNS, URL, … ISI Kef - 2013/2014 Intégration de l’existant • • • • En anglais : legacy. Connexion sur toutes les ressources d’une entreprise. Interopérabilité des applications. Transactions réparties. ISI Kef - 2013/2014 30 31 Déploiement des applications • • • • • Comment installer tous les composants logiciels sur différents clients et serveurs ? Lorsque je change un nom de serveur ou j’en ajoute un, je recompile ? je redéploie ? ou je peux configurer automatiquement le redéploiement ? ISI Kef - 2013/2014 32 Sécurité et authentification • • • • Confidentialité. Intégrité : – Droits d’accès, Pare-Feu. Authentification : – Identification des applications partenaires. – Non-répudiation. – Messages authentifiés. Combien de personnes utilisent l’application, qui sont-ils ? – Nécessité de se protéger contre les intrusions. – Nécessité de stocker les accès des clients dans des fichiers journaux. ISI Kef - 2013/2014 Disponibilité d’une application répartie • • • • • • • Exemple : un serveur qui fait de la tolérance aux pannes ne peut plus assurer d’autres tâches. Permettre des accès simultanés sur un même objet : Sérialiser les objets. Paralléliser les accès. Appliquer différentes politiques. Multi-threading. ISI Kef - 2013/2014 33 34 Notions de Middleware • • • Middleware = Intergiciel = classe de logiciels systèmes agissant en qualité d’infrastructure pour le développement ou le déploiement d’applications reparties: exemple CORBA Supporte des applications tournant sur des plateformes matérielles et logicielles différentes. Le middleware fournit : – un support de haut niveau pour la distribution exemple invocation de méthodes à distance. – Des services de désignation, sécurité, transactionnels ISI Kef - 2013/2014 35 • • • Le Middleware conceptualise et réalise les fonctions suivantes : – communications entre les applications réparties, – échanges de données, – facilités de mise en œuvre. Il résout les problèmes d’intégration et d’interopérabilité : – indépendance entre les applications et le système d’exploitation, – portabilité des applications, – partage des services distribués. Services d’un Middleware : – communication, – localisation, – transactions, – sécurité, – administration ISI Kef - 2013/2014 36 Types de Middleware • • • • • Middleware de bases de données (ODBC) Middleware à messages MOM Message OrientedMiddleware : IBM MQSeries, Microsoft Message Queues. Middleware à objets répartis (CORBA, JAVA RMI) Middleware à composants (EJB, COM/DCOM, Web services) Middleware à environnement : XML ISI Kef - 2013/2014 Historique et état de l’art • • • • 1960 – Syst. temps partagé(unix), envir. Graphiques, réseaux 1970 – Ordinateurs personnels, Stations de travail – Client/serveur, Réseaux locaux : Ethernet – XeroxDFS 1980 – Systèmes ouverts,Tolérance aux fautes – Premiers serveurs de fichiers – Évolution du C/S : Appel de procédures àdistance – DNS en 85, – Amoebaen 84, Mach en 86, Chorus en 88 1990 – Internet, E-commerce – AFS, NFS, LDAP – DCE, corba, com/dcom ISI Kef - 2013/2014 37 38 Le modèle Client-Serveur (1/2) • • Coté serveur : – Externalisation de services. – Attente de requêtes en provenances de clients puis exécution des requêtes en séquentiel ou en parallèle. – Interface : Skeleton • reçoit l’appel sous forme de « stream » • décapsule les paramètres • demande l’exécution • renvoi les paramètres (par références) et les résultats Coté client : – Émission de requêtes puis attente de la réponse. – Initiateur du dialogue. – Interface : Stub • Reçoit l’appel en local • encapsule les paramètres • attends les résultats du serveur • décapsule les résultats • redonne la main à la fonction appelante ISI Kef - 2013/2014 39 Le modèle Client-Serveur (2/2) • • • • Client/Serveur « traditionnel » : – RPC Client/Serveur « à objets » : – RMI, CORBA, DCOM Client/Serveur « de données » : – Requêtes SQL Client/Serveur « WEB » : – CGI, Servlet, asp, jsp, php,... ISI Kef - 2013/2014 40 Du centralisé vers le réparti ISI Kef - 2013/2014 Gestion du temps dans les SRs Mehrez Boulares, Nour Ben Yahia ISI KEF – 2013/2014 2 INTRODUCTION • Les systèmes répartis sont présents dans toutes les applications et sont, par nature, très complexes. Le problème principal est qu’il n’y a plus d’état global connu de toutes les parties mais seulement des états locaux permettant de faire émerger un état global. • La propriété d’émergence est souvent mentionnée dans les systèmes à agents ou systèmes multi agents : l’activité de chacun concourt à la réalisation d’un objectif global. • Très naturellement, le contrôle de ces systèmes répartis n’est pas simple mais il est important de pouvoir s’assurer de la réalisation d’un objectif donné par un ensemble d’activités élémentaires. ISI Kef 3 INTRODUCTION • • • • Un système réparti est constitué de N composants (processus ou sites) communiquant par messages (et uniquement de cette manière). Chacun de ces composants agit comme un automate : il réalise des opérations qui modifient son état. Les opérations réalisées par un des composants sont naturellement ordonnées par l'ordre dans lequel elles sont réalisées : – s’il s'agit d'un processus abritant plusieurs activités (threads), – sur un système monoprocesseur, c'est l'ordre de l'exécution des instructions des instructions sur ce processeur qui ordonne les événements. La définition de l'ordre des événements sur un système multiprocesseurs (fortement et a fortiori faiblement couplés) est plus problématique du fait de la difficulté de maintenir une notion de temps absolu cohérente. ISI Kef 4 INTRODUCTION Dans un contexte de répartition: • L’observation des programmes en exécution présente des difficultés qui rendent le problème non trivial. • Un programme réparti est constitué d’un ensemble de processus s’exécutant en parallèle et communiquant seulement par envoi de messages sur des canaux les interconnectant. • Il n’y a pas d’horloge commune aux différents processus, et de plus, les temps de transfert des messages ne sont pas bornés (dans un contexte de communication fiable, ils sont toutefois finis). • Dans ces conditions, il est impossible d’effectuer une observation “simultanée” de l’état des différents processus et canaux. • La réalisation d’une observation cohérente qui reflète un état global constitué des états locaux des différentes parties du système, pris à des instants physiques différents mais de manière à rendre une information utile sur l’état du système dans son intégralité, constitue donc un problème désormais classique, connu sous le nom de détection d’un état global réparti cohérent. ISI Kef 5 PROBLEMATIQUE • Obtenir une vision instantanée d'un système réparti, consistant en la collection des états des différents sites le composant (typiquement une image mémoire de chacun des sites) est difficile à obtenir sans figer chacun des systèmes. • L'absence de mémoire commune et le caractère aléatoire des délais d'acheminement des messages échangés entre les sites rendent impossible le calcul d'un état global du système dans un système réparti. • Typiquement, l'image qu'un site possédera de l'état des autres sites ne pourra lui être communiquée qu'au travers de messages et ne pourra de ce fait correspondre qu'à un état du passé de ces sites : la chronologie des différentes images ainsi collectées n'est pas connue a priori. ISI Kef 6 PROBLEMATIQUE • L'absence d'un état global accessible directement constitue incontestablement une caractéristique de la répartition et est source de difficultés dans le développement d'applications relatives à : – l'interblocage ou verrou mortel (deadlock): situation dans laquelle un ensemble de processus est en situation de blocage du fait de l'existence d'un cycle dans le graphe d'allocations et de demandes des ressources à ces processus ; – le ramasse-miettes (garbage collecting), opération consistant en le épération des ressources allouées à un objet inutilisé ; – la mise au point (debugging): opération incluant par exemple la consultation et/ou la modification des valeurs de variables dans différents composants à un instant donné. ISI Kef 7 PROBLEMATIQUE • Les Systèmes répartis ont une évolution asynchrone – pas de mémoire commune (communication par messages) – pas d’horloge commune • Les horloges locales ne sont pas synchrones et dérivent • L’état d’un site distant ne peut être connu que par des informations véhiculées par les messages. • De plus, les communications introduisent des délais • L'ordre des messages n'est pas forcément préservé Conséquences : – Perception différente des mêmes événements depuis des sites distincts – Chaque site a sa propre horloge, la notion d'état global n'existe pas – On ne peut pas mettre en œuvre des algorithmes répartis basés sur le temps. ISI Kef CONSTRUCTION D’UN ÉTAT GLOBAL • • • • • L'exécution d'un algorithme réparti est une succession d'événements, chacun d'eux se produisant sur un site donné (Un événement : émission/ réception de message, calcul local au site) Une horloge unique permet de donner une date à chacun des événements et de les ordonner entre eux. Sur chaque site, il est possible de définir un état local et de définir un ordre entre les événements Deux processus de deux sites différents peuvent avoir des informations différentes sur l’état du système et sur l’ordre des événements qui s’y produisent. La solution de synchronisation des sites entre eux est donnée par la construction d'un état global • Utilisation d'horloges : logiques, vectorielles, matricielles • Utilisation d’états locaux des sites et de messages en transit entre eux ISI Kef 8 9 LE MODÈLE DE CALCUL • Un système réparti est constitué d’un ensemble fini de processus qui ne communiquent que par envoi de messages. • La structure d’un tel système peut être modélisée par un graphe orienté: les sommets de ce graphe sont les processus et les arcs représentent les canaux de communication unidirectionnels (canaux virtuels) reliant des processus entre eux. • A priori, aucune hypothèse particulière n’est faite quant à la topologie du graphe. • Les processus seront désignés par P1, P2,..., Pn et le canal allant de Pi vers Pj, s’il existe, sera désigné par Ci j. ISI Kef 10 LE MODÈLE DE CALCUL • Les processus ne partagent ni mémoire commune ni horloge globale, et aucune hypothèse n’est faite quant à leur vitesse relative. L’envoi et la réception de messages sont effectués de manière asynchrone, mais aucun délai maximum de transfert des messages n’est supposé connu. • La seule hypothèse générale sur les communications concerne leur fiabilité: les messages ne sont ni perdus (le délai de transfert est fini: tout message émis est reçu) ni altérés ni dupliqués (tout message reçu a été émis). De telles hypothèses caractérisent ce qu’il est convenu d’appeler un système réparti asynchrone fiable ISI Kef 11 ETAT GLOBAL • Chaque processus et chaque canal possède à tout moment un état local. L’état local « eli » d’un processus « Pi » résulte de son état initial et de la séquence d’événements dont ce processus a été le siège. L’état ECij d’un canal Cij est l’ensemble des messages en transit sur ce canal, c’est à dire qui ont été émis par le processus Pi et n’ont pas encore été reçus par le processus Pj. • L’évolution du système est régie par un ensemble d’événements. Chaque événement met en jeu un processus et éventuellement un canal. Il y a trois sortes d’événements: – les événements internes à un processus, qui ne modifient que l’état local du processus, – les émissions de messages, qui modifient l’état local du processus émetteur et l’état du canal sortant sur lequel est émis le message – et les réceptions de messages, qui modifient l’état local du processus récepteur et l’état du canal entrant par lequel le message a été reçu. ISI Kef 12 ETAT GLOBAL • Schématiquement on a, à ce niveau de description (m désigne un message): – événement interne sur Pi: provoque la transition de eli à el'i , états avant et après l’événement – émission de m par Pi sur Ci j (cet événement est noté émissioni(m)): provoque la transition de eli à el'i et l’affectation ECi j := ECi j U {m} – réception de m par Pi sur Cj i (cet événement est noté réceptioni(m)): provoque la transition de eli à el'i et l’affectation ECj i := ECj i \ {m} . ISI Kef 13 ETAT GLOBAL • • • • Chacun de ces événements est supposé atomique. On dit qu’un événement e est capté dans l’état local eli d’un processus Pi – si e appartient à la séquence d’événements ayant conduit Pi dans l’état eli. Il est important de remarquer que l’état local d’un processus n’est immédiatement observable que par un observateur local à ce processus (c’est à dire ayant accès en lecture à la mémoire locale de ce processus), tandis que l’état local d’un canal C i j n’est immédiatement observable ni par son origine Pi ni par son extrémité Pj (Pi resp. Pj- n’a pas connaissance immédiate des événements de réception -resp. d’émission-); c’est notamment ce fait qui rend difficile le problème de l’observation cohérente dans un système réparti. L’état global S d’un système réparti est constitué de l’ensemble des états locaux des processus et des canaux qui le constituent ISI Kef 14 ETAT GLOBAL Un état global cohérent correspond à un état global dans lequel le système peut se trouver. Formellement, cela signifie: i) ∀i : eli est un état local du processus Pi. ii) Les conditions C1 et C2 qui suivant sont vérifiées: C1: si l’événement émissioni(m) est capté dans eli, alors l’événement réceptionj(m) est soit capté dans elj, soit le message m appartient à ecij. C2: si l’événement émissioni(m) n’est pas capté dans eli, l’événement réceptionj(m) n’est pas non plus capté dans elj. ISI Kef 15 ETAT GLOBAL • Considérons l’exécution représentée par la figure 2, où trois processus Pi, Pj et Pk captent respectivement leurs états locaux eli, elj et elk (le graphe de communication est celui de la figure 1). ISI Kef 16 ETAT GLOBAL • L’ensemble { eli, elj, elk} ne forme pas un état global. • Si l’on considère la paire (Pk, Pj), l’émission du message m3 est enregistrée dans l’état local elk du processus Pk alors que sa réception ne l’est pas dans l’état local elj du processus Pj. – La condition C1 est mise en défaut, puisque l’état du canal ECkj n’est pas considéré (un éventuel redémarrage de Pj et de Pk, suite à une reprise après défaillance, à partir de cet état global entraînerait la perte du message m3). • D’autre part, même en considérant l’état des canaux dans l’état global, la cohérence n’est pas assurée car la réception du message m4 est enregistrée dans elj sans que son émission le soit dans ELk, – ce qui met en défaut la condition C2 (les deux états locaux elj et elk et l’état du canal ECjk ne sont pas mutuellement cohérents). ISI Kef 17 NOTION DE PRÉCÉDENCE CAUSALE • • • Pour définir un état global il faut tout d’abord pouvoir ordonner les événements entre eux, afin que : – Si un des événements contient l’émission d’un message et que l’autre contient la réception du même message, alors le premier a eu lieu avant le second. – Si un site émet une demande d’allocation d’une ressource, il est considéré avant un autre site qui aurait émis sa requête après le premier. Cette relation d’ordre partiel sur les événements est appelée relation de causalité. On définit la précédence comme suit : – Un événement e précède un événement f si et seulement si : – Ou bien e et f se déroulent sur le même site dans cet ordre – Ou bien e contient l’émission d’un message m et f contient la réception du même message m. ISI Kef 18 NOTION DE PRÉCÉDENCE CAUSALE • • • Un événement E1 sur un site 1 précède un autre événement E2 sur un site 2 si E1 a été généré avant E2 : – Il y’a une précédence causale entre E1 et E2. – Il existe une chaine d’événement qui démarre à E1 et finit par E2 et qui consiste par un enchainement émission, exécution et réception. La précédence causale est concrétisée par le mécanisme d’horloge logique, une notion logique permettant de comparer logiquement les événements de point de vu leur ordre d’exécution quelque soit le site. Afin de dater les événements des horloges logiques de différents types peuvent être utilisées : Scalaire, Vectorielle, Matricielle. ISI Kef 19 NOTION DE PRÉCÉDENCE CAUSALE ISI Kef NOTION DE PRÉCÉDENCE CAUSALE • • • • • 20 Cette relation définit un ordre partiel des événements. Des événements e et e' non comparables sont dits concurrents, ce qu'on note e||e'. A un événement e on peut alors associer trois ensembles d'événements : Passé(e) : ensemble des événements antérieurs à e dans l'ordre causal (e appartient à cet ensemble) ; Futur(e): ensemble des événements postérieurs à e dans l'ordre causal (e appartient à cet ensemble) ; Concurrent(e) : ensemble des événements concurrents avec e. ISI Kef 21 NOTION DE PRÉCÉDENCE CAUSALE • La précédence causale est concrétisée par le mécanisme des horloges logiques, une notion de temps logique permettant de comparer logiquement des événements du point de vue de leur ordre d'exécution quel que soit le site. • Afin de dater les événements, des horloges logiques de différents types peuvent être définies afin de rendre compte de la relation de causalité entre les événements. Les valeurs des horloges associées à des événements (leurs estampilles logiques) comparables doivent être elles-mêmes comparables et refléter l'ordre des événements ISI Kef 22 HORLOGE LOGIQUE • Lamport a proposé de définir pour ce type de systèmes une notion de temps logique permettant de comparer logiquement des événements du point de vue de leur ordre d'exécution : d'une part, sur un site, les événements locaux peuvent être ordonnés en se basant sur l'ordre de leur exécution (ou le temps absolu s'il est défini) et d'autre part l'émission d'un message sur le site émetteur précède toujours sa réception sur le site récepteur. Cela correspond à la notion de précédence causale. ISI Kef 23 HORLOGE LOGIQUE • Selon Leslie Lamport l'horloge logique permet de comparer logiquement des événements (requêtes, messages…) du point de vue de leur ordre d'exécution (Horloges scalaires) – Chaque site gère une horloge de type compteur dont la valeur est un entier (initialisé à 0 au lancement du système). – La valeur de l'horloge logique d'un site est incrémentée chaque fois qu'un événement local s'y produit : opération locale, ou envoi/réception d'un message. – Dans le cas d'un envoi, la valeur courante (après incrémentation) de l'horloge de l'émetteur est embarquée avec le message et sert à l'estampiller (La réception d'un message permet de synchroniser l'horloge du récepteur avec celle de l'émetteur du message qui est transportée par le message. Le principe est simple : il consiste à attribuer à l'horloge du récepteur une valeur supérieure à la fois à la valeur courante de l'horloge du site et à celle de l'estampille du message reçu.) – La réception d'un message permet de synchroniser l'horloge du récepteur avec celle de l'émetteur du message qui est transportée par le message. ISI Kef 24 HORLOGE LOGIQUE SCALAIRE • • Principe : attribuer à l'horloge du récepteur une valeur supérieure à la fois à a valeur courante de l'horloge du site et à celle de l'estampille du message reçu. Conséquence : Garantit que la réception sera postérieure à l'émission. ISI Kef 25 HORLOGE LOGIQUE SCALAIRE ISI Kef 26 HORLOGE LOGIQUE SCALAIRE ISI Kef 27 HORLOGE LOGIQUE SCALAIRE • • Cette technique permet donc d'associer à chaque événement une date (estampille logique) correspondant à la valeur de l'horloge de son site modifiée selon les règles que nous venons de définir. On peut observer que : l'ordre des événements qui est ainsi défini n'est pas un ordre strict : plusieurs événements peuvent porter la même valeur. C'est le cas (parmi d'autres) sur notre exemple des événements e, o et x appartenant respectivement à P, Q et R qui ont chacun 6 comme date. Il est facile de rendre cet ordre strict en modifiant légèrement le système de datation : la date d'un événement sur un site est obtenue en adjoignant à la valeur de l'horloge scalaire de ce site l'identification du site (par exemple un entier attribué artificiellement ou une adresse IP ou physique). ISI Kef 28 HORLOGE LOGIQUE SCALAIRE La règle de comparaison des dates est alors : ISI Kef 29 HORLOGE LOGIQUE SCALAIRE • De nombreux algorithmes répartis : – Algorithmes utilisant une “file d’attente virtuelle” répartie (Exclusion mutuelle répartie, mise à jour de copies multiples, diffusion cohérente (ordre de réception uniforme)) – Détermination de l’accès “le plus récent” (gestion cohérente de caches multiples, mémoire virtuelle répartie) – Synchronisation des horloges physiques (borne supérieure sur la dérive entre sites) – Algorithmes de détection de terminaison, d'élection, de diffusion de messages, ISI Kef 30 HORLOGE LOGIQUE VECTORIELLE • • Nous venons de voir que le système de datation par estampilles scalaires d'une part introduisait un ordre artificiel sur des événements concurrents et d'autre part ne permettait pas de corriger les défaillances vis-à-vis de la relation FIFO des canaux de communication. Le mécanisme de datation par estampilles vectorielles (et les horloges vectorielles maintenues par les différents composants d'un système) permet de pallier ces deux inconvénients. Chaque site gère une horloge vectorielle constituée de n entiers (n est le nombre de composants du système). Une telle horloge permet de dater les événements d'un site et est mise à jour lors de l'occurrence des événements. Comme pour les horloges scalaires, les messages envoyés par un site sont estampillés en utilisant la valeur courante de l'horloge vectorielle du site émetteur et la réception d'un message pemet au site récepteur de synchroniser son horloge vectorielle avec celle du site émetteur du message. De manière plus précise, les règles suivantes sont appliquées pour la gestion des horloges vectorielles: ISI Kef 31 HORLOGE LOGIQUE VECTORIELLE ISI Kef 32 HORLOGE LOGIQUE VECTORIELLE ISI Kef 33 HORLOGE LOGIQUE VECTORIELLE • La propriété fondamentale que possèdent les estampilles vectorielles déduites des horloges vectorielles et de leur actualisation par les règles énoncées est que • Par exemple l'estampille vectorielle de l'événement p est [4, 7, 5]. Cela correspond au fait que Passé(p) contient – 4 événements sur P (a, b, c, d); – 7 événements sur Q (j, k, l, m, n, o, p); – 5 événements sur R (u, v, w, x, z). ISI Kef 34 HORLOGE LOGIQUE VECTORIELLE • La relation d'ordre suivante peut par ailleurs être définie sur les estampilles vectorielles : • Par exemple [4,7,5] est plus petite que [6,7,8], plus grande que [4,6,4] et incomparable avec [6,5,7] ISI Kef 35 HORLOGE LOGIQUE VECTORIELLE • Muni de cette relation d'ordre, le système de datation par estampilles vectorielles a la remarquable propriété de refléter exactement la relation de précédence causale entre événements : ISI Kef 36 HORLOGE LOGIQUE VECTORIELLE • • • • On peut vérifier sur notre exemple que : les estampilles vectorielles des événements précédant causalement p sont inférieures (au sens qui a été défini) à l'estampille vectorielle de p ([4,7,5]). Par exemple l'estampille vectorielle de l'événement d antérieur à p est ([4,1,0]) qui est inférieure à ([4,7,5]); les estampilles vectorielles des événements suivant causalement p sont supérieures à l'estampille vectorielle de p. Par exemple l'estampille vectorielle de l'événement C postérieur à p est ([8,9,9]) qui est supérieure à ([4,7,5]); les estampilles vectorielles des événements concurrents de p sont incomparables avec l'estampille vectorielle de p; Par exemple l'estampille vectorielle de l'événement e concurrent avec l'événement p est ([5,3,3]) qui est incomparable avec ([4,7,5]). ISI Kef 37 Correction TD ISI Kef 38 Correction TD • Considérons l'événement p. Il appartient à son propre passé et est précédé directement par o et y. - On a Passé(p) = {p} + Passé(o) + Passé(y) Le calcul de Passé(p) suppose donc le calcul de celui de o et y. - On a Passé(o) = {o} + Passé(n) + Passé(d) En pousuivant le calcul: - Passé(n) = {n} + Passé(m) - Passé(m) = {m} + Passé(l) + Passé(a) - Passé(l) = {l} + Passé(k) - Passé(k) = {k} + Passé(j) + Passé(u) - Passé(j) = {j} - Passé(u) = {u} - Passé(a) = {a} - Passé(d) = {d} + Passé(c) - Passé(c) = {c} + Passé(b) - Passé(b) = {b} + Passé(a) + Passé(j) - Passé(y) = {y} + Passé(x) - Passé(x) = {x} + Passé(w) + Passé(n) - Passé(w) = {w} + Passé(v) - Passé(v) = {v} + Passé(u) + Passé(l) Par conséquent Passé(p) = {a, b, c, d, j, k, l, m, n, o, p, u, v, w, x, y} ISI Kef 39 Correction TD • • • Par un calcul analogue, on obtient: Futur(p) = {g, h, i, p, q, r, s, t, C, D} Finalement les événements n'appartenant ni à Passé(p), ni à Futur(p) sont concurrents avec p. On a donc Concurrent(p) = {e, f, z, A, B} ISI Kef 40 Correction TD ISI Kef 41 Correction TD ISI Kef 42 Correction TD ISI Kef Accès concurrent dans les SR Mehrez Boulares, Nour Ben Yahia ISI Kef 2 Les accès concurrents : rappels • • • Un problème d'accès concurrent a lieu quand deux processus partagent une ressource logicielle ou matérielle: on parle de section critique au niveau du programme. Exemples: – section de ligne ferroviaire à voie unique. Trains dans un sens ou dans l'autre, mais pas dans les deux sens en même temps. – Lecteurs/rédacteurs, producteurs/consommateurs On rentre en section critique, par une section d'entrée qui met en œuvre une condition et on la quitte par une section de sortie. – Section d'entrée • Section critique : inst1, inst2, inst3… – Section de sortie ISI Kef 3 Les accès concurrents : rappels • • • Rappelons tout d'abord en quoi consiste ce problème. Des applications s'exécutant de manière concurrente et partageant des ressources peuvent, dans certaines circonstances, avoir besoin d'accéder de manière exclusive à une ou plusieurs de ces ressources appelées ressources critiques. Le code exécuté nécessitant cet accès exclusif est lui-même appelé une section critique. On fait couramment le parallèle avec une voie de chemin de fer ou un pont étroit supportant une charge limitée susceptibles d'être empruntés par des véhicules dans les deux sens. Le bon fonctionnement (et la survie des usagers) suppose que seul un véhicule ne puisse utiliser, à un instant donné, la section de rail ou de route correspondante. D'un point de vue informatique, ce problème est fréquent. Citons-en quelques exemples : – suite d'opérations dans un fichier ou une base de données ; – accès à une ressource telle qu'une imprimante ; – accès à une zone de mémoire centrale ; (segment de mémoire partagée) par plusieurs processus ISI Kef 4 Les états d'un processus • Un processus est dans 3 états possibles, par rapport à l'accès à la ressource • Demandeur : demande à utiliser la ressource, à entrer dans la section • Dedans : dans la section critique, utilise la ressource partagée • Dehors : en dehors de la section et non demandeur d'y entrer • Changement d'état par un processus • De dehors à demandeur pour demander à accéder à la ressource • De dedans à dehors pour préciser qu'il libère la ressource • Le passage de l'état demandeur à l'état dedans est géré par le système et/ou l'algorithme de gestion d'accès à la ressource ISI Kef Propriétés d'un algorithme d'exclusion mutuelle • Une solution n'est considérée correcte que si elle respecte les propriétés suivantes – Sûreté (safety) : au plus un processus est à la fois dans la section critique (dans l'état dedans) – Vivacité (liveness) : tout processus demandant à entrer dans la section critique (à passer dans l'état dedans) y entre en un temps fini • Un algorithme qui assure ces deux propriétés assure également l'absence de deux problèmes, l'interblocage et la famine: – Interblocage (Deadlock) : est une situation du système où il y a plusieurs sites à l'état Demandeur et aucun ne peut accéder à la SC. – Famine (Starvation) : aura lieu si un site qui se trouve à l'état Demandeur ne passe jamais à l'état Dedans. ISI Kef 5 6 Solutions • On parle d'exclusion mutuelle quand un seul processus à la fois a le droit de rentrer en section critique. – Solutions logicielles : Sémaphores, Moniteurs. – Solutions matérielles : Désactiver les interruptions. ISI Kef 7 Solutions matérielles • La solution la plus simple, mais qui ne peut s'appliquer que dans le cas de machines monoprocesseurs, consiste à masquer les interruptions susceptibles de provoquer une concurrence relativement à une ressource critique. Dans le mode superviseur des processeurs, il est possible de manipuler le masque d'interruption du processeur, ce qui est largement utilisé lors du développement des systèmes d'exploitation. ISI Kef 8 Solutions logicielles • • Nous nous intéressons ici à la possibilité de résoudre le problème de l'exclusion mutuelle sans faire appel à des instructions spécifiques et donc en se basant sur les seules opérations d'affectation et de test. Ainsi qu'on va le voir au travers de solutions erronées, cela n'est pas immédiat et nécessite certaines précautions. La première idée qui vient à l'esprit consiste à utiliser une variable booléenne ayant la valeur VRAI lorsqu'un processus est en section critique. ISI Kef 9 Les accès concurrents : les sémaphores • • • • • Sémaphores binaires qui peuvent prendre la valeur 0 ou 1 et les sémaphores n-aires. Le système gère l'entrée à la section en endormant les processus qui arrivent alors que le sémaphore est attribué, Les primitives P et V sont indivisibles P(S) permet de prendre le sémaphore : – Si S > 0 • Alors s = s -1 • Sinon s'endormir – Finsi. V(S) permet de libérer le sémaphore et un processus bloqué s'il y en a – Si un processus est bloqué sur S • Alors le libérer • Sinon s =s+1 – Finsi. ISI Kef Les accès concurrents dans un environnement réparti • • Un processus bloqué appartient à la file des processus en attente, une fois libéré il passe dans celle des prêts – Le système gère des contextes de processus. Peut-on gérer des contextes à distance ? NON Plusieurs grandes familles de méthodes • Contrôle par un serveur qui centralise les demandes d'accès à la ressource partagée • Contrôle par jeton – Un jeton circule entre les processus et donne l'accès à la ressource – La gestion et l'affectation du jeton – et donc l'accès à la ressource – est faite par les processus entre eux – Deux approches : jeton circulant en permanence ou affecté à la demande des processus • Contrôle par permission – Les processus s'autorisent mutuellement à accéder à la ressource ISI Kef 10 11 Définitions • Une commutation de contexte (context switch) en informatique consiste à sauvegarder l'état d'un processus ou d'un processus léger et à restaurer l'état d'un autre processus (léger) de façon à ce que des processus multiples puissent partager les ressources d'un seul processeur dans le cadre d'un système d'exploitation multitâche. • Le contexte d'un processus est l'ensemble des informations dynamiques qui représente l'état d'exécution d'un processus (e.g. où est-ce que le processus en est de son exécution). ISI Kef 12 Exemple • La commutation de contexte invoque au moins trois étapes. Par exemple, en présumant que l'on veut commuter l'utilisation du processeur par le processus P1 vers le processus P2 : – Sauvegarder le contexte du processus P1 quelque part en mémoire (usuellement sur la pile de P1). – Retrouver le contexte de P2 en mémoire (usuellement sur la pile de P2). – Restaurer le contexte de P2 dans le processeur, la dernière étape de la restauration consistant à reprendre l'exécution de P2 à son point de dernière exécution. ISI Kef 13 Solution du coordinateur • • • Principe général – Un serveur centralise et gère l'accès à la ressource Algorithme – Un processus voulant accéder à la ressource (quand il passe dans l'état demandeur) envoie une requête au serveur – Quand le serveur lui envoie l'autorisation, il accède à la ressource (passe dans l'état dedans) • Il informe le serveur quand il relâche la ressource (passe dans l'état dehors) Le serveur reçoit les demandes d'accès et envoie les autorisations d'accès aux processus demandeurs – Avec par exemple une gestion FIFO : premier processus demandeur, premier autorisé à accéder à la ressource ISI Kef 14 Solution du coordinateur • • • Un coordinateur gère l'accès à la ressource Tout processus remplace P(S) par une requête bloquante au coordinateur Puis-je ? V(S) est remplacé par une primitive qui envoie un message de terminaison au coordinateur Avantages • Très simple à mettre en œuvre • Simple pour gérer la concurrence d'accès à la ressource Inconvénients : • Sollicitation excessive du coordinateur • Panne du coordinateur, il faut élire un nouveau coordinateur • Tous doivent se mettre d'accord pour n'en élire qu'un seul, mais il faut en élire un au bout d'un temps fini ISI Kef 15 Solution du coordinateur • Suppression du serveur centralisateur – Via par exemple une méthode à jeton : le processus qui a le jeton peut accéder à la ressource – La gestion et l'affectation du jeton est faite par les processus entre eux – Pas de besoin de serveur centralisateur ISI Kef 16 Algorithme à base de jeton • • • 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 Un jeton unique circule entre tous les processus – Le processus qui a le jeton est le seul qui peut accéder à la section critique Respect des propriétés – Sûreté : unicité du jeton – Vivacité : l'algorithme doit assurer que le jeton circule bien entre tous les processus voulant accéder à la ressource ISI Kef 17 Algorithmes • • Algorithme de [Le Lann, 77] Algorithme de [ Ricart & Agrawala, 83 ] ISI Kef Les accès concurrents : solutions réparties (en théorie) • • • • • Chaque processus connaît les N autres processus conflictuels. Chaque processus désirant rentrer en section critique : – Envoie un message aux N processus : puis_je ? – Attend N réponses – Réception N réponses: début de la section critique – Réception N-1 réponses : • un processus est probablement en section critique • La réponse du processus s'est perdue Aucun respect de l'ordre des demandes Risque de famine SOLUTION : estampiller les messages Algorithmes à base de permission (Un processus candidat doit demander a d'autres processus la permission d'entrer en exclusion ) ISI Kef 18 19 Méthodes par permission • – Un processus doit avoir l'autorisation des autres processus pour accéder à la ressource Principe général – Un processus demande l'autorisation à un sous-ensemble donné de tous les processus – Deux modes • Permission individuelle : un processus peut donner sa permission à plusieurs autres à la fois • Permission par arbitre : un processus ne donne sa permission qu'à un seul processus à la fois ISI Kef Les accès concurrents: l'algorithme de Lamport • • Proposé en 1978, vise à satisfaire les demandes des différents sites dans où elles sont formulées Cet algorithme suppose que les canaux de communication entre les différents sites respectent la propriété FIFO. Chacun des composants du système utilise une horloge scalaire qu'il synchronise lors de la réception de messages en provenance des autres composants du système. Trois types de messages (estampillés lors de leur envoi) sont utilisés et chacun des messages sera systématiquement envoyé à tous les autres participants : – REQUETE : un tel message est envoyé lorsqu'un site veut entrer en section critique; – REPONSE : un tel message est envoyé par un site qui reçoit un message du type précédent ; – LIBERATION : un tel message est envoyé par un site lorsqu'il sort de section critique. ISI Kef 20 Les accès concurrents: l'algorithme de Lamport • Chaque site gère une file d'attente dans laquelle il place, dans l'ordre induit par la valeur de leurs estampilles, toutes les requêtes pour entrer en section critique (y compris les siennes) et leurs estampilles. En fait, la file des requêtes sera répliquée sur chaque site, si bien que chaque site peut décider de la possibilité d'entrer en section critique sur la base des informations qu'il possède. ISI Kef 21 22 l'algorithme de Lamport ISI Kef 23 l'algorithme de Lamport • • • • Elle repose sur les observations suivantes : la propriété FIFO de chacun des canaux de communication et la synchronisation des horloges, implique que si un site a reçu un message d'accord (de type REPONSE) en provenance du site j – toute requête antérieure de ce même site lui est nécessairement arrivée; – toute demande lui arrivant en provenance de ce site sera postérieure à la sienne, s'il en a formulé une. Si un site a reçu l'accord de tous les sites et que sa demande est la plus ancienne, aucune demande antérieure ne lui parviendra d'un autre site; l'existence d'un ordre total sur les demandes implique que seul un site pourra rentrer en section critique, les autres devant nécessairement attendre que la demande en tête de file soit retirée de la file (donc que le site élu sorte de section critique et envoie un message de type LIBERATION). ISI Kef 24 l'algorithme de Lamport Nombre de messages échangés • Le traitement complet (entrée et sortie) d'une phase de section critique requiert, pour un système de N composants, 3*(N-1) messages (N-1 messages de chacun des types). ISI Kef 25 Exemple • • Dans cet exemple impliquant trois sites, les sites S1 et S2 veulent entrer en section critique alors que leurs horloges scalaires ont respectivement 3 et 2 comme valeur. Les messages envoyés par S1 à S2 et S3 sont donc estampillés 3.1. Les messages envoyés par S2 à S1 et S3 sont quant à eux estampillés 2.2. Dans la figure ci-dessous : – les envois de messages de type REQUETE correspondent aux flèches bleues; – les envois de messages de type REPONSE correspondent aux flèches vertes; – les envois de messages de type LIBERATION correspondent aux flèches rouges. ISI Kef 26 l'algorithme de Lamport ISI Kef 27 l'algorithme de Lamport ISI Kef 28 l'algorithme de Lamport ISI Kef 29 l'algorithme de Lamport ISI Kef 30 l'algorithme de Lamport ISI Kef 31 l'algorithme de Lamport ISI Kef 32 l'algorithme de Lamport ISI Kef 33 l'algorithme de Lamport ISI Kef 34 l'algorithme de Lamport ISI Kef 35 l'algorithme de Lamport ISI Kef 36 l'algorithme de Lamport ISI Kef 37 Algorithmes • • • Algorithme de [Ricart & Agrawala, 81] [Carvalho & Roucairol, 83] [Chandy & Misra, 84] ISI Kef Inter blocage dans les SRs Mehrez Boulares, Nour Ben Yahia ISI Kef 2 Inter blocage: introduction • Solution accès concurrents ne veut pas dire absence d’inter blocage. • Inter blocage : situation pour un ensemble de processus(ou transactions) où chacun d’entre eux est dans l’attente de la réalisation d’un événement de la part d’un autre. • Mauvaise programmation risque d’inter blocage : – Sections critiques emboitées on doit interdire des appels récursifs d’une section critique (appels récursifs à l’intérieure d’une SC). • Besoin de plusieurs ressources : inter-blocages ISI Kef 3 Inter blocage: introduction • Un ensemble de processus sont en interblocage si chaque processus dans cet ensemble est bloqué en attente d’un événement qui seulement un autre processus de cet même ensemble peut déclencher. • L’événement attendu peut être la libération d’une ressource ou l’envoie d’un message…. • En cas d’interblocage aucun processus ne peut … – Ni continuer son exécution – Ni libérer une ressource – Ni être réveillé ISI Kef 4 Inter blocage : introduction • L’inter-blocage demande la présence simultanée de 4 conditions (conditions nécessaires) 1. Exclusion mutuelle: A un instant précis, une ressource est allouée à un seul processus. 2. Saisie et attente (hold and wait): un processus détient une ressource non partageable et en attend des autres pour compléter sa tâche. 3. Pas de préemption : un processus qui détient une ressource non partageable la garde jusqu’à ce qu’il aura complété sa tâche. 4. Attente circulaire: il y a un cycle de processus tel que chaque processus pour compléter doit utiliser une ressource non partageable qui est utilisée par le suivant, et que le suivant gardera jusqu`à sa terminaison. ISI Kef 5 Inter blocage : introduction Exemple : • • • • Exclusion mutuelle: Seulement une voiture occupe un endroit particulier de la route à un instant donné. Saisie et attente : Aucune voiture ne peut faire marche arrière. Pas de préemption: On ne permet pas à une voiture de pousser une autre voiture en dehors de la route. Attente circulaire: Chaque coin de la rue contient des voitures dont le mouvement dépend des voitures qui bloquent la prochaine intersection. ISI Kef 6 Modélisation des inters blocages Processus Pi demande un exemplaire de Ri, bloqué en attente de la ressource ISI Kef Ressource possédant 4 exemplaires (instances) Pj détient un exemplaire de Rj ou Rj est affecté à Pj 7 Modélisation des inters blocages ISI Kef 8 Modélisation des inters blocages ISI Kef 9 Explication des graphes - Dans G2 de fait que P1 n’utilise plus qu’une seule ressource la condition 3 n’est pas vérifiée, ainsi que dès que P1 libère la ressource, P3 peut y accéder en mettant fin ainsi à un éventuel inter blocage. * Existence de 2 cycles : ISI Kef 10 Explication des graphes • Tous les cycles ne sont pas bloquants : • Tout graphe d’allocation de ressource avec une seule occurrence des ressources peut être converti en graphe d’attente WFG (Wait For Graph). ISI Kef 11 Explication des graphes • Simplification possible lorsqu’un processus demande une ressource spécifique identifiée : • Sommet ≡ processus ; • Arc étiqueté par la ressource demandée. ISI Kef 12 Inter blocage : Solutions • Ignorer le problème (L’algorithme de l’autruche) • D’évitement : le système alloue une ressource si elle n’entraînera pas d’interblocage (disposer à l’avance d’informations sur l’utilisation des ressources par un processus, et décider dynamiquement de l’allocation) • Préventives : le système empêche les inters blocages d’avoir lieu (s’assurer que l’une des conditions nécessaires n’est jamais remplie) • Détection et guérison : le système ne fait aucun effort à priori. Une fois qu’un inter blocage est détecté, il le corrige (requiert un algorithme de détection et un algorithme de correction. Surcharge de travail pour le système.) Les algorithmes différents selon le nombre d’instances des ressources. ISI Kef 13 Inter blocage : Solutions ISI Kef - Problématique différente : Détection difficile. Respect de l’ordre d’accès aux ressources, difficile. 14 Solution basée sur la prévention A- Allocation par classe de ressource : • Consiste à classer les ressources et à les demander dans un certain ordre. • Soit un processus qui détient Ri, et qui demande Rj il ne sera autorisé à demander Rj que si classe(Ri) < classe(Rj) autrement il libère Ri. • Inconvénient : ne s’applique pas aux ressources logiciels et nécessite la K de l’ordre d’accès au ressources. B- Allocation par estampilles : • Chaque processus acquiert au démarrage une estampille. • Il s’agit de respecter une allocation basée sur un ordre croissant des estampilles. • 2 versions: Wait/Die, Wound/Wait RosenKrantz(1978). ISI Kef 15 Solution basée sur la prévention - Les algorithmes Attente/Mort (Wait/Die) et Blessé/Attente (Wound/Wait) sont deux autres méthodes d'évitement qui utilisent une technique de rupture de la symétrie. Dans ces deux algorithmes on prend en compte l'âge des processus et l'on distingue un processus âgé (A) et un processus jeune (J). - L'âge d'un processus peut être déterminé par horodatage (timestamp) lors de sa création. Les dates les plus petites appartiennent à des processus plus âgés, les plus grandes à des processus plus jeunes. ISI Kef 16 Solution basée sur la prévention • Il est important de se rendre compte qu'un processus peut être dans un état non-sûr sans pour autant forcément conduire à un inter blocage. • La notion de sûr/non-sûr fait uniquement référence à la possibilité que le système entre dans un inter blocage ou non. • Par exemple, si un processus fait une requête sur une ressource A qui résulte en un état non-sûr, mais relâche une ressource B pour éviter une attente circulaire, alors l'état est non-sûr mais le système n'est pas en inter blocage. ISI Kef 17 Wait / Die • Un processus n’est autorisé à attendre que s’il est plus vieux (estampille plus petite). • Pi détient la ressource, Pj demande la ressource. • Si E(Pi) > E(Pj) {demande Pj est plus ancienne}. • Pj est autorisé à attendre. • Sinon {demande Pi est plus ancienne}. • Pj est tué. - Les vieux attendent, les jeunes meurent. Risque de famine pour les jeunes. ISI Kef 18 Wound/Wait (Préemption ou attente) • Un processus n’est autorisé à attendre que s’il est plus jeune (estampille plus grande). • Pi détient la ressource, Pj demande la ressource. • Si E(Pi)>E(Pj) {demande Pj est plus ancienne}. • Pi libère la ressource par préemption et meurt le jeune processus redémarre (garde son estampille) et attend la fin des vieux processus : pas de famine. • Sinon {demande Pi est plus ancienne}. • Pj est autorisé à attendre. - Les vieux réquisitionnent, les jeunes attendent. ISI Kef 19 Wound/Wait (Préemption ou attente) ISI Kef 20 Algorithme du Banquier Il vérifie que le fait d’accorder une requête conduit à un état sur Le cas échéant la ressource est allouée, sinon elle est mise en attente Afin de voir si un état est sûr, il faut nécessairement vérifier si les ressources sont suffisantes. Les demandes futures doivent être déclarées. A chaque demande de ressource, on vérifie que cette demande ne puisse mener à un inter-blocage. ISI Kef 21 Algorithme du Banquier Si une demande devait mener à un inter-blocage, le processus est suspendu; il sera réactivé une fois que ce risque n'existe plus. L'algorithme est activé à chaque demande. Les processus suspendus peuvent être réordonnancés. Les processus sont éventuellement ordonnancés de manière à ce que tous puissent s'exécuter et se terminer. Ordonnanceur à long terme ! ISI Kef 22 Détection des inters blocages L’inter blocage est détecté à partir du WFG. Décision qui nécessite l’examen des WFG de tous les sites. a- Solution centralisée : Un site maintient un graphe global. b- Solution distribué : Chaque site maintient une partie du graphe. Le graphe global est la réunion des WFG. c- Solution hiérarchique : Chaque site maintient le graphe de ses descendants. d- Solution partiellement centralisée : • Un site central maintient un WFG global. • Chaque site maintient sont WFG local et informe le site central. • Inter blocages fantômes : état global est-il réel ? ISI Kef 23 Détection des inters blocages d- Solution partiellement centralisée : • Envoi d’informations à l’initiative du coordinateur ou des sites : • Fréquence périodique, à chaque déroulement de l’algorithme, à chaque demande d’allocation/libération de ressource : compromis. e- Solution complètement centralisée : • Chaque requête pour une ressource est transmise au site central. • Pas de WFG locaux. • Point de congestion, pas de tolérances aux pannes. ISI Kef 24 Guérison • La guérison de l’interblocage passe par la destruction d’au moins un des processus interbloqués, ce qui entraîne la libération des ressources qui lui étaient allouées, de façon à supprimer la présence du cycle. L’exécution de ce processus devra en général être reprise ultérieurement. • Il y a difficulté si un processus détruit a effectué des modifications irréversibles, éventuellement incohérentes, de données globales. Il faut donc dans ce cas enregistrer une copie des données globales susceptibles d’être modifiées par un processus avant le lancement de ce processus ; au moment de la destruction, on rétablit les valeurs initiales des données. ISI Kef Tolérance aux pannes dans les SRs Mehrez Boulares, Nour Ben Yahia ISI KEF 2013-2014 2 Introduction • • • Nombre croissant de composants dans un système => Probabilité plus grande que des composants tombent en panne pendant l’exécution de l’algorithme Causes diverses – Erreurs de conception, Accidents, Malveillances etc. Objectif: éviter de relancer un algorithme après chaque panne => concevoir des algorithmes capables de fonctionner malgré des pannes. ISI Kef 3 Introduction • • • Système Distribué: panne système est affecté partiellement et improbable qu’il le soit en totalité Idée de solution: les sites corrects prennent en charge les tâches des sites défaillants Conséquence: perte de performances mais pas de fonctionnement erroné ISI Kef 4 Introduction • • • La tolérance aux fautes s’inscrit dans le contexte plus large de la sûreté de fonctionnement. La sûreté de fonctionnement (dependability) d’un système informatique est la propriété qui permet à ses utilisateurs de placer une confiance dans le service qu’il délivre. Le service délivré par un système est son comportement tel qu’il est perçu par ses utilisateurs ISI Kef 5 La sûreté de fonctionnement La sûreté de fonctionnement Attributs Disponibilité (Availability) Fiabilité (Reliability) Sûreté (Safety) Confidentialité (Confidentiality) Intégrité (Integrity) Maintenabilité (Maintanability) ISI Kef Menaces Fautes (Faults) Erreurs (Errors) Pannes/ Défaillances (Failures) Moyens Prévention des fautes Tolérance aux fautes Suppression des fautes Prévision des fautes 6 Menaces • • L'existence d'erreurs ("design errors") ou d'accidents physiques ("physical damage") ou de malveillances est inévitable. – Erreurs de conception, de programmation ou de saisie – Accidents dus à l'environnement – Malveillances intentionnelles. L'une des circonstances précédentes peut ne pas gêner le système ou rester indétectée longtemps. Fautes, pannes ("Faults""Failures") • Le système est en faute ou en panne si suite à l'un des phénomènes précédents il ne respecte pas l'une de ses spécifications. ISI Kef 7 Menaces • • • Une erreur(Error) est une anomalie de l’état du système et susceptible d’entrainer une défaillance. Une erreur ne provoque pas systématiquement une défaillance. Le système peut continuer à délivrer un service correct malgré un certain nombres d’erreurs affectant son état. Une faute(fault) est la cause d’une erreur. Une erreur peut provoquer une défaillance : Une altération du service délivré par le système. faute(fault) erreur dans l’état du système défaillance dans le système. • • • Une faute provoque une erreur qui entraîne une défaillance Un composant est défaillant s’il ne répond plus à sa spécification Une faute ou panne désigne une défaillance temporaire ou définitive d’un ou plusieurs composants du système. ISI Kef 8 Menaces Faute: Défaut physique du matériel ou du logiciel Erreur: Une valeur incorrecte dans le système Défaillance / Panne: Déviation du système par rapport à sa spécification ISI Kef 9 Le domaine d'utilisation • Le domaine d'utilisation du système est particulièrement dangereux et met en jeu des vies humaines avec des coûts liés aux pannes qui peuvent être immenses. – Domaine des transports • Conduite automatique de trains. • Systèmes de contrôle en avionique. – Domaine de la production d'énergie • Conduite de centrales nucléaires. • Conduite de barrages. ISI Kef 10 Moyens • Plusieurs moyens sont généralement combinés pour mettre en œuvre la sûreté de fonctionnement d’un système : – la prévention des fautes(fault prevention) consiste à empêcher l’occurrence des fautes ; – la tolérance aux fautes(fault tolerance) consiste à délivrer un service correct en dépit de l’ocurrence de fautes ; – l’élimination des fautes(fault removal) consiste à réduire le nombre et la sévérité des fautes dans le but de les éliminer du système ; – prévision des fautes(fault forecasting) consiste à estimer le nombre de fautes courantes et futures ainsi que leurs conséquences. ISI Kef 11 Moyens La prévention des fautes(fault prevention) • • L'ensemble des techniques de conception, de fabrication qui permettent de produire des composants informatiques de très bonne qualité (très fiable). Le composant ne doit pas tomber en panne – bonne protection physique – bonne fabrication – techniques de génie logiciel, de preuves, de tests => pas d'erreurs. – Contrôle qualité – Méthodes de conception, – Programmation structurée, – Protection contre les radiations, – Firewalls,... ISI Kef 12 Moyens La tolérance aux fautes ("Fault tolerance") • • • • • L'ensemble des techniques de conception, de fabrication des architectures qui continuent de fonctionner même en présence de la panne de l'un de leurs composants. L'ensemble de l'architecture considérée comme un tout continue de rendre le service attendu Détection des erreurs Recouvrement des erreurs – rollback – rollforward Gestion des fautes: – Diagnostic, – Isolation – Reconfiguration – Ré-initialisation ISI Kef 13 Moyens l’élimination des fautes(fault removal) • • • Validation, Vérification – statique, – dynamique, – Y compris les mécanismes de tolérance! – ==>Injection de fautes Maintenance – Corrective – Préventive ISI Kef 14 Moyens prévision des fautes(fault forecasting) • • • Évaluation du comportement du système Qualitatif – Identifier, classifier, analyser les pannes possibles Quantitatif – Déterminer la probabilité avec laquelle le système satisfait aux attributs de dépendabilité. ISI Kef 15 Attributs • • • • • • La fiabilité – Probabilité pour qu'un système soit continûment en fonctionnement sur une période donnée (entre 0 et t). La disponibilité – Probabilité pour qu'un système soit en fonctionnement à un instant t donné. La maintenabilité – Probabilité pour qu'un système en panne à l'instant 0 soit réparé à l'instant t. La Sûreté: – Probabilité pour qu'un système soit continûment en fonctionnement non catastrophique sur une période donnée (entre 0 et t). Confidentialité: – Ne pas dévoiler des informations sans autorisation Intégrité: – Absence d'altérations incorrectes de l'état du système ISI Kef Techniques permettant d’atteindre la tolérance aux fautes • 16 La tolérance aux fautes est mise en œuvre par la combinaison de deux techniques. – Le traitement de la faute(fault treatment) qui vise à éviter qu’une faute survenue ne se reproduise. • prévoir des composants multiples, pour réduire la probabilité qu’une faute conduise à une défaillance, réaliser des traitements multiples (par exemple : réaliser la même opération par des algorithmes différents pour tenter d’éviter les fautes de conception). – Le traitement d’erreur(error processing) qui vise à éliminer une erreur avant qu’elle ne produise une défaillance. • détecter l’existence d’un état incorrect (erreur), remplacer l’état incorrect par un état correct (conforme aux spécifications). ISI Kef 17 Traitement de faute • L’objectif du traitement de faute vise à éviter qu’une faute ne se reproduise. • On procède au diagnostic de faute(fault diagnosis) qui vise à identifier la faute, puis, on procède à la passivation(fault passivation) de la faute qui consiste généralement à neutraliser les composants fautifs en les excluant du système. ISI Kef Traitement de l’erreur • 18 L’objectif du traitement de l’erreur est d’éliminer une erreur affectant le système afin qu’elle n’entraine de défaillance . Elle peut s’exprimer sur deux formes. – Le recouvrement d’erreur consiste à remplacer l’état erroné du système par un état correct ; – Le masquage d’erreur consiste à compter sur la redondance présente dans le système pour que celui-ci continue à délivrer un service correct malgré un état erroné. ISI Kef Recouvrement d’erreur • 19 Deux méthodes sont possibles : – la reprise consiste à remplacer l’état erroné par un état correct dans lequel le système était avant l’ocurrence de l’erreur. – la poursuite consiste à remplacer l’état erroné par un nouvel état correct construit à partir de l’état erroné. ISI Kef Compensation d’erreur 20 • Elle peut prendre deux formes : – la détection et compensation d’erreur. – le masquage d’erreur. • La détection et compensation d’erreur consiste à remplacer le composant erroné par un composant correct. Le masquage d’erreur consiste en une compensation d’erreur. La reprise demande de faire régulièrement de sauvegardes de l’état du système appelé point de reprise. Pour transformer un état erroné en un état correct, on réinitialise l’état du système à partir du dernier point de reprise. La poursuite consiste à construire un nouvel état correct à partir de l’état erroné. • ISI Kef 21 Sûreté de fonctionnement et systèmes répartis • La sûreté de fonctionnement d'un système réparti doit être étudiée soigneusement • Architecture de n sites en coopération – Si le taux de panne d'un site est λ – Chaque site est indispensable – Le taux de panne du système est n λ . • Au contraire une organisation efficace d'un système réparti (techniques de tolérance aux pannes) atteint des niveaux de sûreté de fonctionnement qu'aucune approche d'évitement ne peut atteindre (fiabilité, disponibilité, sécurité) à un coût acceptable. ISI Kef 22 Classification des fautes (1) • Des critères – Origine de la faute • Type de composant : ex. lignes ou sites – Cause de la faute: bénignes ou malignes • Défaillances temporaires ou définitives : si le composant fonctionne il fonctionne correctement ex. ligne transmet le msg ou non / site traite le msg ou non • Défaillances byzantines : comportement arbitraire du composant défaillant. Si le composant fonctionne, il ne fonctionne par correctement à l’insu des autres composants. ex. site répond « blanc » à certains sites et « noir » à d’autres. ISI Kef 23 Classification des fautes (2) – Durée de la faute • Définitive • Temporaire – Détectabilité de la faute • Détectable localement. Réparation par le site lui-même. • Non détectable localement. Réparation nécessite échange de messages. ISI Kef 24 Hiérarchie • Sites – Site mort-né : site n’exécute aucune instruction de son algo. – Site en panne franche : site fonctionne correctement jusqu’à l’apparition de la panne et cesse totalement de fonctionner. – Site byzantin : comportement arbitraire. ISI Kef 25 Typologie (1) • • Panne franche – Composant fonctionne correctement puis panne et cesse immédiatement de fonctionner = panne permanente • Panne franche de site • Coupure d’une ligne => changement de topologie du réseau Panne transitoire – Comportement erroné des composants pendant une certaine période. Comportement correct ensuite. • On peut distinguer si la panne n’apparaît qu’une fois ou plus ou moins périodiquement • Corruption mémoire • Annulation d’une transaction • Perte de messages sur une ligne ISI Kef 26 Typologie (2) • • Panne temporelle – Une sortie correcte associée à une requête entrante se manifeste de façon incohérente avec les spécifications. • Trop tard ou jamais • Trop tôt • Le cas le plus fréquent est celui d'une manifestation trop-tardive. • Ex. : Surcharge d'un processeur, Horloge trop rapide, Délai de transmission trop long. Panne byzantine – Toute panne engendrant une comportement s’écartant des spécifications • Fautes byzantines "naturelles" – erreur physique non détectée (sur une transmission de message, en mémoire, sur une instruction). – erreur logicielle amenant un non vérification des spécifications. • Fautes byzantines "malicieuses" – comportement visant à faire échouer le système (sabotage,virus ....). ISI Kef 27 Spécifications • • Spécifications pour les sites – Si un site n’a pas atteint un état final, il finira par exécuter une autre étape de l’algorithme Spécifications pour les liens de communications – Un site j reçoit un message d’un site i au plus une fois et seulement si i a précédemment envoyé le message à j – Si i a envoyé un message à j et j exécute infiniment des étapes de l’algorithme alors j finira par recevoir le message de i. ISI Kef 28 Algorithmes Robustes • Robuste : Garantir la correction du comportement global du système vis à vis des spécifications de l’algorithme – Spécifications définies en terme d’invariants qui doivent être constamment vérifiés – Aucun dysfonctionnement n’est toléré pour le système – Algorithmes robustes masquent les fautes – Approche dite pessimiste ISI Kef 29 Algorithmes Robustes : exemple comportemental • • Exclusion Mutuelle – Propriétés de sûreté et de vivacité toujours vérifiées – Par exemple, on ne se retrouvera jamais avec une configuration où 2 sites sont en même temps en SC Élection – Un et un seul site sera élu – Par exemple, à aucun moment il existe une configuration où simultanément plusieurs sites décident qu’ils sont élus. ISI Kef 30 Algorithmes auto-stabilisants • Finir par garantir la correction du comportement global du système vis à vis des spécifications de l’algorithme – Système tolère certaines périodes de dysfonctionnement – Algorithmes ne masquent pas les fautes – Approche dite optimiste ISI Kef 31 Algorithmes Auto-stabilisants: exemple comportemental • Exclusion mutuelle – Propriété de sûreté non vérifié pendant un intervalle de temps – Deux sites peuvent se retrouver en SC – MAIS au bout d’un moment le système retrouve un comportement correct (l’algorithme retrouve de lui même un état valide) ISI Kef