8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Module Systèmes d’exploitation
Module Systèmes d’exploitation
Contrôle de la concurrence
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Structure du logiciel dE/S Partie II (Tanenbaum & 5.3.4)
Connexité.
Introduction à l’Algorithmique
Synchronisation des processus père - fils
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
Critère d’ordonnancement en temps réel Partie III
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitations
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes dexploitation Communication Interprocessus (CIP) II (Tanenbaum 2.3)
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 435 Principes des systèmes d’exploitation
GEF 243B Programmation informatique appliquée
ALLOCATION DE LEAU La GIRE pour les Organismes de Bassins Fluviaux.
Synchronisation des Processus
PLAN du COURS Introduction Structure des Systèmes Informatiques
Chapitre 3 Interblocages
Exécutif Temps réel. Limitation des système classiques Rappels Mise en œuvre lourde des communications entre processus Problème de prédictibilité avec.
Mémoire & Processus Cours SE - SRC
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
6.1 URDL22005 Systèmes dexploitation Ordonnancement du CPU Concepts de Base Critères dOrdonnancement Algorithmes dOrdonnancement Ordonnancement Multi-Processeur.
Gestion de la Mémoire Bases Swapping Allocation Contigue Pagination
Parcours de formation SIN-7
Synchronisation et communication entre processus
Administration de SharePoint
Serveurs Partagés Oracle
Introduction à la conception de Bases de Données Relationnelles
Atomicité Transactions Atomiques Recouvrement à Base de Journal
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2001 © Julie Dufort, M. Ing. Chapitre 3 - ajout Systèmes de fichiers.
Interblocage = impasse (Deadlock)
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
5.1 URDL22005 Systèmes dexploitation Threads Vue dEnsemble Modèles de Multithreading Problèmes des Threads Pthreads Threads Windows XP Threads Linux Threads.
Structures des Systèmes d’Exploitation
IFT-2000: Structures de données Les graphes Dominic Genest, 2009.
IFT Complexité et NP-complétude
Programmation concurrente
Module 6 - Interblocage = impasse (Deadlock)
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
3 () CHAPITRE Les créances Le crédit est un excellent moyen daugmenter son chiffre daffaires, et il est très difficile pour une entreprise de léviter complètement.
Universté de la Manouba
Chapitre 3 Interblocages 3.1. Ressources
Programmation dynamique
GPA750 – Gestion de Projets
Synchronisation Classique
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
ANALYSE METHODE & OUTILS
Les principes de la modélisation de systèmes
Gestion de processus Corrigé TD 1 EFREI I
Cours de Systèmes d’exploitations
Interactions entre Processus
Foued Mnasri Weal Rekik
A) Avec l’ordonnancement Rate Monotonic les priorités des processus suivent l’ordre inverse des périodes : P1 est prioritaire sur P2, lui-même prioritaire.
Doan Chien Thang Aôut,2008.  La vue d'ensemble des systèmes d'exploitation  Les processus et les fils  Gestion de la mémoire  Le système des fichiers.
Les Processus.
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
Systèmes d’exploitation
Interblocage = impasse (Deadlock)
Organisation de la mémoire pour le langage minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
1 UNIX AVANCE Yves PAGNOTTE – Janvier – PROCESSUS ET RESSOURCES.
Chap 81 Interblocage = impasse (Deadlock) Chapitre 8
Transcription de la présentation:

8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages Evitement des Interblocages Détection des Interblocages Recouvrement des Interblocages Approche Combinée pour la Gestion des Interblocages

8.2 URDL22005 Systèmes dexploitation Le Problème dInterblocage Un ensemble de processus bloqués chacun ayant une ressource et attendant lacquisition dune ressource déjà utilisée par un autre processus dans lensemble. Exemple Système a 2 disques P 1 et P 2 chacun utilise un disque et chacun a besoin dun autre. Exemple sémaphores A et B, initialisés à 1 P 0 P 1 wait (A);wait(B) wait (B);wait(A)

8.3 URDL22005 Systèmes dexploitation Exemple de Pont de Passage Trafic en une seule direction. Chaque section du pont peut être considérée comme une ressource. Si un interblocage a lieu, il peut être résolu si une voiture fait marche arrière (ressources relâchées et rollback). Plusieurs voitures pourraient avoir besoin de faire marche arrière en cas dinterblocage. Famine possible.

8.4 URDL22005 Systèmes dexploitation Modèle Système Types de Ressources R 1, R 2,..., R m Cycles CPU, Espace Mémoire, Périphériques dE/S Chaque ressource de type R i a W i instances. Chaque processus utilise une ressource comme suit: requête utilisation libération

8.5 URDL22005 Systèmes dexploitation Caractérisation de lInterblocage Exclusion Mutuelle: seulement un processus à un certain moment peut utiliser une ressource. Hold and wait: un processus ayant au moins une ressource est en attente de ressources additionnelles utilisées par dautres processus. Pas de préemption: une ressource ne peut être relâchée que librement par le processus lutilisant. Attente circulaire: il existe un ensemble {P 0, P 1, …, P 0 } de processus en attente tel que P 0 est en attente dune ressource retenue par P 1, P 1 en attente dune ressource retenue par P 2, …, P n–1 en attente dune ressource retenue par P n, et P 0 en attente dune ressource retenue par P 0. Interblocage si les 4 conditions sont vérifiées simultanément.

8.6 URDL22005 Systèmes dexploitation Graphe dAllocation de Ressources V est partitionné entre 2 types: P = {P 1, P 2, …, P n }, lensemble consistant de tous les processus dans le système. R = {R 1, R 2, …, R m }, lensemble des ressources dans le système. Vecteur requête – vecteur orienté P 1 R j Vecteur daffectation – vecteur dirigé R j P i Un ensemble de noeuds V et un ensemble de vecteurs E.

8.7 URDL22005 Systèmes dexploitation Graphe dAllocation Mémoire (Cont.) Processus Types de Ressourcesavec 4 instances P i demande une instance une instance of R j P i retient une instance de R j PiPi PiPi RjRj RjRj

8.8 URDL22005 Systèmes dexploitation Exemple dun Graphe dAllocation de Ressources

8.9 URDL22005 Systèmes dexploitation Graphe dAllocations de Ressources avec Interblocage

8.10 URDL22005 Systèmes dexploitation Graphe dAllocation Ressources avec cycle mais sans Interblocage

8.11 URDL22005 Systèmes dexploitation Faits Basiques Si le graphe ne contient pas de cycles pas dinterblocage. Si le graphe contient un cycle Si seulement on a une instance par ressource, alors interblocage. Si plusieurs instances par ressource, possibilité dinterblocage.

8.12 URDL22005 Systèmes dexploitation Méthodes pour Gérer les Interblocages Assurer que le système nentre jamais dans un état dinterblocage. Permettre au système dentrer en interblocage et récupérer. Ignorer le problème et prétendre que les interblocages narrivent jamais sur le système; utilisé par la plupart des OSs, UNIX compris.

8.13 URDL22005 Systèmes dexploitation Prévention des Interblocages Exclusion Mutuelle – pas demandée pour des ressources partagées; doit tenir pour des ressources non partagées. Hold and Wait – doit garantir que quand un processus demande une ressource, il ne doit pas avoir une autre ressource. Requière quun processus demande et ait toutes ses ressources avant le début de son exécution, ou permettre au processus de demander des ressources seulement si le processus nen na pas déjà. Utilisation des ressources basse; famine possible. Restraindre les façons dont les requêtes peuvent être émises.

8.14 URDL22005 Systèmes dexploitation Prévention des Interblocages (Cont.) Pas de préemption – Si un processus qui a déjà des ressources demande dautres ressources qui ne sont pas directement allouables, alors toutes ses ressources sont liberés. Les ressources préemptées sont ajoutées à la liste de ressources que le processus attend. Le processus sera relancé seulement quand il pourra avoir lensemble de ses anciennes ressources, ainsi que les nouvelles demandées. Attente Circulaire – impose un ordre total sur tous les types de ressources et demande que chaque processus fasse des requêtes de ressources dans un ordre.

8.15 URDL22005 Systèmes dexploitation Evitement des Interblocages Le plus simple et le plus utile des modèles demande que chaque processus déclare le nombre maximum de ressources de chaque type quil pourrait utiliser. Lalgorithme dévitement examine dynamiquement létat des allocations de ressources pour sassurer quil ne peut pas y avoir dattente circulaire. Létat des allocations de ressources est défini par le nombre de ressources libres et allouées, et le maximum de requêtes de chaque processus. Demande que le système ait des informations disponibles.

8.16 URDL22005 Systèmes dexploitation Etat Sûr Quand un processus demande une ressource disponible, le système doit décider si lallocation directe laisse le système dans un état sûr. Un système est dans un état sûr sil existe une séquence sûre pour tous les procesus. La séquence est sûre si pour chaque Pi, les ressources que Pi peut encore demander peuvent être satisfaites par les ressources disponibles + ressources allouées aux processus Pj, avec j<I. Si les besoins de P i en ressources ne sont pas immédiatement disponibles, alors P i peut attendre que tous les P j soient terminés. Quand P j se termine, P i peut obtenir les ressources, sexécuter, retourner les ressources allouées, puis se terminer. Quand P i se termine, P i+1 peut obtenir ses ressources, et ainsi de suite.

8.17 URDL22005 Systèmes dexploitation Faits de Base Si un système est dans un état sûr pas dinterblocage. Si un système est dans un état non sûr possibilité dinterblocage. Evitement assurer que le système nentrera jamais dans un état non sûr.

8.18 URDL22005 Systèmes dexploitation Etats Sûrs, Non Sûrs, Interblocage s

8.19 URDL22005 Systèmes dexploitation Resource-Allocation Graph Algorithm Claim edge P i R j indicated that process P j may request resource R j ; represented by a dashed line. Claim edge converts to request edge when a process requests a resource. When a resource is released by a process, assignment edge reconverts to a claim edge. Resources must be claimed a priori in the system.

8.20 URDL22005 Systèmes dexploitation Resource-Allocation Graph For Deadlock Avoidance

8.21 URDL22005 Systèmes dexploitation Unsafe State In Resource-Allocation Graph

8.22 URDL22005 Systèmes dexploitation Bankers Algorithm Multiple instances. Each process must a priori claim maximum use. When a process requests a resource it may have to wait. When a process gets all its resources it must return them in a finite amount of time.

8.23 URDL22005 Systèmes dexploitation Data Structures for the Bankers Algorithm Available: Vector of length m. If available [j] = k, there are k instances of resource type R j available. Max: n x m matrix. If Max [i,j] = k, then process P i may request at most k instances of resource type R j. Allocation: n x m matrix. If Allocation[i,j] = k then P i is currently allocated k instances of R j. Need: n x m matrix. If Need[i,j] = k, then P i may need k more instances of R j to complete its task. Need [i,j] = Max[i,j] – Allocation [i,j]. Let n = number of processes, and m = number of resources types.

8.24 URDL22005 Systèmes dexploitation Safety Algorithm 1.Let Work and Finish be vectors of length m and n, respectively. Initialize: Work = Available Finish [i] = false for i - 1,3, …, n. 2.Find and i such that both: (a) Finish [i] = false (b) Need i Work If no such i exists, go to step 4. 3.Work = Work + Allocation i Finish[i] = true go to step 2. 4.If Finish [i] == true for all i, then the system is in a safe state.

8.25 URDL22005 Systèmes dexploitation Resource-Request Algorithm for Process P i Request = request vector for process P i. If Request i [j] = k then process P i wants k instances of resource type R j. 1.If Request i Need i go to step 2. Otherwise, raise error condition, since process has exceeded its maximum claim. 2.If Request i Available, go to step 3. Otherwise P i must wait, since resources are not available. 3.Pretend to allocate requested resources to P i by modifying the state as follows: Available = Available = Request i ; Allocation i = Allocation i + Request i ; Need i = Need i – Request i;; If safe the resources are allocated to P i. If unsafe P i must wait, and the old resource-allocation state is restored

8.26 URDL22005 Systèmes dexploitation Example of Bankers Algorithm 5 processes P 0 through P 4 ; 3 resource types A (10 instances), B (5instances, and C (7 instances). Snapshot at time T 0 : AllocationMaxAvailable A B CA B C A B C P P P P P

8.27 URDL22005 Systèmes dexploitation Example (Cont.) The content of the matrix. Need is defined to be Max – Allocation. Need A B C P P P P P The system is in a safe state since the sequence satisfies safety criteria.

8.28 URDL22005 Systèmes dexploitation Example P 1 Request (1,0,2) (Cont.) Check that Request Available (that is, (1,0,2) (3,3,2) true. AllocationNeedAvailable A B CA B CA B C P P P P P Executing safety algorithm shows that sequence satisfies safety requirement. Can request for (3,3,0) by P4 be granted? Can request for (0,2,0) by P0 be granted?

8.29 URDL22005 Systèmes dexploitation Deadlock Detection Allow system to enter deadlock state Detection algorithm Recovery scheme

8.30 URDL22005 Systèmes dexploitation Single Instance of Each Resource Type Maintain wait-for graph Nodes are processes. P i P j if P i is waiting for P j. Periodically invoke an algorithm that searches for a cycle in the graph. An algorithm to detect a cycle in a graph requires an order of n 2 operations, where n is the number of vertices in the graph.

8.31 URDL22005 Systèmes dexploitation Resource-Allocation Graph and Wait-for Graph Resource-Allocation GraphCorresponding wait-for graph

8.32 URDL22005 Systèmes dexploitation Several Instances of a Resource Type Available: A vector of length m indicates the number of available resources of each type. Allocation: An n x m matrix defines the number of resources of each type currently allocated to each process. Request: An n x m matrix indicates the current request of each process. If Request [i j ] = k, then process P i is requesting k more instances of resource type. R j.

8.33 URDL22005 Systèmes dexploitation Detection Algorithm 1.Let Work and Finish be vectors of length m and n, respectively Initialize: (a) Work = Available (b)For i = 1,2, …, n, if Allocation i 0, then Finish[i] = false;otherwise, Finish[i] = true. 2.Find an index i such that both: (a)Finish[i] == false (b)Request i Work If no such i exists, go to step 4.

8.34 URDL22005 Systèmes dexploitation Detection Algorithm (Cont.) 3.Work = Work + Allocation i Finish[i] = true go to step 2. 4.If Finish[i] == false, for some i, 1 i n, then the system is in deadlock state. Moreover, if Finish[i] == false, then P i is deadlocked. Algorithm requires an order of O(m x n 2) operations to detect whether the system is in deadlocked state.

8.35 URDL22005 Systèmes dexploitation Example of Detection Algorithm Five processes P 0 through P 4 ; three resource types A (7 instances), B (2 instances), and C (6 instances). Snapshot at time T 0 : AllocationRequestAvailable A B C A B C A B C P P P P P Sequence will result in Finish[i] = true for all i.

8.36 URDL22005 Systèmes dexploitation Example (Cont.) P 2 requests an additional instance of type C. Request A B C P P P P P State of system? Can reclaim resources held by process P 0, but insufficient resources to fulfill other processes; requests. Deadlock exists, consisting of processes P 1, P 2, P 3, and P 4.

8.37 URDL22005 Systèmes dexploitation Detection-Algorithm Usage When, and how often, to invoke depends on: How often a deadlock is likely to occur? How many processes will need to be rolled back? one for each disjoint cycle If detection algorithm is invoked arbitrarily, there may be many cycles in the resource graph and so we would not be able to tell which of the many deadlocked processes caused the deadlock.

8.38 URDL22005 Systèmes dexploitation Recovery from Deadlock: Process Termination Abort all deadlocked processes. Abort one process at a time until the deadlock cycle is eliminated. In which order should we choose to abort? Priority of the process. How long process has computed, and how much longer to completion. Resources the process has used. Resources process needs to complete. How many processes will need to be terminated. Is process interactive or batch?

8.39 URDL22005 Systèmes dexploitation Recovery from Deadlock: Resource Preemption Selecting a victim – minimize cost. Rollback – return to some safe state, restart process for that state. Starvation – same process may always be picked as victim, include number of rollback in cost factor.

8.40 URDL22005 Systèmes dexploitation Combined Approach to Deadlock Handling Combine the three basic approaches prevention avoidance detection allowing the use of the optimal approach for each of resources in the system. Partition resources into hierarchically ordered classes. Use most appropriate technique for handling deadlocks within each class.

8.41 URDL22005 Systèmes dexploitation Traffic Deadlock for Exercise 8.4