Devoir maison - ASR 2 Correction

Devoir maison - ASR 2
Correction
Anne Benoit
19 mars 2014
1. On considère le système suivant, avec 5 processus et 3 ressources, avec plusieurs instances de chaque
ressource (10 5 7) :
Allocation M ax
P0 0 1 0
753
P1 2 0 0
322
P2 3 0 2
902
P3 2 1 1
222
P4 0 0 2
433
Initialement, Available = (3 3 2)
(a) Donner la matrice N eed.
N eed
P0 7 4 3
P1 1 2 2
P2 6 0 0
P3 0 1 1
P4 4 3 1
(b) L’état est-il sûr ?
Oui, on peut terminer immédiatement P1 et P3 , ce qui donne Available = (7 4 3), puis tous les
autres processus.
Par la suite, si une requête peut être satisfaite, on considèrera qu’elle l’a été dans les questions
qui suivent, sinon la requête est suspendue.
(c) P1 effectue la requête (1 0 2). Peut-elle être satisfaite immédiatement ?
Déjà, on a bien (1 0 2) ≤ Available = (3 3 2). Si on satisfait la requête, Available = (2 3 0) et le
besoin de P1 devient (0 2 0). On peut alors terminer P1 et on obtient Available = (5 3 2), puis P3
et on obtient Available = (7 4 3). On est alors dans le même état que dans la question précédente,
on peut terminer tous les autres processus. L’état étant sûr, on peut satisfaire la requête.
(d) P4 effectue la requête (3 3 0). Peut-elle être satisfaite immédiatement ?
Non, car on n’a plus assez de ressources disponibles (Available = (2 3 0) étant donné qu’on a
satisfait la requête précédente).
(e) P0 effectue la requête (0 2 0). Peut-elle être satisfaite immédiatement ?
Non, car on se trouve alors dans un état non sûr : si on satisfait la requête, Available = (2 1 0) et
le besoin de P0 devient (7 3 3). On ne peut alors terminer aucun processus car N eedi ≤ Available
pour 0 ≤ i ≤ 4.
1
2. On considère le système suivant, avec 5 processus et 4 ressources, avec plusieurs instances de chaque
ressource.
Allocation M ax
P0 0 0 1 2
0012
P1 1 0 0 0
1750
P2 1 3 5 4
2356
P3 0 6 3 2
0652
P4 0 0 1 4
0656
Initialement, Available = (1 5 2 0)
(a) Donner la matrice N eed.
N eed
P0 0 0 0 0
P1 0 7 5 0
P2 1 0 0 2
P3 0 0 2 0
P4 0 6 4 2
(b) L’état est-il sûr ?
Oui, on peut terminer immédiatement P0 et P3 , ce qui donne Available = (1 11 6 4), puis tous les
autres processus.
(c) P1 effectue la requête (0 4 2 0). Peut-elle être satisfaite immédiatement ?
Si on satisfait la requête, Available = (1 1 0 0) et le besoin de P1 devient (0 3 3 0). On peut alors
faire P0 et on obtient Available = (1 1 1 2), puis P2 et on obtient Available = (2 4 6 6), puis P1
et P3 , et enfin P4 . L’état reste sûr, on peut donc satisfaire la requête.
2