il
UYV/ES - Dépt. Info. A. Hamza INF261 EC Systeme d’exploitation
TD 1: Exclusion mutuelle
Exercice 1
1. Définir : section critique, exclusion mutuelle, synchronisation, attente active, famine, interblocage
2. Citer les mécanismes dexclusion mutuelle avec leurs avantages et leurs inconvénient:
3. Montrer que la solution de Peterson garantit bien exclusion mutuelle, Quel est I'inconvénient de
cette solution ? Comment résoudre le probléme ?
4, Expliquez la notion de réveil perdu et en quoi cette notion dénote un probléme qu'il vaut mieux
éviter ?
5. Expliquez ce qu’est un sémaphore. 7
6. Quels sont les avantages d’un sémaphore par rapport a un outil du type « test and set » ? Justifier.
7. Pour protéger une section critique, 4 quelle valeur un sémaphore d’exclusion mutuelle doit étre
initialisé 2 Et plus généralement, a quoi correspondi/sert cette valeur.
8. Une section critique utilisée par plusieurs processus est protégée de fagon classique par un sémaphore
dexelusion mutuelle
P(Mutex)
7* section critique */
V(Mutex)
Un des processus provoque un déroutement durant la section critique et s'arréte. Quelle anomalie pro-
voque-t-il ainsi sur la suite de l'exécution des autres processus ?
Exercice 2
1. Qu‘est-ce qu'un thread ? Quelle est la principale différence avec un processus? Préciser la structure de
la mémoire d'un processus monothreadé et celle d'un multithreadé.
2. Donner les endroits oit la bibliothéque de gestion de threads peut étre implémentée ?
3. Trois threads concurrents TO, T1 et T2 exécutent chacun le bout de code suivant :
TiOMi=01,2
{ inte=0;
while (true)
printf Coycle %d de %d, c+, 1) 3}
Synchronisez les cycles des threads a I’aide de sémaphores de maniére a exécuter les cycles dans cet
ordre : cycle de TO; cycle de TI; cycle de T2; cycle de TO; cycle de TI;
Exercice 3
Considérez le pseudo-code suivant :
01 Fonetion f() = 11 Konetion g() = 20 Programme principal
02 Debut 12 Debut 21 Debut
03 WANT A) 13 WANA) 22 Initialiser le sémaphore Aa 1
Of x= x42 Mox-x=5 23 Initialiver !entier x at
05 POST A) 15 POST A) 21 Lancer um nouveau thread sur la fonetion £0)
06) WAM( A) 16 WAI A) 25