La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

GEF 435 Principes des systèmes dexploitation Interblocage: Détection et reprise (Tanenbaum 3.4)

Présentations similaires


Présentation au sujet: "GEF 435 Principes des systèmes dexploitation Interblocage: Détection et reprise (Tanenbaum 3.4)"— Transcription de la présentation:

1 GEF 435 Principes des systèmes dexploitation Interblocage: Détection et reprise (Tanenbaum 3.4)

2 Revue Quelles sont les quatre conditions pour linterblocage? Comment peut-on résoudre les interblocages? (quatre façons…)

3 Synopsis Détection de linterblocage Une ressource de chaque type Plusieurs ressources de chaque type Reprise à partir de la détection dun interblocage

4 Interblocages Pour cette solution du problème de linterblocage, nous acceptons que les interblocages vont arriver mais on construit un système pour la détection de linterblocage, et ceci veut dire que nous devons faire une reprise Est-ce que cest pratique dans la vie réel?

5 Détection de linterblocage Considérez des systèmes avec une seule instance de chaque type de ressources Par exemple, une imprimante, un scanneur et un médium magnétique Les instances multiples de chaque type seront considérées plus tard dans ce cours Nous avons déjà utilisé les graphes dirigées pour voir facilement où une boucle existe, peut-on implémenter un algorithme pour faire la même chose?

6 Détection de linterblocage Regardons un ensemble dallocations et dattentes: 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

7 Détection de linterblocage

8 Comment peut-on implémenter un algorithme qui détecte un interblocage de la même façon que nos yeux? Crée une liste de nœuds (appelée L) et suit toute les arcs à partir de chaque nœud, ajoutant les nœuds à la liste quand ils sont rencontrés Si un nœud apparaît deux fois dans la liste, nous savons que nous avons suivit une boucle! Les détails sur la prochaine diapo, ne changez pas de poste!

9 Détection de linterblocage 1) Pour chaque nœud, N, dans le graphe, faites ces étapes en commençant avec le nœud N: 2) Initialise L comme une liste vide et les arcs non marqués 3) Ajoute le nœud courrant à la fin de L et vérifie si N apparaît deux fois. Si oui, le graphe contient un cycle et lalgorithme termine 4) A partir de ce nœud, regarde si il y a des arcs sortants qui ne sont pas marqués. Si oui va à létape 5, sinon va à létape 6 5) Prend aléatoirement un arc qui nest pas marqué et marque le. Ensuite suit le jusquau prochain nœud qui devient courrant et va à létape 3 6) Lalgorithme est à un impasse. Enlève le nœud courrant de la liste, et retourne au nœud précédent (celui duquel tu proviens) et retourne à létape 4. Si cest le nœud initial (N) le graphe ne contient pas ce cycles

10 Détection de linterblocage (On fait lalgorithme ici pas de free lunch)

11 Détection de linterblocage Cette solution pour la détection des interblocages marche pour des instances uniques de ressources, mais que ce passe-til si nous avons des instances multiples? Une solution est basée sur les matrices/vecteurs et utilise quatre structures de données pour identifier les conditions dinterblocage m classes de ressource (ie: m=2, imprimante, scanner) E i instances pour chaque classe de ressource (1 i m) E est le vecteur des ressources existantes A est le vecteur des ressources disponibles Deux matrices: allocation courante (C) et demandes (R)

12 Requis par processus 1 Détection de linterblocage C 11 C 12 C 13...C 1m C 21 C 22 C 23...C 2m C n1 C n2 C n3...C nm R 11 R 12 R 13...R 1m R 21 R 22 R 23...R 2m R n1 R n2 R n3...R nm Ressources en Existence (E 1, E 2, E 3,..., E m ) Ressources Disponibles (A 1, A 2, A 3,..., A m ) Matrice dallocation courante Matrice de demande Imprimante Scanneur Modem Périphérique apocalyptique Allouée au processus 2

13 Détection de linterblocage Comment utiliser ces structures de données pour détecter les interblocages? Comparaison de vecteurs. Définit A B qui veut dire que chaque élément dans A est moins que ou égal à lélément correspondant dans B Mathématiquement, A B est vraie ssi A i B i pour 1 i m Commence par désigner chaque processus comme non-marqué Quand un processus est marqué cela indique quil est capable de compléter et nest donc pas en interblocage (CE processus en particulier)

14 Détection de linterblocage Comment utiliser ces structures de données…? Maintenant on applique cet algorithme: 1) Cherche pour un processus non marqué, P i, pour lequel la i ème rangé 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, lalgorithme termine Tout processus non marqué(s) quand lalgorithme termine sont interbloqués

15 Détection de linterblocage Exemple: Est-ce quil y a un interblocage ici?

16 Reprise de linterblocage Maintenant nous pouvons détecter linterblocage, comment pouvons nous reprendre un fonctionnement normal? Il ny a pas de bon choix, juste un plus petit mal à partir dun nombre de candidats Reprise par la préemption Reprise par le retour en arrière Reprise par lélimination de processus (un ou plusieurs)

17 Reprise de linterblocage Reprise par la préemption Il peut être possible denlever une ressource dun processus et la donner à un autre Ceci peut nécessiter lintervention manuel ie: aller à limprimante et enlever les feuilles déjà imprimées pour ne pas mélanger les feuilles dun 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?

18 Reprise de linterblocage Reprisse par retour en arrière ( rollback ) Les processus sont marqué avec des points de reprise ( checkpoints ) périodiquement. Tout ce que lon 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 quun nouveau interblocage arrive Désavantage: Le temps et les ressources prisent pour sauver les états des processus Comment choisir lintervalle des checkpoints

19 Reprise de linterblocage Reprise en éliminant des processus Pas élégant, efficace, mais potentiellement dommageable Il vaut mieux déliminer un processus dans le cycle si il ne dérangera pas les autres processus dans le cycle. Alternativement, une autre victime qui tient une ressource requise (quelle utilise et quelle ne planifie jamais lâcher nest pas techniquement dans le cycle) peut être éliminée 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 quune base de données

20 Quiz Time! Questions?


Télécharger ppt "GEF 435 Principes des systèmes dexploitation Interblocage: Détection et reprise (Tanenbaum 3.4)"

Présentations similaires


Annonces Google