Académique Documents
Professionnel Documents
Culture Documents
4.1 introduction
L’allocation d’une ressource à usage exclusif nécessite un verrouillage (lock en anglais). Dans
certaines situations, réaliser l’opération de verrouillage peut engendrer un blocage mortel du
processus qui verrouille. Le verrou (lock) devient mortel (dead). D’où le mot deadlock en anglais
qui est appelé interblocage en français.
Exemple : Deux Processus P1 et P1 ont besoins de deux ressources critiques R1 et R2. Chaque
processus a besoins des deux ressources en même temps. Le processus P1 demande R1 puis R2 et
le processus P2 demande R2 puis R1.
• un processus P1 détient une ressource R1 et attend une autre ressource R2 qui est utilisée par
un autre processus P2 ;
• le processus P2 détient la ressource R2 et attend la ressource R1.
• On a une situation d’interblocage (P1 attend P2 et P2 attend P1). Les deux processus seront
bloqués indéfiniment.
Le graphe suivant, appelé graphe d’allocation des ressources, représente le scénario de L'
interblocage.
P1 P2
Alloué
Demande
R1 R2
Au niveau de code exécuté par les processus, l'interblocage se produit comme suit :
Après que le processus P1 exécute P(mutex1) , une interruption horloge se produit provoquant la
suspension de P1 et l'activation de P2. P2 exécute P(mutex2) sans se bloqué puis se bloque au
niveau de p(mutex1). Après activation de P1, il se bloque en exécutant P(mutex2). Donc P1 et P2
seront bloqués infiniment.
Processus P1: Processus P2:
P(Mutex1) P(Mutex2)
P(Mutex2) P(Mutex1)
/*utiliser R1 et R2*/ /*utiliser R1 et R2*/
V(Mutex2) V(Mutex1)
V(Mutex1) V(Mutex2)
1
Un ensemble de processus est en interblocage si chaque processus attend la libération d’une
ressource allouée à un autre appartenant à l’ensemble. Comme tous les processus sont en attente,
aucun ne pourra s’exécuter et donc libérer les ressources demandées par les autres. Ils attendront
tous indéfiniment.
2
R1 R2 R3 R4 R1 R2 R3 R4
A 3 0 1 1 A 1 1 0 0
B 0 1 0 0 B 0 1 1 2
C 1 1 1 0 C 3 1 0 0
D 1 1 0 1 D 0 0 1 0
E 0 0 0 0 E 2 1 1 0
Que fait cet algorithme? Il accorde les demandes aux processus qui pourront se terminer, récupère
leur ressources, et continue ainsi jusqu'à ce que tous les processus soient traités, ou bien jusqu'à ce
qu'il soit impossible de continuer dans ce cas il y a interblocage.
3
Exemple : Soit les trois graphes d'allocation suivants
:
R1 R3 R1 R3 R1 P2
P3
P1 P2 P3 P1 P2 P3 P1
R2
R2 R2 P4
il n'y a pas de cycle, donc pas il y a un cycle, causant de il y a un cycle, mais il n'y a pas
d'interblocage l'iterblocage d'interblocage puisque R2 peut
se libérer.
Semaphore Mutex= 1 ;
P (Mutex)
/* Acquérir TOUTES les ressources utiles */
4
V (Mutex)
< SCritique utilisant “TOUTES” les ressources>
< Libération des ressources>
Processus P: Processus Q:
P(Mutex) P(Mutex)
P(Mutex1) P(Mutex2)
P(Mutex2) P(Mutex1)
V(Mutex) V(Mutex)
/*utiliser R1 et R2*/ /*utiliser R1 et R2*/
V(Mutex2) V(Mutex1)
V(Mutex1) V(Mutex2)