27
Module Module Systèmes d’exploitation Systèmes d’exploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale École Normale Supérieure Supérieure Tétouan Tétouan Département Département Informatique Informatique 2008-2009

Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

Embed Size (px)

Citation preview

Page 1: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

ModuleModuleSystèmes d’exploitationSystèmes d’exploitation

Chapitre 8

Interblocage : Détection et reprise

Partie II

École Normale SupérieureÉcole Normale SupérieureTétouanTétouan

Département InformatiqueDépartement Informatique

2008-2009

Page 2: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

2

RevueRevue

• Quelles sont les quatre conditions pour l’interblocage?

• Comment peut-on résoudre les interblocages? (quatre façons…)

Page 3: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

3

SynopsisSynopsis

• Détection de l’interblocage– Une ressource de chaque type– Plusieurs ressources de chaque type

• Reprise à partir de la détection d’un interblocage

Page 4: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

4

InterblocagesInterblocages

• 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?

Page 5: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

5

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes 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

Page 6: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

6

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes 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

Pi Rj

Ri

Page 7: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

7

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes 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

Page 8: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

8Y a-t-il un interblocage?

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes d’allocation ressources

Page 9: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

9

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes d’allocation ressources

Y a-t-il un interblocage?

Page 10: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

10

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes 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

Page 11: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

11

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes d’allocation ressources

Y a-t-il un interblocage?

Cycles:

P1 R1 P2 R3 P3 R2 P1

P2 R3 P3 R2 P2

aucun proc ne peut terminer

aucune possibilité d’en sortir

Page 12: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

12

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes d’allocation ressources

Y a-t-il un interblocage?

Page 13: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

13

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes 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?

Page 14: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

14

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes d’allocation ressources

P1

P2 P3 P4

Page 15: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

15

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes 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.

Page 16: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

16

Détection de l’interblocage Détection de l’interblocage Graphes d’allocation ressourcesGraphes 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

Page 17: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

17

Détection de l’interblocageDétection de l’interblocageAlgorithme de banquierAlgorithme de banquier

• Comment peut-on implémenter un algorithme qui détecte un interblocage de la même façon que nos yeux?

Page 18: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

18

Détection de l’interblocageDétection de l’interblocageAlgorithme de banquierAlgorithme 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)

Page 19: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

19Requis par processus 1

C11 C12 C13 ... C1m

C21 C22 C23 ... C2m...

......

...Cn1 Cn2 Cn3 ... Cnm

R11 R12 R13 ... R1m

R21 R22 R23 ... R2m...

......

...Rn1 Rn2 Rn3 ... Rnm

Ressources en Existence(E1, E2, E3, ..., Em)

Ressources Disponibles(A1, A2, A3, ..., Am)

Matrice d’allocation courante

Matrice de demande

Impr

iman

teS

cann

eur

Mod

em

Pér

iphé

rique

apoc

alyp

tique

Allouée au processus 2

Détection de l’interblocageDétection de l’interblocage Algorithme de banquierAlgorithme de banquier

Page 20: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

20

Détection de l’interblocageDétection de l’interblocageAlgorithme de banquierAlgorithme 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)

Page 21: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

21

Détection de l’interblocageDétection de l’interblocageAlgorithme de banquierAlgorithme de banquier

• Comment utiliser ces structures de données…?

– Maintenant on applique cet algorithme:1. Cherche pour un processus non marqué, Pi, pour lequel la

ième rangé (ième ligne) de R est plus petite ou égale à A

2. Si un tel processus est trouvé, ajoute la ième rangé de C à A, marque le processus et retourne à l’étape 1

3. Si aucun processus comme cela existe, l’algorithme termine

– Tout processus non marqué(s) quand l’algorithme termine sont interbloqués

Page 22: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

22

Détection de l’interblocageDétection de l’interblocage

• Exemple: Est-ce qu’il y a un interblocage ici?

Page 23: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

23

Reprise de l’interblocageReprise 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)

Page 24: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

24

• 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?

Reprise de l’interblocageReprise de l’interblocage

Page 25: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

25

Reprise de l’interblocageReprise 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

Page 26: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

26

Reprise de l’interblocageReprise 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.

Page 27: Module Systèmes dexploitation Chapitre 8 Interblocage : Détection et reprise Partie II École Normale Supérieure Tétouan Département Informatique 2008-2009

27

Quiz Time!Quiz Time!

Questions?