Télécharger la présentation
Publié parBasile Leclerc Modifié depuis plus de 11 années
1
GEF 435 Principes des systèmes d’exploitation
Interblocage (Tanenbaum 3.1, 3.2, 3.3)
2
Revue Quels facteurs sont pris en ligne de compte quand on veut désigner une grandeur de quantum pour l’ordonnance tourniquet (Round-Robin)? Comment est-ce que l’ordonnance du processus le plus court le prochain fonctionne dans un système interactif? Quantum size: If the quantum size is large then interactive processes will appear sluggish If the quantum size is small then the overhead involved with a context switch becomes unbearable We must consider the average length of CPU burst We must consider the context switch time Shortest process next can work by “aging” the time taken for previous instructions, ie: T0/4 + T1/4 + T2/2
3
Synopsis Ressources Introduction aux interblocages
Conditions pour l’interblocage Modélisation des interblocages Stratégies pour faire face aux interblocages L’algorithme de l’autruche (Plus à la prochaine classe)
4
Ressources Les processus on souvent besoin d’accès exclusifs aux ressources (mémoire, fichiers, périphériques, …) pour exécuter leurs fonctions Peut être du matériel, ie: tape drive Peut être de l’information, ie: enregistrement dans une base de données On peut avoir plusieurs copies des ressources qui existent, ie, on peut avoir deux CD-ROMs sur un PC Pour cette section sur les interblocages, nous référons à la collection d’objets qui peuvent être réservés exclusivement par un processus comme étant des ressources
5
Ressources Les ressources nous viennent en deux saveurs:
Une ressource qui est non-préemptible ne peut pas être enlevé à un processus eg: un écrivain de CD-ROM durant un enregistrement Une ressource qui peut être préemptée est une ressource qui peut être enlevée La mémoire est une ressource. Un processus qui exécute dans la mémoire peut être swapé pour un autre processus pour exécuter Considérez: deux processus où un seul à la fois peur être en mémoire. Si le premier processus obtient l’imprimante et est ensuite swapé; et que par la suite le deuxième processus a besoin de l’imprimante, on pourrait avoir un interblocage. Cependant parce que la mémoire est préemptive la situation peut être résolue en suspendant un des processus.
6
Ressources En général les ressources non-préemptives sont un requis pour avoir un interblocage Ce cours se penche sur les ressources qui ne sont pas préemptives Notre abstraction des processus qui utilisent les ressources: Demande la ressource (bloque si la ressource n’est pas disponible) Utilise la ressource Relâche la ressource Not all operating systems will have a process block if the resource is not available. An error code may be returned instead and the process may sleep and/or busy wait. However, the end result as far as deadlocks are concerned is the same, and for the purposes of this course we will consider processes that request unavailable resources as blocked.
7
Définition de l’interblocage
Définition formelle: Un ensemble de processus sont en interblocage si chaque processus attend pour un événement que seulement un autre processus dans l’ensemble peut causer Donc les processus dans l’ensemble ne vont pas s’éveiller parce qu’ils attendent après d’autres processus dans l’ensemble qui ne s’éveilleront jamais Supposition: chaque processus a un seul fil d’exécution et aucune interruption ne peut éveiller un processus qui est bloqué This thing about the interrupts is important because it otherwise might prevent the problem. In other words, processes will only go on the move again once they have the resource they need.
8
Conditions pour l’interblocage
Il y a quatre conditions pour engendrer un interblocage. Si une de ces conditions est absente, l’interblocage est impossible Condition d’exclusion mutuelle. Chaque ressource est couramment utilisée par exactement un processus ou n’est pas disponible Condition de tenir et attendre.(hold and wait) Les processus qui tiennent des ressources allouées plutôt, peuvent demander de nouvelles ressources (et possiblement attendre) Note that these conditions are kind of hard to get rid of.
9
Conditions pour l’interblocage
Il y a quatre conditions pour engendrer un interblocage: Condition de non-préemption. Les ressources qui ont étés assignées auparavant ne peuvent pas être enlevées de force à un processus. Elles doivent être relâchées explicitement par le processus qui les tient Condition d’attente circulaire. Il doit y avoir une chaîne d’attente circulaire avec deux processus ou plus, chacun d’entre eux attendant pour une ressource tenue par un autre membre dans la chaîne
10
Modélisation de l’interblocage
Les graphes dirigés peuvent être utilisés pour modéliser les interblocages : Ressource ‘R’ donnée au processus ‘A’ R A Ressource ‘R’ Processus ‘A’ Click for the resource, then the process, then the arc, then the second diagram. Processus ‘A’ attend pour la ressource ‘R’ R A
11
Modélisation de l’interblocage
Comment est-ce que les interblocages sont représentés graphiquement? C’est une boucle fermée dans un graphe dirigé Process C is waiting for resource T which is held by process D which is waiting for resource U which is held by process C. Ugh.
12
Modélisation de l’interblocage
Comment peut-on utiliser les graphes dirigés? Ce sont des outils qui nous laissent voir si une séquence d’allocation et relâche de ressources vont entraîner un interblocage Exemple: trois processus, A, B, et C et trois ressources R, S, et T. A peut utiliser R et S, B peut utiliser S et T, et C peut utiliser T et R
13
Modélisation de l’interblocage
A demande R B demande S C demande T A demande S B demande T C demande R interblocage! The important thing to realize is that there are tools that can detect deadlock If the Operating System was ‘watching’ this unfold then it may have blocked B until A was finished with its resources Est-ce que cela nous aide à prévenir les interblocages? Pas encore; plus tard nous allons voir comment cette vérification visuelle peut être implémentée comme un algorithme pour détecter les interblocages
14
Stratégies pour les interblocages
On sait comment les interblocages arrivent, mais que peut-on faire pour les arrêter? Quatre stratégies: Ignorer le problème (L’algorithme de l’autruche) Détection et reprise Laisser l’interblocage arriver, mais les détecter et prendre action pour les corriger Évitement dynamique Allouer les ressources très judicieusement Prévention Empêcher une des quatre conditions discutées plus tôt Those conditions being: Mutual exclusion condition Hold and wait (can hold onto a resource and wait for another) No preemption condition Circular wait condition
15
Stratégies pour les interblocages
L’algorithme de l’autruche Accepter les interblocages et n’avoir aucun plan pour les régler Entre amis que veut dire l’écran bleue de la mort de toute façon? Called Ostrich algorithm from the idea of sticking your head in the sand and pretending that there is no problem at all.
16
This is all about picking your battles correctly though
This is all about picking your battles correctly though...this may not be a situation where a BSOD is not acceptable. However, it’s not as much of a concern on a home PC.
17
Stratégies pour les interblocages
L’algorithme de l’autruche Actuellement une solution très viable Si la probabilité d’interblocage est d’une fois par année, et que le matériel demande d’être redémarré chaque jour, est-ce qu’une solution d’interblocage très robuste est requise (temps et $)? Ce genre d’algorithme est utilisé pour Unix et Windows: Il y a un nombre de processus limité (N) qui peut être démarré. Si X processus ont (N-1) processus enfants qui exécutent, et que cinq processus de plus sont requis par les processus pour finir leurs job, vous avez un interblocage Check the book on this next year.
18
Quiz Time! Questions? What are the four conditions required for deadlock? Hold and wait condition (processes can request multiple resources) Mutual exclusion condition (resources can either be available or held by only one resource) No preemption condition Circular wait condition What are our four strategies for dealing with deadlocks (by name) The ostrich algorithm Deadlock detection Avoidance through careful resource allocation Prevention by disrupting one of the four conditions we have for deadlocks.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.