Vous êtes sur la page 1sur 4

Université Mouloud Mammeri de Tizi-Ouzou 2022/2023

EMD Système d’Exploitation II


Durée : 01h 30, documents non autorisés
Exercice 1:(6 pts)

1) A l’aide des primitives (Fork w et join(n)), P1 P2


1
donner le programme correspondant au
graphe suivant :
2) Soit le programme suivant :
P3 P4
Debut
P1;fork W1 ;P2; fork W2;quit
W1 : P3 ;
W2: P4;;quit
Fin
Donner le graphe des processus correspondant à l’exécution de ce programme
Solution
1) N=2 ;
Debut P1
Fork W4 ; 1
P1 ;fork W3 ; P2 ;aller à W5;
W4: P4;
W3: Join(N);P3; P3 P2
W5: ;
Fin
2)

P4 P4

Exercice 02: (6 pts)


Soient 02 processus P1 et P2 exécutés en parallèle où T1,T2,T3 et T4 sont des actions quelconques
Processus P1 Processus P2
Début Début
<T1> <T2>
<T4> <T3>
fin fin
A l’aide des événements (Attendre(e) et Signaler (P,e)), synchroniser avec le minimum de
primitives les processus pour que l’exécution nous donne : Programme pg1;
1) T2 T1 T3 T4 k=2;
2) T1 T2 T4 T3 oubien T1 T4 T2 T3 oubien T2 T1 T4 T3 Begin
3) Dans quel ordre vont s’exécuter les actions T1 T2 T3 et T4 si nous Fork W1;
W1: P2;join(k);P1
Exécutons le programme pg1
End.

M.Ramdane SEII 2022/2023


Université Mouloud Mammeri de Tizi-Ouzou 2022/2023
Solution :

Processus P1 Processus P2
Début Début
Att(e1) <T2>
<T1> Sign(P1,e1)
Sign(P2,e2) Att(e2)
1) Att(e3) <T3>
<T4> Sign(P1,e3)
fin fin

2) Processus P1 Processus P2
Début Début
<T1> <T2>
<T4> Att(e)
Sign(P2,e) <T3>
fin fin

3) T2 T3 T2 T3 T1 T4 ou T2 T2 T3 T3 T1 T4

Exercice 03 :(8pts)

N processus partagent l’accès à une mémoire de K blocs (N>K) selon le schéma suivant :
Processus Pi=1..N
Début
Mem.Demader(nb :entier)
<utiliser >
Mem.Liberer(nb :entier)
Fin

1) Ecrire le moniteur correspondant en supposant que tous les processus demandent B blocs.
2) Nous supposant maintenant qu’il y a deux classes de processus. La classe C1 correspond
aux processus qui demandent un seul bloc et la classe C3 correspond à ceux qui demandent
trois (03) blocs. La priorité est donnée à la classe C3. Redéfinir le schéma d’exécution puis
écrire le moniteur correspondant.
Remarque : il sera tenu compte de la simplicité et de la clarté de la solution proposée.

M.Ramdane SEII 2022/2023


Université Mouloud Mammeri de Tizi-Ouzou 2022/2023
Solution

1)

Mem :Moniteur
Const K=.. //nombre de blocs
B=..// nombre de blocs demandés
Var nbl :entier // nombre de blocs libres
C :condition
Procedure demander ()
Debut
Si (nbl<B)
c.attendre()
fin si
nbl :=nbl – B
Fin
Procedure Liberer ()
Debut
nbl :=nbl + B
c.signaler()
Fin
Init()
Nbl :=K

2)

Classe C1 Classe C3
Début Début
Mem.Demader1() Mem.Demader3()
<utiliser > <utiliser >
Mem.Liberer1() Mem.Liberer3()
Fin Fin

3)
Mem :Moniteur
Const K=.. //nombre de blocs
Var nbl :entier // nombre de blocs libres
C1,C3 :condition
Procedure demander1 ()
Debut
Si (nbl<1)
c.attendre()
fin si
nbl :=nbl – 1
Fin

M.Ramdane SEII 2022/2023


Université Mouloud Mammeri de Tizi-Ouzou 2022/2023
Procedure demander3 ()
Debut
Si (nbl<3)
c.attendre()
fin si
nbl :=nbl – 3
Fin

Procedure Liberer1 ()
Debut
nbl :=nbl + 1
si (nbl>=3)
C3.signaler()
Sinon
C1.signaler
finsi
Fin
Procedure Liberer3 ()
Debut
nbl :=nbl + 1
si (C3.vide()=faux)
C3.signaler()
Sinon
C1.signaler
C1.signaler
C1.signaler
finsi
Fin
Init()
Nbl :=K

M.Ramdane SEII 2022/2023

Vous aimerez peut-être aussi