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



Documents pareils
Conception des systèmes répartis

Chapitre 4 : Exclusion mutuelle

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Cours de Systèmes d Exploitation

NOTIONS DE RESEAUX INFORMATIQUES

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

Partie 7 : Gestion de la mémoire

Windows Internet Name Service (WINS)

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

Chapitre 1 : Introduction aux bases de données

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

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

1 LE L S S ERV R EURS Si 5

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

Le modèle client-serveur

Systèmes et algorithmes répartis

Introduction aux algorithmes répartis

Guide d'utilisation du Serveur USB

Installation d'un serveur DHCP sous Windows 2000 Serveur

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

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

Initiation au HPC - Généralités

CH.3 SYSTÈMES D'EXPLOITATION

Gestion répartie de données - 1

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

L exclusion mutuelle distribuée

Fiche Technique Windows Azure

Cours Bases de données

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

SafeKit. Sommaire. Un livre blanc de Bull Evidian

La continuité de service

Implémentation des SGBD

Concept de machine virtuelle

La haute disponibilité de la CHAINE DE

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

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Présentation du modèle OSI(Open Systems Interconnection)

Cours de Génie Logiciel

LE PROBLEME DU PLUS COURT CHEMIN

Module BDR Master d Informatique (SAR)

Métriques de performance pour les algorithmes et programmes parallèles

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

Présentation d'un Réseau Eole +

NFP111 Systèmes et Applications Réparties

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

VMWare Infrastructure 3

Préparation à l installation d Active Directory

Les diagrammes de modélisation

Présentation de Active Directory

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

Projet : PcAnywhere et Le contrôle à distance.

Cisco Certified Network Associate

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

Introduction aux applications réparties

MANUEL PROGRAMME DE GESTION DU CPL WI-FI

Qu'est-ce que c'est Windows NT?

Programmation Objet - Cours II

Module 0 : Présentation de Windows 2000

Ebauche Rapport finale

Itium XP. Guide Utilisateur

Didacticiel de mise à jour Web

Messagerie asynchrone et Services Web

VRM Monitor. Aide en ligne

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

Software Engineering and Middleware A Roadmap

Définition. Caractéristiques. - Du partage des ressources : espace de stockage, imprimantes, lignes de communication.

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

Oléane VPN : Les nouvelles fonctions de gestion de réseaux. Orange Business Services

Cours CCNA 1. Exercices

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

Le travail collaboratif et l'intelligence collective

ITIL V3. Exploitation des services : Les fonctions

Systemes d'exploitation des ordinateurs

//////////////////////////////////////////////////////////////////// Administration systèmes et réseaux

Fiche de l'awt Le modèle peer to peer

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Installation d un serveur DHCP sous Gnu/Linux

L apprentissage automatique

PARAGON SYSTEM BACKUP 2010

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

Version en date du 01 avril 2010

But de cette présentation

Virtualiser ou ne pas virtualiser?

Ordonnancement temps réel

1. Introduction à la distribution des traitements et des données

Administration de systèmes

Backup Exec 2014 Management Pack for Microsoft SCOM. - Guide de l'utilisateur

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Nouvelles Plateformes Technologiques

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Les Réseaux sans fils : IEEE F. Nolot

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

Cours Programmation Système

Network musical jammin

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

Transcription:

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

Introduction aux systèmes répartis 2 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. - 2013/2014

Introduction aux systèmes répartis 3 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. - 2013/2014

Introduction aux systèmes répartis 4-2013/2014

Introduction aux systèmes répartis 5-2013/2014

Exemple de Système Réparti : Un intranet 6 Source : Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001-2013/2014

Pourquoi une informatique répartie 7 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. - 2013/2014

Inconvénients 8 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. - 2013/2014

Définitions (1) 9 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) - 2013/2014

- 2013/2014 10

Classification de Flynn 11 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. - 2013/2014

Définitions (1) 12 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. - 2013/2014

Définitions (2) 13 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. - 2013/2014

Exemples de SRs 14 WWW, FTP, Mail. Guichet de banque, agence de voyage. Téléphones portables (et bornes). Télévision interactive. Agents intelligents. Robots footballeurs. - 2013/2014

Les différentes structures 15 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. - 2013/2014

Les différentes structures 16 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 de différentes considérations stratégiques, humaines et professionnelles. - 2013/2014

Les différentes structures 17 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). - 2013/2014

Les différentes structures 18 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. - 2013/2014

Les différentes structures 19 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. - 2013/2014

Comparaison entre différentes architectures Comparaison des deux architectures de Systèmes de haute performance et de Systèmes distribués 20 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. - 2013/2014

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. 21 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). - 2013/2014

Comparaison entre différentes architectures Comparaison des deux architectures centralisée et distribuée 22 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. - 2013/2014

- 2013/2014 23

- 2013/2014 24

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 Les users sont au courant de la multiplicité des Processeurs Réseau LAN + WAN Les users ont l impression d être dans un système centralisé Réseau LAN Les users sont au courant de la multiplicité des Machines - 2013/2014

Identification des problèmes 26 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 - 2013/2014

Tolérance aux pannes 27 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. - 2013/2014

Passage à l échelle 28 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. - 2013/2014

Nommage et accès aux applications 29 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, - 2013/2014

Intégration de l existant 30 En anglais : legacy. Connexion sur toutes les ressources d une entreprise. Interopérabilité des applications. Transactions réparties. - 2013/2014

Déploiement des applications 31 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? - 2013/2014

Sécurité et authentification 32 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. - 2013/2014

Disponibilité d une application 33 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. - 2013/2014

Notions de Middleware 34 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 - 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 - 2013/2014

Types de Middleware 36 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 - 2013/2014

Historique et état de l art 37 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 - 2013/2014

Le modèle Client-Serveur (1/2) 38 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 - 2013/2014

Le modèle Client-Serveur (2/2) 39 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,... - 2013/2014

Du centralisé vers le réparti 40-2013/2014

Gestion du temps dans les SRs Mehrez Boulares, Nour Ben Yahia ISI KEF 2013/2014

INTRODUCTION 2 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.

INTRODUCTION 3 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.

INTRODUCTION 4 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.

PROBLEMATIQUE 5 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.

PROBLEMATIQUE 6 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é.

PROBLEMATIQUE 7 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.

CONSTRUCTION D UN ÉTAT GLOBAL 8 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

LE MODÈLE DE CALCUL 9 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 C i j.

LE MODÈLE DE CALCUL 10 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

ETAT GLOBAL 11 Chaque processus et chaque canal possède à tout moment un état local. L état local «el i» d un processus «P i» résulte de son état initial et de la séquence d événements dont ce processus a été le siège. L état EC ij d un canal C ij est l ensemble des messages en transit sur ce canal, c est à dire qui ont été émis par le processus P i et n ont pas encore été reçus par le processus P j. 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.

ETAT GLOBAL 12 Schématiquement on a, à ce niveau de description (m désigne un message): événement interne sur P i : provoque la transition de el i à el' i, états avant et après l événement émission de m par P i sur C i j (cet événement est noté émission i (m)): provoque la transition de el i à el' i et l affectation EC i j := EC i j U {m} réception de m par P i sur C j i (cet événement est noté réceptioni(m)): provoque la transition de el i à el' i et l affectation EC j i := EC j i \ {m}.

ETAT GLOBAL 13 Chacun de ces événements est supposé atomique. On dit qu un événement e est capté dans l état local el i d un processus P i si e appartient à la séquence d événements ayant conduit P i dans l état el i. 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 P i ni par son extrémité P j (P i - resp. P j - 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

ETAT GLOBAL 14 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.

ETAT GLOBAL 15 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).

ETAT GLOBAL 16 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 EC kj 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).

NOTION DE PRÉCÉDENCE CAUSALE 17 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.

NOTION DE PRÉCÉDENCE CAUSALE 18 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.

NOTION DE PRÉCÉDENCE CAUSALE 19

NOTION DE PRÉCÉDENCE 20 CAUSALE 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.

NOTION DE PRÉCÉDENCE CAUSALE 21 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

HORLOGE LOGIQUE 22 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.

HORLOGE LOGIQUE 23 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.

HORLOGE LOGIQUE SCALAIRE 24 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.

HORLOGE LOGIQUE SCALAIRE 25

HORLOGE LOGIQUE SCALAIRE 26

HORLOGE LOGIQUE SCALAIRE 27 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).

HORLOGE LOGIQUE SCALAIRE 28 La règle de comparaison des dates est alors :

HORLOGE LOGIQUE SCALAIRE 29 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,

HORLOGE LOGIQUE VECTORIELLE 30 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:

HORLOGE LOGIQUE VECTORIELLE 31

HORLOGE LOGIQUE VECTORIELLE 32

HORLOGE LOGIQUE VECTORIELLE 33 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).

HORLOGE LOGIQUE VECTORIELLE 34 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]

HORLOGE LOGIQUE VECTORIELLE 35 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 :

HORLOGE LOGIQUE VECTORIELLE 36 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]).

Correction TD 37

Correction TD 38 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}

Correction TD 39 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}

Correction TD 40

Correction TD 41

Correction TD 42

Accès concurrent dans les SR Mehrez Boulares, Nour Ben Yahia

Les accès concurrents : rappels 2 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

Les accès concurrents : rappels 3 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

Les états d'un processus 4 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

Propriétés d'un algorithme d'exclusion mutuelle 5 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.

Solutions 6 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.

Solutions matérielles 7 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.

Solutions logicielles 8 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.

Les accès concurrents : les sémaphores 9 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 Finsi. Alors s = s -1 Sinon s'endormir 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 Finsi. Alors le libérer Sinon s =s+1

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 10 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

Définitions 11 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).

Exemple 12 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 P 1 vers le processus P 2 : Sauvegarder le contexte du processus P 1 quelque part en mémoire (usuellement sur la pile de P 1 ). Retrouver le contexte de P 2 en mémoire (usuellement sur la pile de P 2 ). Restaurer le contexte de P 2 dans le processeur, la dernière étape de la restauration consistant à reprendre l'exécution de P 2 à son point de dernière exécution.

Solution du coordinateur 13 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

Solution du coordinateur 14 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

Solution du coordinateur 15 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

Algorithme à base de jeton 16 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

Algorithmes 17 Algorithme de [Le Lann, 77] Algorithme de [ Ricart & Agrawala, 83 ]

Les accès concurrents : solutions réparties (en théorie) 18 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 )

Méthodes par permission 19 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

Les accès concurrents: l'algorithme de Lamport 20 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.

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. 21

l'algorithme de Lamport 22

l'algorithme de Lamport 23 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).

l'algorithme de Lamport 24 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).

Exemple 25 Dans cet exemple impliquant trois sites, les sites S 1 et S 2 veulent entrer en section critique alors que leurs horloges scalaires ont respectivement 3 et 2 comme valeur. Les messages envoyés par S 1 à S 2 et S 3 sont donc estampillés 3.1. Les messages envoyés par S 2 à S 1 et S 3 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.

l'algorithme de Lamport 26

l'algorithme de Lamport 27

l'algorithme de Lamport 28

l'algorithme de Lamport 29

l'algorithme de Lamport 30

l'algorithme de Lamport 31

l'algorithme de Lamport 32

l'algorithme de Lamport 33

l'algorithme de Lamport 34

l'algorithme de Lamport 35

l'algorithme de Lamport 36

Algorithmes 37 Algorithme de [Ricart & Agrawala, 81] [Carvalho & Roucairol, 83] [Chandy & Misra, 84]

Inter blocage dans les SRs Mehrez Boulares, Nour Ben Yahia

Inter blocage: introduction 2 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

Inter blocage: introduction 3 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é

Inter blocage : introduction 4 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.

Inter blocage : introduction 5 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.

Modélisation des inters blocages 6 Processus Ressource possédant 4 exemplaires (instances) Pi demande un exemplaire de Ri, bloqué en attente de la ressource Pj détient un exemplaire de Rj ou Rj est affecté à Pj

Modélisation des inters blocages 7

Modélisation des inters blocages 8

Explication des graphes 9 - 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 :

Explication des graphes 10 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).

Explication des graphes 11 Simplification possible lorsqu un processus demande une ressource spécifique identifiée : Sommet processus ; Arc étiqueté par la ressource demandée.

Inter blocage : Solutions 12 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.

Inter blocage : Solutions 13 - Problématique différente : Détection difficile. Respect de l ordre d accès aux ressources, difficile.

Solution basée sur la prévention 14 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).

Solution basée sur la prévention 15 - 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.

Solution basée sur la prévention 16 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.

Wait / Die 17 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.