Rappel interblocage des processus
Amira BELHEDI [email protected]
ISTIC 2018
Processus et ressources
- L'utilisation d'une ressource passe par les étapes suivantes
- Si l'on ne peut pas satisfaire la demande il faut attendre. La demande sera mise dans une table d'attente des ressources – Utilisation de la ressource
- Le processus peut utiliser la ressource – Libération de la ressource
- Le processus libère la ressource demandée et allouée.
- Les ressources peuvent être de plusieurs types
- Reutilisables : Toutes les ressources physiques et quelques unes logiques (chiers, mutex, verrous, etc.).
- Disponibles :Ressources associées à la communication et à la synchronisation comme les messages, les signaux, les sémaphores, etc.
- Soit deux processus P1 et p2 en cours d’exécution
- 1er cas ordonnanceur non préemptif : chaque processus s’éxécutera puis permettra à l’autre de s’éxécuter
- 2ème cas ordonnanceur préemptif :
- P1 détient R1 et attend R2 qui est utilisée par P2
- P2 détient R2 et attend R1 qui est utilisée par P1
Publicité
➢ situation d’interblocage : P1 attend P2 et P2 attend P1. Les
deux processus vont attendre indéfiniment
5
Problème d’interblocage
Situation d’interblocage de deux processus
6
Problème d’interblocage
- Définition: un ensemble de processus est en interblocage si chaque processus attend la libération d’une ressource qui est allouée à un autre processus de l’ensemble.
- Les 4conditions pour qu’un interblocage ait lieu (Conditions de Coffman) :
- processus représentés par des cercles.
- ressources représentées par des rectangles.
- Un arc orienté d’une ressource vers un processus signifie que la ressource est allouée au processus.
- Un arc orienté d’un processus vers une ressource signifie que le processus est bloqué en attente de la ressource. → Ce graphe indique pour chaque processus les ressources qu'il
- 1er cas : Exécution séquentielle A suivi de B suivi de C. → Pas d’interblocage
- 2eme cas : Exécution par ordonnancement circulaire dans l’ordre :
Publicité
- A demande R 2. B demande S 3. C demande T 4. A demande S 5. B demande T 6. C demande R
- Situation d'interblocage de trois processus.
- Un graphe réduit peut-être utilisé pour déterminer s'il existe ou non un interblocage.
- Pour la réduction d'un graphe d'allocation des ressources, les flèches associées à chaque processus et à chaque ressource doivent être vérifiées.
- Règle 1 : Une ressource ne possédant que des flèches qui sortent (il n'y a pas des requêtes) → on les efface.
- Règle 2 : Un processus ne possédant que des flèches qui pointent vers lui → on les efface.
- Règle 3 : Si une ressource a des flèches qui pointent vers elle → pour chaque ressource disponible il faut inverser la flèche.
- Exemple 1
- Exemple
Publicité
16
Réduction du graphe d’allocation des ressources
- Exemple 2
- Exemple 2
- Donner le graphe d’allocation correspondant ??
- Simplifier ce graphe
- Appliquer règle3 sur R1 et règle 2 sur P2 et règle1 sur R1 –Les requêtes de R1peuvent être allouées→ on les inverse –P2 aura seulement des flèches qui pointent vers lui→ on les efface –R1 n’a que des flèches qui sortent → on les efface
- Lorsqu'un processus demande une ressource, le système doit déterminer si l'attribution de la ressource est sûre.
- Un état est sûr si tous les processus peuvent terminer leur exécution (il existe une séquence d'allocations de ressources qui permet à tous les processus de se terminer).
- Un état est non sûr si on ne peut garantir que les processus pourraient terminer leurs exécutions
Publicité
26
Algorithme du banquier
- Comment déterminer si un état est sûr ou non sûr ?
- Djikstra a proposé en 1965 un algorithme d'ordonnancement, appelé l'Algorithme du banquier qui permet de répondre à cette question.
- Cet algorithme, utilise quater matrices:
- Quater matrices
- Rechercher un processus P non marqué dont la
- Exemple
- Exemple