Académique Documents
Professionnel Documents
Culture Documents
Fiche TD No 01
Système Exploitation II
Exercice 1:
Soit le code suivant décrivant une opération de réservation de billet d’avion:
d
9 Fin .
ali
1. Montrez qu’il existe plusieurs résultats possibles (et éventuellement erronés) si ce code est
W
exécuté par plusieurs processus simultanément.
2. Précisez sur le code précédant la : Ressource critique (variable critique dans l’exemple), Région
RI
critique (ou Section Critique).
a) Solution utilisant une variable booléenne partagée (nommée utilisé. Montrez que cette
solution est incorrect.
b) Solution utilisant des solutions sans arbitrage (sémaphore).
K
©
Exercice 2:
1. Donnez le schéma de synchronisation du code ci-dessous permettant à plusieurs processus
d’exécuter la même section critique (SC) simultanément et en exclusion mutuelle (EM) util-
isant les sémaphores.
P1 P2 Pn
1 Debut 1 Debut 1 Debut
2 ... 2 ... ....... 2 ...
3 # SC 3 # SC 3 # SC
4 ... 4 ... 4 ...
5 Fin . 5 Fin . 5 Fin .
3. Vérifiez que cette solution vérifie les propriétés de l’exclusion mutuelle (EM).
Exercice 3:
1. On suppose qu’on a 3 processus, P1 , P2 et P3 . P1 et P2 ont besoin d’un résultat provenant
de P3 pour pouvoir s’exécuter, et par conséquent, P1 et P2 doivent attendre la fin de P3 pour
pouvoir commencer leur exécution.
d
b) Généralisez la solution pour N processus.
ali
Exercice 4:
Soit l’expression arithmétique suivante :
W
a1 + a2 ∗ b1 − b2 /c1 + c2
RI
Pour calculer la somme des éléments d’un tableau on utilise deux processus. L’un parcoure les
éléments d’indice impair et l’autre les éléments d’indice pair comme suit :
Algorithme Principal
1 // Declaration Variables Globales //
2 Const M = ... // nombre elements du tableau
3 var T : Tableau [1.. M ] de entier ;
4 Somme : entier init 0 ;
5 // bloc principal //
6 Debut
7 P1 ;
8 P2 ;
9 Fin .
Processus P1 Processus P2
1 var i : entier 1 var j : entier
2 Debut 2 Debut
3 i := 1; 3 j := 2;
4 Tant que ( i <= M ) faire 4 Tant que ( j <= M ) faire
5 Somme := Somme + T [ i ]; 5 Somme := Somme + T [ j ];
6 i := i + 2; 6 j := j + 2;
7 FinTantque 7 FinTantque
8 Fin . 8 Fin .
1. Montrez, à l’aide d’un exemple d’exécution, qu’à cause des mises à jour (m-à-j) simultanées
de la variable Somme ; on peut obtenir un résultat erroné. (on considérera que les instructions
d’ajout à la variable Somme ne sont pas indivisibles).
d
Somme.
ali
3. Écrire une autre solution où l’on utilisera deux autres variables globales Somme1 et Somme2
l’une pour calculer la somme des éléments d’indice impair (qui sera uniquement accédée en
W
m-à-j par P1) ; l’autre pour calculer la somme des éléments d’indice pair (qui sera uniquement
accédée en m-à-j par P2). Le résultat Somme sera calculé comme Somme1 + Somme2 dans le
bloc principal à l’issue de l’exécution de P1 et P2 :
RI
Bloc Principal
AD
1 Debut
2 P1
3 P2
K
Remarque: (Dans ce cas il n’y a pas de synchronisation (pour l’accès aux variables) à réaliser car
il n’y a pas de concurrence d’accès en m-à-j aux différentes variables globales).
Exercice 6: Moniteurs
1. Rappelez la structure et le fonctionnement des moniteurs de Hoare.
Pour que les producteurs et consommateurs puissent s’exécuter cycliquement et de manière paral-
lèle , ils partagent un tampon (Buffer) dans lequel seront stockées les informations (messages)
produites et en attente d’être consommées.
d
ali
a) Donnez le schéma de synchronisation pour résoudre ce problème (buffer de taille infinie).
Cinq philosophes sont assis sur des chaises autour d’une table ronde pour philosopher et manger
des spaghettis. Sur la table sont disposées cinq assiettes, cinq fourchettes et un plat de spaghettis
K
fourchettes situées de par et d’autres de son assiette (une fourchette à droite et une fourchette à
gauche) . Après avoir mangé, le philosophe repose les deux fourchettes sur la table et se remet à
penser.
On considère un ensemble de six tâches séquentielles A, B, C, D, E ,F. La tâche A doit précéder les
tâches B, C, D. Les tâches B et C doivent précéder la tâche E.
Les tâches D et E doivent précéder la tâche F.
javascript:void(0); - Réalisez le schéma de synchronisation de ces tâches en utilisant les sémaphores.
Il existe de plus un gestionnaire de stocks qui possède du tabac, du papier et des allumettes en
quantité illimitée. Chaque fumeur fait lui même ses cigarettes et a besoin pour cela de tabac de
papier et d’allumettes.
Les trois fumeurs et le gestionnaire de stocks sont installés autour d’une table. Le gestionnaire de
stocks dépose sur la table deux des trois composants. Le fumeur qui possède le troisième composant
se saisit des deux qui sont sur la table, fait sa cigarette et la fume. Lorsqu’il a fini de fumer il informe
le gestionnaire de stocks qui dépose alors deux composants sur la table, et ainsi de suite. Proposez
un schéma pour synchroniser le gestionnaire de stocks et les fumeurs en utilisant des sémaphores.
d
ali
W
RI
AD
K
©