Académique Documents
Professionnel Documents
Culture Documents
Chapitre 3 : l’interblocage
Introduction :
Un système informatique possède un nombre fini de ressources qui doivent être distribuées
parmi un certain nombre de processus concurrents. Les ressources sont groupées en plusieurs
types, lesquels peuvent exister en plusieurs instances identiques. L’espace mémoire, le
processeur, les périphériques sont des exemples de types de ressources. Par exemple, si un
système a 2 processeurs, on dira que le type de ressource processeur possède 2 instances, et si
le système est doté de 5 imprimantes, on dira que le type de ressource imprimante possède 5
instances.
Dans un interblocage, les processus ne terminent jamais leur exécution et les ressources du
système sont immobilisées.
Le but de ce chapitre est de présenter le problème de l’interblocage : les conditions de son
apparition, et les différentes méthodes qui ont été proposées pour le traiter.
1. Définition : Un ensemble de processus est en interblocage si chacun est en attente d’un
2. Caractérisation des ressources : une ressource est tout objet informatique matériel ou
logiciel nécessaire à l’exécution d’un programme.
Une ressource peut être :
a) matérielle ou logicielle
b) à accès unique ou multiple
c) banalisée ou unique :( Ressource banalisée : ensemble d’instances de
ressource identiques et allouables indifféremment, appelée classe)
(Ressource unique : 1 seul exemplaire de la ressource)
d) virtuelle ou physique
e) préemptible ou non préemptible : (Préemptible : la ressource peut être
retirée à un processus sans dommage),( Non préemptible : la ressource ne
peut être retirée)
3. Utilisation d’une ressource : On considère trois étapes :
a) Demande de la ressource : attente du processus si la ressource est détenue par un
autre processus. Réalisée par un appel système pour les ressources physiques.
b) Utilisation de la ressource
c) Libération de la ressource
5 Type d’interblocage :
Interblocage passif « deadlock » : Les processus en attente de ressources sont
bloqués par l’allocateur
Interblocage actif « livelock » : Les processus en attente de ressources testent la
disponibilité des ressources et se bloquent eux-mêmes.
6 .Graphe d’allocation des ressources :
On peut décrire l’état d’allocation des ressources d’un système en utilisant un graphe.
Ce graphe est composé de N noeuds et de A arcs.
L’ensemble des nœuds est partitionné en deux types :
Un arc allant du processus Pi vers un type de ressource Rj est noté Pi→Rj ; il signifie que le
processus Pi a demandé une instance du type de ressource Rj. Un arc du type de ressourcé Rj
vers un processus Pi est noté Rj→Pi ; il signifie qu’une instance du type de ressource Rj a été
alloué au processus Pi.
Un arc Pi→Rj est appelé arc de requête. Un arc Rj→Pi est appelé arc d’affectation.
Graphiquement, on représente chaque processus Pi par un cercle et chaque type de ressource
Rj comme un rectangle. Puisque chaque type de ressource Rj peut posséder plus d’une
instance, on représente chaque instance comme un point dans le rectangle.
Un arc de requête désigne seulement le rectangle Rj, tandis que l’arc d’affectation doit aussi
désigner un des points dans le rectangle. Quand un processus Pi demande une instance du
type de ressource Rj, un arc de requête est inséré dans le graphe d’allocation des ressources.
Quand cette requête peut être satisfaite, l’arc de requête est instantanément transformé en un
arc d’affectation. Quand plus tard, le processus libère la ressource l’arc d’affection est
supprimée.
Exemple : L’état d’allocation d’un système est décrit par les ensembles suivants :
Ensemble des processus P={P1, P2, P3}
Ensemble des ressources R={R1, R2, R3, R4}
Ensemble des arcs A={P1→R1, P2→R3, R1→P2, R2→P2, R2→P1, R3→P3}
Si le graphe d’allocation contient un circuit, alors il peut exister une situation d’interblocage.
A. La détection et la reprise :
La technique de détection et reprise est utilisée lorsque le système ne cherche pas à
empêcher les interblocages.il les laisse ses produire puis tente de les détecter, par la
suite les traiter .
1) La détection des interblocages avec une seule ressource d’un type donné :
Interblocage s’il existe un cycle dans le graphe. Tout processus qui fait partie d’un
cycle est concerné par l’interblocage.
Il n’y a pas d’interblocage s’il n’y a pas de cycles.
Il existe plusieurs algorithmes de détection de cycles dans les graphes orientés.
1. Pour chaque nœud N du graphe, effectuer les 5 étapes suivantes en prenant N comme
nœud de départ.
2. Initialiser L à une liste vide et indiquer que les arcs ne sont pas marqués .
3. Ajouter le nœud courant à la fin de L’en vérifiant qu’il n’y figure pas déjà. Si c’est le cas,
le graphe contient un cycle (liste dans L) et l’algorithme se termine .
4. Tester s’il existe des arcs partant du nœud courant .aller à l’étape 5 s’il y en a et à l’étape
6 s’il y en a pas .
5. Prendre au hasard un arc partant du nœud courant et le marquer. atteindre le nœud la
destination de cet arc et aller à l’étape 3
6. C’est une impasse. revenir au nœud précédent, c’est -à-dire le nœud qui précédait le nœud
courant, en faire le nœud courant et aller à l’étape 3 .si ce nœud est le nœud de départ, le
graphe ne contient pas de cycles et l’algorithme ce termine .
2) La détection des interblocages avec plusieurs ressources d’un type donné :
L’existence d’un cycle n’implique pas forcément un interblocage; la non-existence de
cycle implique qu’il n’y a pas interblocage.
Hypothèses
• tout processus libère au bout d’un temps fini ses ressources
• l’état du système est réalisable :
- la demande d’un processus ne peut excéder le nombre initial de ressources
- un processus ne peut acquérir plus de ressources qu’il n’a demandées
- la somme des allocations aux processus ne peut dépasser le nombre initial de ressources
Absence d’interblocage :
Il existe une suite d’états réalisables telle que tout processus obtienne sa requête à l’instant
considéré et s’exécute jusqu’à sa fin.
Action de l’allocateur :
Ranger les processus dans un ordre tel que leur requête soit satisfaite s’ils s’exécutent
dans cet ordre. Interblocage si on ne peut inclure au moins un processus dans la suite de
processus.
F=(faux,faux,faux,faux,faux) T=(0,0,0)
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 :
Si une ressource possède seulement des flèches qui sortent (il n'y a pas des
requêtes), on les efface.
Si un processus possède seulement des flèches qui pointent vers lui, on les
efface.
Si une ressource a des flèches qui sortent, mais pour chaque flèche de requête il
y a une ressource disponible dans le bloc de ressources où la flèche pointe, il faut
les effacer.
Exemple :
Considérez quatre processus p1….p4_ qui utilisent des ressources . Le tableau montre
l'allocation courante et le nombre maximaux d'unités de ressources nécessaires pour
l'exécution des processus. Le graphe d'allocation des ressources pour l'état courant est montré
sur la Figure :
le graphe :
Remarque :
Si le graphe peut être réduit pour tous les processus, il n’y a pas d’interblocage ;
Si le graphe ne peut étre réduit pour tous les processus, alors les processus
irréductibles constituent l’ensemble des processus interbloqués.
B. La Prévention d’interblocage :
Interblocage possible d’un ensemble d’entités concurrentes, lorsque les 4 conditions sont
vérifiées en même temps.
Il suffit de rendre une des conditions nécessaires fausse durant toute exécution dusystème.
Si au moins une des quatre conditions ne sera jamais satisfaite, les interblocages seront alors
impossibles.
a) La condition d’exclusion mutuelle : En général impossible, mais une idée
simple consiste à n’attribuer une ressource que si absolument nécessaire.
Action de l’allocateur
-Ranger les processus dans un ordre tel que leur besoin maximum puisse être satisfait
s’ils s’exécutent dans cet ordre, état fiable.
Il y a risque d’interblocage, si on ne peut inclure au moins un processus dans la suite
de processus.
-Satisfaire une requête si partant d’un état fiable, cette allocation laisse le système dans
un état fiable sinon différer l’allocation.
Soient : T[1..m] les ressources potentiellement disponibles ,F[1..n] F[i]= vrai si Pi est dans
la suite fiable, faux sinon
1. initialisation T=D ressources disponibles, trouvé=vrai; F[i]=faux pour tout processus
2. tant que trouvé et il existe Pj t.q.F[j]==faux faire rechercher i tel que non F[i] et B[i]≤T;
si i n’existe pas alors trouvé=faux; sinon F[i]=vrai; T=T+A[i];finsi;fait;
3. si pour tout i, F[i]==vrai, alors pas d’interblocage l’état du système est fiable.
Exemple :
m = 3, n=5, X = (10,5,7) À un instant t, on a l’état suivant :