Académique Documents
Professionnel Documents
Culture Documents
Programme Client
Entier m, (0,25 point)
Début
m = Allouer ; (0,25 point)
<Utiliser machine> ;
Restituer (m) ; (0,25 point)
Fin
Besoins
R1 R2 R3
P1 2 4 2
P2 2 2 3
P3 X-1 Y-1 Z
P4 1 1 1
Trav := Disp = 1 2 1
S={P4}
Trav := 1 2 1 + 1 1 1= 2 3 2
S={P4, P3}
X-1=2 ; Y-1=3, Z=2 → X=3 ; Y=4, Z=2
Trav := 2 3 2 + 1 1 0= 3 4 2
S={P4, P3 , P1}
Trav := 3 4 2 + 0 0 2 = 3 4 4
La suite saine S={P4, P3, P1, P2}. Et max pour (X, Y, Z)=(3, 4, 2)
2) (1,5 points)
Si on simule l'allocation, l'état du système devient:
Besoins ALLOC
R1 R2 R3
R1 R2 R3
P1 2 4 2 DISP
P2 2 2 3 P1 0 0 2
R1 R2 R3
P3 2 3 2 P2 1 0 0
0 1 1
P4 0 0 1 P3 1 1 0
P4 2 2 1
Vérifions si cet état du système est sain: cherchons une suite saine
S=P4
Trav = 0 1 1+ 2 2 1= 2 3 2
S={P4, P3}
Trav= 2 3 2 + 1 1 0 = 3 4 2
Il existe une suite saine complète donc la requête de P4 peut être satisfaite
3) (1 point)
Les 4 conditions nécessaires et suffisantes pour l’interblocage sont : (1) Exclusion
Mutuelle, (2) L’attente circulaire, (3) la non préemption des ressources et (4) détenir et
attendre.
Exercice3 :
1) (0,25 point * 8)
• *1* 08048405: ff 25 e8 96 04 08 jmp *080496e8
• *2* 08048410: e9 c0 ff ff ff jmp 080483d5
• *3* 080485e6: e8 1a fe ff ff call 08048405 <prod>
• *4* 08048502: e8 fe fe ff ff. call 08048405 <prod>
2)
Exercice4 : ( 5 points)
P0 P1 P2 P3 P4 P5
Début Début Début Début Début Début
F0; P(s1) ; P(s1) ; P(s1) ; P(s2); P(s2); P(s3); P(s3);
v(s1); v(s1); v(s1); F1 ; F2 ; F3 ; F4 ; F5 ;
Fin ; v(s2) ; v(s2) ; v(s3) ; v(s3) ; Fin ;
Fin ; Fin ; Fin ; Fin ;
- sémaphore S1: attente/réveil correct : 1,5 (utilisé par P0, P1, P2, P3)
- sémaphore S2: attente/réveil correct : 1,25 (Utilisé par P1, P2, P4)
- sémaphore S3: attente/réveil correct: 1,25 (utilisé par P3, P4, P5)
- déclaration et initialisation des sémaphores: 1pt
une mauvaise initialisation implique une double pénalisation (c'est important) : initialisation
fausse+utilisation fausse du sémaphore donc note des sémaphores mal initialisés/2