Interblocage
Généralités
Les interblocages sont des situations assez courantes dans la vie quotidienne. Le meilleur exemple est celui
du rond point avec priorité à droite. Si 4 routes arrivent à ce rond point et s'il y a quatre véhicules, aucun
ne peut s'engager sur le rond point puisque chaque véhicule possède à sa droite un voisin.
En informatique, ce problème survient également quand des processus convoitent les mêmes ressources. Le
terme interblocage est quelquefois remplacé par les expressions poétiques "verrou mortel" (en anglais
deadlock), "étreinte fatale",...
exemple 1 :
le spooling massif ; un processus P veut
imprimer des données ; comme le
système utilise un spool, le processus
envoie ses données sur un disque (buffer)
et le périphérique (imprimante) attend
que toutes les donnée soient sur le disque
pour imprimer. Mais si le buffer est plein
avant que le processus ait envoyé toutes
ses données, le processus va attendre et
l'imprimante, de son côté, attend aussi.
exemple 2 :
Interblocage
Solution des exercices
Solution de l'exercice 1
L'état 1 est un état sain. On peut, en effet opérer de la manière suivante :
a) on donne 1 unité R3 à P2 ce qui lui permet de terminer on exécution. On récupère alors les
ressources de P2.
b) on donne 2 unités R1, 2 unités R2, 2 unités R3 à P1 ce qui lui permet de terminer son exécution. On
récupère alors les ressources de P1.
c) on donne 1 unité R1 et 3 unités R3 à P3, ce qui lui permet de terminer son exécution. On récupère
alors ses ressources.
d) on donne 4 unités R1 et 2 unités R2 à P4 ce qui termine tous les traitements.
L'état 2 est également un état sain : on peut donner à P2 les ressources qui lui manquent et ensuite les
récupérer, ce qui permettra, comme dans le cas de l'état 1 d'aller au terme des exécutions.
L'état 3 est un état non sain. En effet, on ne peut donner à un processus les ressources qui lui
permettraient de se terminer. On a donc un interblocage.
Solution de l'exercice 2
1) application de l'algorithme
P4 n'a pas de ressources allouées ;il peut donc être marqué ;
On pose W = DI = (0,0,0,0,1)
La ligne P3 de B satisfait la condition : on marque P3 et W devient (0,0,0,1,1).
On ne peut continuer à l'étape 3, donc l'algorithme est terminé. On remarque que seulement P4 et P3 sont
marqués : il y a donc interblocage.
2) vérification avec les graphes
Le graphe est indiqué ci-dessous :
On voit que la seule ressource non affectée est une ressource de R5. Si on donne cette unité à P4, cela ne
suffit pas pour qu'il ait toutes les ressources nécessaires ; si on la donne à P3, cela permet la terminaison
de ce processus qui libère les ressources qu'il possède. Donner R5 à P2 ou P1 ne suffit pas à loes terminer.
On reste donc avec une boucle P1 - R2- P2 - R3 - P1 qui est l'indication d'un interblocage.
Solution de l'exercice 3
On peut utiliser l'algorithme de l'exercice précédent :
W = (2, 1, 0, 0)
P3 <= W donc P3 est marqué et W = (2,1,0,0) + (0,1,2,0) = (2,2,2,0)
P2 <= W donc P2 est marqué et W = (2,2,2,0) + (2,0,0,1) = (4,2,2,1)
P1 <= W donc P1 est marqué
Tous les processus étant marqués, il n'y a pas d'interblocage.
Interblocage
Exercices
Exercice 1
On considère 4 processus P1, P2, P3, P4 et 3 types de ressources R1, R2, R3. Les tableaux ci-dessous
expriment les besoins en ressources des processus pour leur exécution complète ainsi que les disponibilités
totales, en unités arbitraires, de ressources des trois types :
besoins
R1 R2 R3
P1 3 2 2
P2 6 1 3
P3 3 1 4
P4 4 2 2
disponibilités
R1 R2 R3
936
A un instant donné, le système est dans l'un des états suivants . Indiquez si ces états sont sains ou non
sains au sens de l'algorithme du banquier et dans l'affirmative, indiquer la suite d'états permettant
d'exécuter complètement les processus.
état 1
R1 R2 R3
P1 1 0 0
P2 6 1 2
P3 2 1 1
P4 0 0 2
état 2
R1 R2 R3
P1 1 0 0
P2 5 1 1
P3 2 1 1
P4 0 0 2
état 3
R1 R2 R3
P1 2 0 1
P2 5 1 1
P3 2 1 1
P4 0 0 2
1 / 13 100%