Vous êtes sur la page 1sur 4

ESI-1 CS Le 10 Mars 2021

Contrôle Final SYS1


Corrigé
Exercice 1 (5 points):
1) Sémaphore nlibre init (N) (initialisation et utilisation correcte 1 point)
Sémaphore mutex init 1(initialisation et utilisation correcte 0,5 point)
Mdispo tableau [0..N-1] de booléen init (faux) (initialisation et utilisation correcte 1 point)

Fonction Allouer Procédure Restituer (num)


Entier num init 0 Début
Début P(mutex)
P(nlibre) Mdispo[num]=faux ;
P(mutex) V(mutex)
TQ (mdispo[num]=vrai) V(nlibre)
Num :=num+1 ; Fin.
FTQ
Mdispo[num]=vrai ;
V(mutex)
Retourner(num)
Fin Allouer,

Programme Client
Entier m, (0,25 point)
Début
m = Allouer ; (0,25 point)
<Utiliser machine> ;
Restituer (m) ; (0,25 point)
Fin

2) Les 5 problèmes types de synchronisation sont : (1) Le producteur/Consommateur (2)


Lecteur/rédacteur (3) Le RDV (4) L’allocateur de ressources banalisées et(5) L’exclusion
mutuelle. (0,25 point * 5)
3) Allocateur de ressources banalisées. (0,5 point)

Exercice 2 (5 points = 2 + 2 +1):


1) (2,5 points)
Déterminer la matrice des besoins = Annonces – Alloc

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

S={P4, P3, P1, P2}


Trav= 3 4 4 + 1 0 0 = 4 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

S={P4, P3, P2}


Trav=3 4 2 +1 0 0=4 4 2

S={P4, P3, P2, P1}


Trav= 4 4 2+0 0 2= 4 4 4

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>

Section .got.plt: (0,25 point)


080496d4 ## ## ## 00 00 00 00 00 00 ## ## ## ## ## ##
0804840b
: ## 00 00 ## ##

2)

Section .got.plt : (0,5 point + 0,25 point)


## ## ## 00 00 00 ## ## ## ## ## ##
080496d4 : b7ff6200 b7ed11c5
## 00 ## ##

3)Les avantages de l’EDL Dyn : (0,25 point *2)


• Gain d’espace mémoire.
• Gain de temps dans la création du fichier exécutable.
4) (0,5 point * 3) avec justification
• Taille du fichier exécutable : le fichier exécutable généré par l’EDL statique est plus
volumineux.
• Temps d’exécution : le temps d’exécution des fichier générés par EDL statique est plus
cours.
• Temps de création : du fichier exécutable est plus importante pour l’EDL statique.

Exercice4 : ( 5 points)

Sémaphore s1, s2, s3 init 0;

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

Vous aimerez peut-être aussi