Vous êtes sur la page 1sur 3

UMBB 2022/2023 Licence (SI_S5 & ISIL_S6)

Département informatique. Systèmes d’Exploitation II

Série N°3 : synchronisation par Sémaphores

Question 1 :
Répondez par VRAI ou FAUX
a) Tant qu’un processus est bloqué dans la file d'attente d'un sémaphore, il est engagé dans
l'attente active.
b) L'exclusion mutuelle peut être réalisée avec un sémaphore compteur dont la valeur initiale
est supérieure à 1.
Question 2 :
Donnez les principaux inconvénients des sémaphores?
Question 3 :
Expliquez chacun des termes suivants en précisant la différence principale entre les deux
termes : “sémaphore binaire” et “ sémaphore compteur”

Exercice 1
On considère les trois processus suivants (La sémaphore mutex est initialisé à 1, et la variable
x à 3) :
Programme P1 Programme P2 Programme P3
(a) P(Mutex) ; (d) P(Mutex) ; (g) P(Mutex) ;
(b) x := x + 1 ; (e) x := x * 2 ; (h) x := x - 4 ;
(c) V(Mutex) ; (f) V(Mutex) ; (i) V(Mutex) ;

1. On considère le scénario d’exécution suivant : a d b g c e f h i :


– Est-il possible ?
– Si oui quelle est la valeur finale de x (initialisé à 3) ?
2. Même questions avec le scénario a d e b c f g h i
3. Donner les valeurs finales possibles pour x.
4. Modifier ces processus pour que x contienne à coup sûr la valeur 3 à la fin de l’exécution.
Vous commencerez par établir le graphe de précédence correspondant aux exécutions
souhaitables.

Exercice2
Soit P0 et P1 deux processus parallèles se partageant deux ressources R1 et R2. Les
algorithmes de ces deux processus sont écrits comme suit :
vars1,s2 : semaphore init à 1,1 ;
Processus P0 Processus P1
Début Début
Répéter Répéter
(1) P(s1) ; (1’) P(s2) ;
(2) <utiliser R1> ; (2’) <utiliser R2> ;
(3) P(s2) ; (3’) P(s1) ;
<utiliser R1 et R2> ; <utiliser R1 et R2> ;
V(s1) ; V(s2) ;
V(s2) ; V(s1) ;
Jusqu’à faux Jusqu’à faux
Fin. Fin.

1
UMBB 2022/2023 Licence (SI_S5 & ISIL_S6)
Département informatique. Systèmes d’Exploitation II
1. A quelle situation anormale peut conduire l’exécution de ces deux processus ?
2. Donner une solution à ce problème.

Exercice 3 (ETLD 2018)


Considérons 3 processus A, B et C. Les processus A, B et C exécutent séquentiellement 3
tâches. Le processus A exécute les tâches A1, A2 et A3. Le processus B exécute 3 tâches dans
l’ordre suivant: B1, B2 et B3. … Nous considérons les dépendances (contraintes de
précédence) suivantes :
- La tâche A2 doit être exécutée après la tâche C2 ;
- La tâche A3 doit être exécutée avant la tâche B3 ;
- La tâche C3 doit être exécutée avant la tâche A3 ;
- La tâche B2 doit être exécutée avant la tâche C1 et avant A1.
1. Donnez le graphe des dépendances
2. Retirez dans le graphe des dépendances une dépendance qui est redondante.
3. Donnez deux exécutions respectant les dépendances.
4. Complétez le code suivant pour réaliser les dépendances en utilisant des sémaphores
(3 sont suffisants).

Debut
Parbegin ProgA ; ProgB ; ProgC ; Parend
Fin

Exercice 4 (ETCD /SI/2023)


Soit P1 et P2 deux processus parallèles. Les algorithmes de ces deux processus sont écrits
comme suit:
Processus P1 : Processus P2 :
Debut Debut
Répéter Répéter
T1 ; T2 ;
Jusqu’à faux Jusqu’à faux
Fin. Fin.

a. Utilisez un sémaphore pour synchroniser les deux processus de telle manière que
l’exécution de la tâche T1 ne soit jamais simultanée avec l’exécution de la tâche T2.
b. Utilisez deux sémaphores pour synchroniser les deux processus de telle manière que
les tâches se déroulent toujours dans l’ordre : T1T2T1T2T1T2...
c. Utilisez deux sémaphores pour synchroniser les deux processus de telle manière que
les tâches se déroulent toujours dans l’ordre : T1T2T2T1T2T2T1T2T2...

Exercice 5

Soient les deux processus P1 et P2 suivants qui partagent deux sémaphores, S1 et S2


initialisés à 0.

2
UMBB 2022/2023 Licence (SI_S5 & ISIL_S6)
Département informatique. Systèmes d’Exploitation II

1. Quelle synchronisation a-t-on imposée sur les exécutions des procédures A1, A2, B1,
B2 ?
2. Ecrire le code afin d’imposer la même synchronisation pour 3 processus P1, P2, et P3
en utilisant 3 sémaphores.
3. Ecrire le code afin d’imposer la même synchronisation pour N processus P1, P2,…, Pn
en utilisant N sémaphores.

Exercice 6 (ETCD SI/2023)


Soient les trois processus P1, P2 et P3 suivants qui partagent deux sémaphores, SA et SB
initialisés à 0, 0.
Processus P1 : Processus P2 : Processus P3 :
Debut Debut Debut
T1 ; T2 ; T3 ;
P(SA) ; V(A) ; P(SB) ;
T4 ; V(B) ; T5 ;
Fin. Fin. Fin.

a. Quelle synchronisation a-t-on imposée sur les exécutions des tâches T1, T2, T3, T4,
T5
b. Donner le graphe de précédence.

Vous aimerez peut-être aussi