Académique Documents
Professionnel Documents
Culture Documents
1
Plan (partie 1)
• Introduction
• Définition de l’interblocage
• Conditions d’interblocage
• Graphes d’allocation de ressources
• Approches de gestion de l’interblocage
2
Introduction (rappel)
3
Introduction
Dans un système multiprogrammé plusieurs processus partagent un nombre fini de
ressources.
Un processus demande des ressources, si ces ressources ne sont pas
disponibles, ce processus doit se mettre en attente.
Problème de compétition entre les processus pour l’utilisation des ressources
4
Exemple d’Interblocage (circulation routiere)
6
Exemple (sémaphore)
ressource_1;
ressource_2;
Processus (P1) Processus (P2)
7
Définition de l’Interblocage
Un ensemble de processus est dans une situation d'interblocage si chaque processus attend
un événement que seul un autre processus de l'ensemble peut provoquer.
8
Modèle du système
Les ressources sont groupées en classes (types : Imprimantes, mémoires, lecteurs CD,
registres, fichiers,...).
9
Protocole d’accès aux ressources
10
Conditions d’Interblocage
L’interblocage demande la présence simultanée de 4 conditions
1. Exclusion mutuelle : les ressources ne sont pas partageables, un seul processus à la fois peut
utiliser la ressource.
2. Possession et attente : un processus qui détient des ressources peut demander de nouvelles
ressources (sans relâcher celles qu‘il détient)
3. Pas de réquisition : Les ressources déjà détenues ne peuvent pas être retiré de force a un
processus elle doivent être libérées par le processus qui les détient.
4. Attente circulaire : Il existe un ensemble de k processus P1, P2, ..., Pk tels que :
P1 attend une ressource détenue par P2, P2 attend une ressource détenue par P3 ......... Pk attend une
ressource détenue par P1
11
Conditions d’Interblocage
Remarque :
Une attente circulaire est un interblocage
12
Graphe d’allocation de ressources
P = {P1, P2, …, Pn}, l’ensemble qui consiste de tous les processus dans le système
R = {R1, R2, …, Rm}, l’ensemble qui consiste de tous les types de ressources dans le système
13
Graphe d’allocation de ressources (notation)
Ressource avec
Processus : Pi
N exemplaires (instances)
Ressource dont il y a un seul exemplaire : Rj
Rj
Pi demande un exemplaire de Rj, dont il y en a 3: Pi
14
Graphe allocation de ressources avec
interblocage
Nous avons deux cycles :
P1 R1 P2 R3 P3 R2 P1
P2 R3 P3 R2 P2
15
Graphe allocation de ressources avec cycle,
mais pas d’ interblocage (pourquoi?)
16
Terminaison de processus et libération de
ressources
Hypothèse: Un processus qui a saisi toutes les ressources dont il a besoin peut
terminer
Qui pourraient être saisies par d’autre processus qui les attendent
manière
17
Constatations
Les cycles dans le graphe d’allocation de ressources ne signalent pas
nécessairement une attente circulaire
19
La politique de l’Autruche
20
Détection
21
Cas 1 : une seule instance
22
Exemple :
23
Exemple :
24
Exemple :
25
Exemple :
A S
26
Exemple :
27
Exemple :
28
Exemple :
29
Exemple :
30
Exemple :
B T
31
Exemple :
B T
32
Exemple :
B T E
33
Exemple :
B T E
34
Exemple :
B T E V
35
Exemple :
B T E V
36
Exemple :
B T E V G
37
Exemple :
B T E V G
38
Exemple :
B T E V G U
39
Exemple :
B T E V G U
40
Exemple :
B T E V G U D
41
Exemple :
B T E V G U D
42
Exemple :
B T E V G U D S
43
Exemple :
B T E V G U D S
44
Exemple :
B T E V G U D
45
Exemple :
46
Cas 2 : plusieurs instances
47
Matrices de modélisation d’allocations de
ressources
1. Vecteur de ressources existantes (Existing resources):
E: Tableau[1..M] d'entiers
48
Cas 2 : plusieurs instances
R1 R2 R3 R4
P1 0 0 1 0
Ex: Allocation
P2 2 0 0 1
P3 0 1 2 0
49
Matrices de modélisation d’allocations de
ressources
4. Matrice des demandes en attente(Requests) :
Request: Tableau[1..N, 1..M] De Entier ;
Request[i,j] = nombre d'exemplaires de la ressource Rj demandés et non
obtenus par le processus Pi.
R1 R2 R3 R4
P1 2 0 0 1
Ex: Request
P2 1 0 1 1
P3 2 1 0 0
50
Algorithme de détection d’Interblocage
(A=A+C[i,j](Pi) ou A=A+Allocation(Pi))
Remarque : étape 2 permet de garantir que l’allocation des ressources actuelle ne conduira pas a un état
d’interblocage
51
Algorithme de détection d’Interblocage
Exemple :
E=(4,2,3,1) A=( , , , )
R1 R2 R3 R4 R1 R2 R3 R4
C= P1 0 0 1 0 R= P1 2 0 0 1
Allocation P2 Request
2 0 0 1 P2 1 0 1 0
P3 0 1 2 0 P3 2 1 0 0
52
Algorithme de détection d’Interblocage
Exemple :
E=(4,2,3,1) A = ( 2 , 1 ,0 ,0 )
R1 R2 R3 R4 R1 R2 R3 R4
C= P1 0 0 1 0 R = P1 2 0 0 1
Allocation P2 2 0 0 1 Request P2 1 0 1 0
P3 0 1 2 0 P3 2 1 0 0
53
Algorithme de détection d’Interblocage
Exemple :
E=(4,2,3,1) A = ( 2 , 2 ,2 ,0 )
R1 R2 R3 R4 R1 R2 R3 R4
C= P1 0 0 1 0 R= P1 2 0 0 1
Allocation P2 Request
2 0 0 1 P2 1 0 1 0
P3 0 1 2 0 P3 2 1 0 0
54
Algorithme de détection d’Interblocage
Exemple :
E=(4,2,3,1) A = ( 4 , 2 ,2 ,1 )
R1 R2 R3 R4 R1 R2 R3 R4
C= P1 0 0 1 0 R= P1 2 0 0 1
Allocation P2 Request
2 0 0 1 P2 1 0 1 0
P3 0 1 2 0 P3 2 1 0 0
55
Algorithme de détection d’Interblocage
Exemple :
E=(4,2,3,1) A = ( 4 , 2 ,3 ,1 )
R1 R2 R3 R4 R1 R2 R3 R4
C= P1 0 0 1 0 R= P1 2 0 0 1
Allocation P2 Request
2 0 0 1 P2 1 0 1 0
P3 0 1 2 0 P3 2 1 0 0