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

Chap 81 Interblocage = impasse (Deadlock) Chapitre 8

Présentations similaires


Présentation au sujet: "Chap 81 Interblocage = impasse (Deadlock) Chapitre 8"— Transcription de la présentation:

1 Chap 81 Interblocage = impasse (Deadlock) Chapitre 8 http://w3.uqo.ca/luigi/

2 Chap 82 Interblocages: concepts importants n Caractérisation: les 4 conditions n Graphes allocation ressources n Séquences de terminaison n États sûrs et no-sûrs n Prévenir les interblocages n Éviter les interblocages n Détecter les interblocages n Récuperer d’un interblocage

3 Exemple 1 n Disponibilité de mémoire: 1G n Un processus A demande 500M, pour finir il a besoin d’1G n Le Processus B est pareil u ProcA demande 500 u Puis, ProcB demande 500 F Mémoire pleine, aucun des deux ne peut finir! u Il n’y aura pas d’interblocage si ProcA finit avant le début de B Chap 83

4 4 Exemple 2 (logiquement identique au précédent) n Deux processus coexistent dans un système, qui a 2 lecteurs- graveurs DVD seulement n Nous voulons exécuter deux processus de copie DVD en même temps n Le proc 1 a besoin de u Un lecteur-graveur pour démarrer u Le précédent et puis un deuxième, pour terminer n Le proc 2 est pareil n Scénario d ’interblocage: u proc 1 demande 1 lect-grav u proc 2 demande 1 lect-grav: les deux sont engagés u interblocage! aucun proc ne peut compléter F à moins qu’un des proc ne puisse être suspendu F ou puisse retourner en arrière n Observez que l ’interblocage n ’est pas inévitable, p.ex. si 1 complète avant le début de 2 u Comment éviter / détecter le risque d’interblocage u Comment éviter / détecter qu’un interblocage se vérifie

5 Chap 85 Exemple 3 n Sémaphores P 0 P 1 acquire (A);acquire(B) acquire (B);acquire(A) n Scénario d’interblocage: u initialisation de A et B à 1 u P0 exécute acquire(A), A=0 u P1 exécute acquire(B), B=0 u P0 et P1 ne peuvent pas aller plus loin u Il n’y aura pas d’interblocage si P1 commence après les ‘releases’ que P0 fera probablement plus tard

6 Point de réfléxion Chap 86 n Sémaphores P 0 P 1 acquire (A);acquire(A) acquire (B);acquire(B) n Ici il n’y a pas d’interblocage car le 1 er proc qui avance bloque le 2 ème mais pas vice-versa u Si P 0 fait acquire (A) en premier il bloque P 1 mais peut lui-même continuer et possiblement terminer

7 Chap 87 Interblocage: une situation globale dans le système n Un ensemble de processus est en interblocage si u les processus sont tous en état ‘attente’ de différents événements u l’ensemble des listes d’attente dans le SE est coincé de manière que le SE ne pourra jamais émettre le signal de ‘terminaison d’événement’ pour aucun de ces processus u chaque processus attend un événement que seul un autre processus de l’ensemble peut provoquer Un interblocage est un état global du système

8 Chap 88 Caractérisation d’interblocage n L’interblocage demande la présence simultanée de 4 conditions (conditions nécessaires et suffisantes) u Exclusion mutuelle: le système a des ressources non partageables (1 seul proc à la fois peut s’en servir) F Ex.: un UCT, une zone de mémoire, une périphérique, mais aussi sémaphores, moniteurs, sections critiques u Saisie et attente (hold and wait): un processus a saisi une ressource non partageable et en attend des autres pour compléter sa tâche u Pas de préemption: un processus qui a saisi une ressource non partageable la garde jusqu’à ce qu’il aura complété sa tâche u Attente circulaire: il y a un cycle de processus tel que chaque processus pour compléter doit utiliser une ressource non partageable qui est utilisée par le suivant, et que le suivant gardera jusqu`à sa terminaison F En présence des 3 premières conditions, une attente circulaire est un interblocage F Les 3 premières conditions n’impliquent pas nécessairement interblocage, car l’attente circulaire pourrait ne pas se vérifier important

9 Chap 89 Attente circulaire - aucun ne lâche - aucun processus ne peut terminer donc interblocage Marie KamalJuan Roy Jacques Pour terminer, chaque processus doit saisir une ressource que le précédent ne lui donnera pas  interblocage 100$

10 Chap 810 Exercice Réfléchissez à cet exemple dans lequel des voitures sont dans une situation d’interblocage sur un pont et voir comment les différentes conditions sont satisfaites. V. aussi les exemples donnés avant

11 Chap 811 Exercice n Considérez un système dans lequel chaque processus n’a besoin que d’une seule ressource pendant toute son existence n L’interblocage, est-il possible?

12 Chap 812 Exercice n Vérifier que si dans un système il y a toujours suffisamment de ressources pour tous, il n’y aura jamais d’interblocages n Cependant ceci est souvent impossible, notamment dans le cas de sections critiques, car les données partagées existent normalement dans un seul exemplaire

13 Déterminer la possibilité d’interblocage Chap 813

14 Chap 814 En principe, un problème difficile n Le problème de déterminer s’il y a possibilité d’interblocage dans un système est un problème indécidable ou insoluble en principe par un algorithme (résultat théorique) u On ne pourrait pas écrire un programme S qui, étant donnée un programme quelconque X en entrée, pourrait déterminer avec certitude si X contient la possibilité d’interblocage n Cependant, nous pouvons développer des critères pour trouver des interblocages dans des cas particuliers u P.ex. graphes d’allocation ressources

15 Chap 815 Graphes d’allocation ressources n Un ensemble de sommets V et d’arêtes E n V est partitionné dans: u P = {P 1, P 2, …, P n }, l’ensemble qui consiste de tous les procs dans le système u R = {R 1, R 2, …, R m }, l’ensemble qui consiste de tous les types de ressources dans le système n arête requête – arête dirigée P i  R k n arête affectation – arête dirigée R i  P k

16 Chap 816 Graphe d’allocation ressources: notation n Processus n Ressource dont il y a 4 exemplaires (instances) n Pi a (ou aura) besoin pour terminer d’un exemplaire de Ri, dont il y en a 4 n Pj a saisi (et utilise) un exemplaire de Rj Pi Pj R Ri Rj

17 Exercice n Dessiner le graphe d’allocation ressources pour les premiers exemples Chap 817

18 Terminaison de processus et libération de ressources n Hypothèse: Un processus qui a saisi toutes les ressources dont il a besoin peut terminer n Cette terminaison pourrait conduire à la libération de ressources n Qui pourraient être saisies par d’autre processus qui les attendent n Ce qui pourrait conduire à la terminaison d’autres processus u Il n’y a pas d’interblocage si tous les processus peuvent terminer de cette manière Chap 818

19 Chap 819 Exemple de graphe allocation ressources P1 en attente P2 en attente P3 pas en attente Y-a-t-il interblocage?

20 Chap 820 Utilisation de ces graphes n Nous supposons l’existence des 3 premières conditions u Excl. Mutuelle, saisie et attente, pas de préemption n 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 n est un ordre de terminaison de processus: tous peuvent terminer dans cet ordre u Donc il n’y a pas de cycle d’attente u Il est faux que: chaque processus pour compléter doit utiliser une ressource non partageable qui est utilisée par le suivant, voir P3

21 Chap 821 Graphe allocation ressources avec interblocage Nous avons deux cycles: P1  R1  P2  R3  P3  R2  P1 P2  R3  P3  R2  P2 aucun P ne peut terminer aucune possibilité d’en sortir

22 Chap 822 Graphe allocation ressources avec cycle, mais pas d’ interblocage (pourquoi?) Attente circulaire, mais les ressources peuvent devenir disponibles

23 Chap 823 Constatations n Les cycles dans le graphe alloc ressources ne signalent pas nécessairement une attente circulaire n S ’il n`y a pas de cycles dans le graphe, aucun interblocage n S ’il y a de cycles: u Si seulement une ressource par type, interblocage F (pourquoi?!) u Si plusieurs ressources par type, possibilité d’interblocage F Il faut se poser la question: y-a-t-il au moins un processus qui peut terminer et si oui, quels autres processus peuvent terminer en conséquence?

24 Chap 824 Hypothèse de terminaison n Un proc qui a toutes les ressources dont il a besoin, il s’en sert pour un temps fini, puis il les libère n Nous disons que le processus termine, mais il pourrait aussi continuer, n’importe, l’important est qu’il laisse la ressource n Il n’y a pas d’interblocage si tous les processus peuvent terminer, un à la fois u Laisser leurs ressources

25 En pratique n En pratique, cette méthode de détection simplifie trop les processus u Qui contiendront des tests, des boucles, etc. n Utile pour comprendre l’interblocage en théorie Chap 825

26 Traitement d’interblocage Chap 826

27 Chap 827 Méthodes pour traitement interblocage n Prévention: Concevoir le système de façon qu`un interblocage soit impossible u difficile, très contraignant u approprié dans le cas de systèmes critiques n Évitement: Les interblocages sont possibles, mais sont évités (avoidance) n Correction: Permettre les interblocages, en récupérer n Ignorer le problème, qui donc doit être résolu parle gérant ou l’usager u malheureusement, méthode d’utilisation générale!

28 Chap 828 1) Prévention d’interblocage: prévenir au moins une des 4 conditions nécessaires n Exclusion mutuelle: réduire le plus possible l’utilisation des ressources partagées et Sections Critiques u Possible seulement dans le cas de procs totalement indépendants n Saisie et attente (hold and wait): un processus qui demande des nouvelles ressources ne devrait pas en retenir des autres (les demander toutes ensemble) u Comment savoir? n Préemption: si un processus qui demande d’autres ressources ne peut pas les avoir, il doit être suspendu, ses ressources doivent êtres rendues disponibles u OK, demande intervention du SE n Attente circulaire: imposer un ordre partiel sur les ressources, un processus doit demander les ressources dans cet ordre (p.ex. tout processus doit toujours demander une imprimante avant de demander une unité ruban) u Difficile n Donc la prévention est difficile en général

29 Chap 829 2) Éviter les interblocages (deadlock avoidance) n Gérer les ressources de manière qu’on ne puisse pas tomber dans un interblocage: u Chaque processus doit déclarer le nombre max. de ressources dont il prévoit avoir besoin u Examiner toutes les séquences d’exécution possibles pour voir si une attente circulaire est possible

30 Chap 830 État sûr (safe state) n Un état est sûr si le système peut en sortir sans interblocages Ne pas allouer une ressource à un processus si l’état qui en résulte n’est pas sûr États sûrs É. non-sûrs Interblocage

31 Chap 831 État sûr, séquence sûre n Une séquence de proc est sûre si pour chaque Pi, les ressources que Pi peut encore demander peuvent être satisfaites par les ressources disponibles, incluant les ressources utilisées par les Pj qui les précèdent. u Quand Pi aboutit, Pi+1 peut obtenir les ressources dont il a besoin, terminer, donc n est un ordre de terminaison de processus: tous peuvent terminer dans cet ordre n Une séquence sûre laisse le système dans un état sûr Évitement

32 Chap 832 Algorithme d’allocation de ressources n Il faut maintenant prendre en considération: u les requêtes possibles dans le futur (chaque processus doit déclarer ça) n Arête demande P i - - > R j indique que le processus P i peut demander la ressource R j (ligne à tirets) Évitement

33 Chap 833 Graphe d`allocation ressources Ligne continue: requête courante; tirets: requête possible dans le futur État sûr ou non? Évitement

34 Chap 834 Un état non sûr Peut tomber dans l’interblocage Si P2 demande R2, ce dernier ne peut pas lui être donné, car ceci peut causer un cycle dans le graphe si P1 req R2. Mieux vaut attendre la fin de P1, puis faire finir P2 Évitement

35 Exercice n Quel est le résultat si, dans l’état initial, P1 obtient R2 u Quelle serait donc une politique ‘sage’? Chap 835

36 Exercice n Retourner aux premiers exemples donnés avant et voir comment le système peut tomber d’un état sûr à un état non sûr et puis dans un interblocage, utilisant les diagrammes que nous venons de voir Chap 836

37 Algorithmes pour l’évitement de l’interblocage n En théorie, quelques algorithmes sont connus pour éviter l’interblocage u Notamment: l’algorithme du banquier, v. manuel n Cependant ils peuvent rarement être utilisés en pratique u L’information qu’ils demandent n’est pas normalement disponible Chap 837

38 Chap 838 3) Détection d ’interblocage n On permet au système d’entrer dans un état d’interblocage n L’interblocage est détecté n On récupère de l’interblocage

39 Chap 839 Différence entre attente et interblocage n Il est difficile de détecter s ’il y a effectivement un interblocage dans un système n Nous pourrions voir qu’un certain nombre de processus est en attente de ressources u ceci est normal! n Pour savoir qu’il y a interblocage, il faut savoir qu’aucun processus dans un groupe n’a de chance de recevoir la ressource u car il y a attente circulaire! n Ceci implique une analyse additionnelle, que peu de SE se prennent la peine de faire... Détection

40 Chap 840 Méthode de détection d’interblocage dans le cas d’une ressource par type n Essentiellement, la méthode déjà décrite u Construire un graphe d’allocation ressources et voir s’il y a une manière dont tous les proc peuvent terminer n Dans le cas d’une ressource par type, l`algorithme cherche des cycles dans le graphe (algorithme d’ordre n 2, si n=nombre de sommets) n Plus difficile dans le cas de plus. ressources par type u Pas discuté Détection

41 Chap 841 Graphe allocation ressources et graphe d ’attente (cas d’1 ressource par type) Détection

42 Chap 842 4) Correction d’interblocages, en récupérer n Terminer tous les processus dans l’interblocage, ou n Terminer un processus à la fois, espérant d’éliminer le cycle d’interblocages n Dans quel ordre? différents critères: u priorité u besoin de ressources: passé, futur u combien de temps il a exécuté, de combien de temps il a encore besoin u etc.

43 Chap 843 Correction: préemption de ressources n Minimiser le coût de sélectionner la victime n Rollback: retourner à un état sûr u besoin d`établir régulièrement et garder des ‘points de reprise’, sortes de photos de l ’état courant du processus u p.ex. Word établit des points de reprise qu’il vous propose après un ‘accident’ n Famine possible si le même processus est toujours sélectionné

44 Chap 844 Combinaison d’approches n Combiner les différentes approches, si possible, en considération des contraintes pratiques u prévenir u éviter u détecter et corriger n utiliser les techniques les plus appropriées pour chaque classe de ressource

45 Chap 845 Importance du pb de l’interblocage n L’interblocage est quasiment ignoré dans la conception des systèmes d’aujourd’hui u Avec l’exception des systèmes critiques n S’il se vérifie, l’usager verra une panne de système ou l’échec d’un processus n Dans les systèmes à haut parallélisme du futur, il deviendra de plus en plus important de le prévenir et éviter

46 Chap 846 Par rapport au manuel: n Le code Java de ce chapitre n’est pas matière d’examen intra u Sera discuté plus tard dans les TD n Section 8.5.3 (algorithme du banquier) n’est pas sujet de notre cours u Présente une solution qui est d’intérêt théorique seulement: F L’algorithme présuppose qu’il soit possible de savoir le max de chaque ressource qu’un processus peut demander n Section 8.6.2 (détection d’interblocage dans le cas d’instances multiples de ressources) n’est pas sujet du cours pour des raisons semblables

47 Chap 847 Interblocages: concepts importants n Caractérisation: les 4 conditions n Graphes allocation ressources n Séquences de terminaison n États sûrs et non-sûrs n Prévenir les interblocages n Éviter les interblocages n Détecter les interblocages n Récupérer d’un interblocage

48 Point de réfléxion n Dans le chapitre 4, il y avait un seul pointeur dans un PCB n Quelle implication aurait ce fait par rapport aux files d’attentes dans lesquelles un proc peut se trouver? n Est-ce-que ce chapitre nous force à réviser cette hypothèse? Chap 848

49 RAPPEL IMPORTANT n Examen de mi-session le prochain cours n 2 hrs, livre fermé n Voir un exemple dans le site Moodle n Le sujet du cours changera après: u Gestion de la mémoire Chap 849


Télécharger ppt "Chap 81 Interblocage = impasse (Deadlock) Chapitre 8"

Présentations similaires


Annonces Google