Module Systèmes d’exploitation BTS Génie Informatqiue École Normale Supérieure Tétouan Département Informatique Module Systèmes d’exploitation Chapitre 8 Interblocage : Détection et reprise Partie II 2008-2009 Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Revue Quelles sont les quatre conditions pour l’interblocage? Comment peut-on résoudre les interblocages? (quatre façons…) Four conditions: Mutual Exclusion Condition Hold and Wait condition No Preemption condition (can’t take resources away) Circular Wait condition (circular chain of two or more resources) To solve: Ostrich algorithm Detection and Recovery (today!) – Détection et reprise Avoidance by careful resource allocation – Evitement en allouant les ressources de façon prudente Prevention by removing one of the four conditions – Prévention en enlevant une des quatres conditions. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Synopsis Détection de l’interblocage Une ressource de chaque type Plusieurs ressources de chaque type Reprise à partir de la détection d’un interblocage Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Interblocages Pour cette solution du problème de l’interblocage, nous acceptons que les interblocages vont arrivées mais on construit un système pour la détection de l’interblocage, et ceci veut dire que nous devons faire une reprise Est-ce que c’est pratique dans la vie réel? Reprise = réparation= correction = répétition = recommencement Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Un ensemble de sommets V et d’arêtes E V est partitionné dans: P = {P1, P2, …, Pn}, l’ensemble qui consiste de tous les procs dans le système R = {R1, R2, …, Rm}, l’ensemble qui consiste de tous les types de ressources dans le système arête requête – arête dirigée Pi Rk arête affectation – arête dirigée Ri Pk Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Processus Ressource dont il y a 4 exemplaires (instances) Pi a (ou aura) besoin pour terminer d’un exemplaire de Ri, dont il y en a 4 Pj a saisi (et utilise) un exemplaire de Rj Pi Ri Pi Rj Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Regardons un ensemble d’allocations et d’attentes: Processus A tient R et veut S Processus B tient rien mais veut T Processus C tient rien mais veut S Processus D tient U et veut S et T Processus E tient T et veut V Processus F tient W et veut S Processus G tient V et veut U One of the students should draw this up on the blackboard Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Recall that each of the process and resource “spots” are known as nodes and the connectors between them are arcs. Y a-t-il un interblocage? Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Y a-t-il un interblocage? Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Nous supposons l’existence des 3 premières conditions Excl. Mutuelle, saisie et attente, pas de préemption Pour montrer qu’il n’y a pas d’interblocage, nous devons montrer qu’il n’y a pas de cycle, car il y a un processus qui peut terminer sans attendre aucun autre, et puis les autres de suite <P3, P2, P1> est un ordre de terminaison de processus: tous peuvent terminer dans cet ordre Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Cycles: P1 R1 P2 R3 P3 R2 P1 P2 R3 P3 R2 P2 aucun proc ne peut terminer aucune possibilité d’en sortir Y a-t-il un interblocage? Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Graphe allocation ressources avec cycle, mais pas d’ interblocage (pourquoi?) Réponse : Attente circulaire, mais les ressources peuvent devenir disponibles Y a-t-il un interblocage? Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Constations: Les cycles dans le graphe alloc ressources ne signalent pas nécessairement une attente circulaire S’il n’y a pas de cycles dans le graphe, aucun interblocage S ’il y a de cycles: Si seulement une ressource par type, interblocage (pourquoi?!) Si plusieurs ressources par type, possibilité d’interblocage Il faut se poser la question: y-a-t-il un processus qui peut terminer et si oui, quels autres processus peuvent terminer en conséquence? Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources P1 P2 P3 P4 Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Un graphe réduit d'allocation des ressources peut être utilisé pour déterminer si l'interblocage existe ou non. Pour cela, il convient de vérifier les flèches associées à chaque processus et à chaque ressource. Si une ressource ne possède que des départs de flèches (à savoir si elle n'a aucune requête imminente), il faut effacer toutes ses flèches. Si un processus n'a que des arrivées de flèches (ce qui revient à dire que toutes ses requêtes ont été octroyées), il faut également effacer toutes ses flèches . Si un processus a des flèches au départ, mais qu'un point de ressource est disponible pour chacune d'elles (un point sans flèche qui s'éloigne du processus) dans la ressource dans laquelle pointe la flèche, il faut aussi supprimer toutes les flèches du processus. Enseigant : AAMMOU Souhaib
Détection de l’interblocage Graphes d’allocation ressources Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Graphes d’allocation ressources Si, en passant en revue les processus, on trouve au moins un processus dont les flèches peuvent être effacées, il faut revenir et réitérer le processus, puis continuer jusqu'à ce qu'il n'y ait plus de flèche restante ou jusqu'à ce qu'aucune flèche ne puisse plus être retirée des processus. Le système est en interblocage si et seulement s'il ne reste plus de flèche. P1 P2 P3 P4 Enseigant : AAMMOU Souhaib
Détection de l’interblocage Algorithme de banquier Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Algorithme de banquier Comment peut-on implémenter un algorithme qui détecte un interblocage de la même façon que nos yeux? Enseigant : AAMMOU Souhaib
Détection de l’interblocage Algorithme de banquier Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Algorithme de banquier La solution est basée sur les matrices/vecteurs et utilise quatre structures de données pour identifier les conditions d’interblocage m classes de ressource (ie: m=2, imprimante, scanner) Ei instances pour chaque classe de ressource (1i m) E est le vecteur des ressources existantes A est le vecteur des ressources disponibles Deux matrices: allocation courante (C) et demandes (R) Enseigant : AAMMOU Souhaib
Détection de l’interblocage Algorithme de banquier Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Algorithme de banquier Ressources en Existence (E1, E2, E3, ..., Em) Ressources Disponibles (A1, A2, A3, ..., Am) Périphérique apocalyptique Imprimante Scanneur Modem C11 C12 C13 ... C1m C21 C22 C23 C2m . Cn1 Cn2 Cn3 Cnm R11 R12 R13 ... R1m R21 R22 R23 R2m . Rn1 Rn2 Rn3 Rnm So, note that if we add up all of the device allocated from the matrix for a particular device (eg C11+C21+C31, ... + Cn1) and the available resources (A1) then we have the total resources in existence (E1) The i-th row of each matrix shows how many of each resource class has been allocated/requested by each process Columns are for indicating where resources from each class have been allocated/requested Note that those are requests. The don’t represent the maximum resources that a process may ever need, but they are resources which the processes now need or they cannot continue. Matrice d’allocation courante Matrice de demande Allouée au processus 2 Requis par processus 1 Enseigant : AAMMOU Souhaib
Détection de l’interblocage Algorithme de banquier Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Algorithme de banquier Comment utiliser ces structures de données pour détecter les interblocages? Comparaison de vecteurs. Définit AB qui veut dire que chaque élément dans A est moins que ou égal à l’élément correspondant dans B Mathématiquement, AB est vraie ssi AiBi pour 1im Commence par désigner chaque processus comme “non-marqué” Quand un processus est “marqué” cela indique qu’il est capable de compléter et n’est donc pas en interblocage (CE processus en particulier) Enseigant : AAMMOU Souhaib
Détection de l’interblocage Algorithme de banquier Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Algorithme de banquier Comment utiliser ces structures de données…? Maintenant on applique cet algorithme: Cherche pour un processus non marqué, Pi, pour lequel la ième rangé (ième ligne) de R est plus petite ou égale à A Si un tel processus est trouvé, ajoute la ième rangé de C à A, marque le processus et retourne à l’étape 1 Si aucun processus comme cela existe, l’algorithme termine Tout processus non marqué(s) quand l’algorithme termine sont interbloqués Enseigant : AAMMOU Souhaib
Détection de l’interblocage Module Systèmes d'exploitation BTS Génie Informatqiue Détection de l’interblocage Exemple: Est-ce qu’il y a un interblocage ici? Work this one out by using the pen (ctrl-P) Execute in order of 3-2-1 with no deadlock in the end NOTE: Error in book, page 173. It demonstrates how a minor variation in this causes a deadlock to occur. It says, “Suppose that process 2 needs a CD-ROM drive as well as the two tape drives and the plotter. None of the requests can be satisfied, so the entire system is deadlocked.” It should read “process 3” to make sense. Enseigant : AAMMOU Souhaib
Reprise de l’interblocage Module Systèmes d'exploitation BTS Génie Informatqiue Reprise de l’interblocage Maintenant nous pouvons détecter l’interblocage, comment pouvons nous reprendre un fonctionnement normal? Il n’y a pas de bon choix, juste un plus petit mal à partir d’un nombre de candidats Reprise par la préemption Reprise par le retour en arrière Reprise par l’élimination de processus (un ou plusieurs) Enseigant : AAMMOU Souhaib
Reprise de l’interblocage Module Systèmes d'exploitation BTS Génie Informatqiue Reprise de l’interblocage Reprise par la préemption Il peut être possible d’enlever une ressource d’un processus et la donner à un autre Ceci peut nécessiter l’intervention manuel ie: aller à l’imprimante et enlever les feuilles déjà imprimées pour ne pas mélanger les feuilles d’un autre processus Cette méthode est très dépendante du type de ressources – fréquemment difficile sinon impossible écrire à une base de données mais seulement la moitié de la job est faite...peut-on vraiment interrompe ça? Enseigant : AAMMOU Souhaib
Reprise de l’interblocage Module Systèmes d'exploitation BTS Génie Informatqiue Reprise de l’interblocage Reprisse par retour en arrière (rollback) Les processus sont marqué avec des points de reprise (checkpoints) périodiquement. Tout ce que l’on a besoin pour les repartir dans l’état exacte où ils sont est écrit dans un fichier (incluant les ressources assignées) Si un interblocage arrive, un état antécédent peut être restauré et certains processus retardés pour que les ressources ne soient pas demandés de la même façon et qu’un nouveau interblocage arrive Désavantage: Le temps et les ressources prisent pour sauver les états des processus Comment choisir l’intervalle des checkpoints Enseigant : AAMMOU Souhaib
Reprise de l’interblocage Module Systèmes d'exploitation BTS Génie Informatqiue Reprise de l’interblocage Reprise en éliminant des processus Pas élégant, efficace, mais potentiellement dommageable Il vaut mieux d’éliminer un processus dans le cycle s’il ne dérangera pas les autres processus dans le cycle. Alternativement, un autre victime qui tient une ressource requise (qu’il utilise et qu’il ne planifie jamais lâcher n’est pas ‘techniquement’ dans le cycle) peut être éliminé. Meilleur choix: un processus qui peut être ré-exécuté du début sans effets néfastes. Pire choix: processus qui modifie une ressource statique tel qu’une base de données. Best choice: if you’re just giving it some input data and it produces an output file, it can be done again, right? Worst choice: if the process is modifying the database by doing some incrementing then running it again will potentially add too much information to the database Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Quiz Time! Questions? Enseigant : AAMMOU Souhaib