ECOLE MILITAIRE POLYTECHNIQUE
DEPARTEMENT INFORMATIQUE MATHEMATIQUES
Nature de l’examen : Devoir 1 Classe/Filière :INFORMATIQUE
Module : Systèmes d'Exploitation Responsable : …………..
Durée : 40 minutes Date : 23/05/2013
Documents : Non autorisé Année : 2012/2013
Exercice 1 (Producteur/Consommateur) 10pts):
On considère le problème du Producteur/Consommateur. Proposez une solution pour le cas suivants :
Le buffer est circulaire et de capacité limitée. Il existe un producteur et un consommateur. Mais on impose
que le consommateur ne doit pas consommer plus de x messages toutes les s secondes. On utilise un
processus « Horloge » qui se déclenche toutes les s secondes. La solution doit utiliser les sémaphores.
Initialization:
Sem M=1; //excl. mut.
Sem F=0; //esp. pleins
Sem E=k; //esp. vides
Sem Horloge = 0;
Int count=0;
Producteur: Consommateur: Horloge:
while(true){ while(true) while(true){
produce v; P(F); P(M);
P(E); P(M); If (count=x)
P(M); If (count = x) V(Horloge);
ajouter(v); V(M) Count = 0;
V(M); P(Horloge); V(M);
V(F); else }
} V(M);
End if
P(M);
retirer();
Count++;
V(M);
V(E);
consume(w);
}
1
Exercice 2 : Deadlock (10pts)
4 processus simultanés partagent des ressources de 3 types différents (R1, R2 ou R3) ; il existe 2
ressources de type R1, 5 de type R2 et 3 de type R3. Au cours de son exécution, chaque processus a
besoin d’un nombre maximal de ressources donné par la table MAX. A un instant donné, les ressources
détenues par les processus sont données par la matrice ALLOCATION :
MAX. ALLOCATION.
R1 R2 R3 R1 R2 R3
P1 2 2 1 1 2 1
P2 0 3 0 0 1 0
P3 1 2 3 0 0 1
P4 0 1 2 0 1 1
Dessinez le graphe d’allocation des ressources. Ce graphe montre un état sûr ou non sûr ? Justifier ?
R1
P1 P3
R2
R3
P2
P4
État non sûr : si p3 prend une ressource de R1 et une ressources de R2 on sera dans inter-blocage.
Aucun processus ne peut se terminer p1 attend p3 (r1) et p3 attend p1 (r2) ; p2 attend p1 et p3 (r2)
et p4 attend p1 et p3 (r3).