18
GEF 435 Principes des systèmes d’exploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Embed Size (px)

Citation preview

Page 1: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

GEF 435Principes des systèmes d’exploitation

Interblocage(Tanenbaum 3.1, 3.2, 3.3)

Page 2: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

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?

Page 3: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.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)

Page 4: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

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 drivePeut être de l’information, ie: enregistrement dans une

base de donnéesOn peut avoir plusieurs copies des ressources qui

existent, ie, on peut avoir deux CD-ROMs sur un PCPour 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

Page 5: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

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.

Page 6: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Ressources

• En général les ressources non-préemptives sont un requis pour avoir un interblocageCe 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 ressourceRelâche la ressource

Page 7: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

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é

Page 8: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Conditions pour l’interblocage

• Il y a quatre conditions pour engendrer un interblocage. Si une de ces conditions est absente, l’interblocage est impossible

1. Condition d’exclusion mutuelle. Chaque ressource est couramment utilisée par exactement un processus ou n’est pas disponible

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

Page 9: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Conditions pour l’interblocage

• Il y a quatre conditions pour engendrer un interblocage:

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

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

Page 10: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Modélisation de l’interblocage

• Les graphes dirigés peuvent être utilisés pour modéliser les interblocages :

R A

Ressource ‘R’ Processus ‘A’

Ressource ‘R’ donnée au

processus ‘A’

R AProcessus ‘A’ attend pour la ressource ‘R’

Page 11: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

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é

Page 12: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

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

Page 13: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Modélisation de l’interblocage

A demande RB demande SC demande T

• 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

A demande SB demande TC demande Rinterblocage!

Page 14: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

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

Page 15: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Stratégies pour les interblocages

• L’algorithme de l’autrucheAccepter les interblocages et n’avoir aucun plan pour

les réglerEntre amis que veut dire l’écran bleue de la mort de

toute façon?

Page 16: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)
Page 17: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Stratégies pour les interblocages

• L’algorithme de l’autrucheActuellement 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

Page 18: GEF 435 Principes des systèmes dexploitation Interblocage (Tanenbaum 3.1, 3.2, 3.3)

Quiz Time!

Questions?