Vous êtes sur la page 1sur 5

Université Hassiba Ben Bouali-Chlef Département d’Informatique

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:

Processus Reservation(nbPlacesResrv : entier)


1 Debut
2 Si ( nbPlacesResrv <= nbPlacesRestant ) Alors
3 nbPlacesRestant -= nbPlacesResrv ;
4 Ecrire ( ’ Reservation effectuee ,
5 Nombre de places restantes = ’ , nbPlacesRestant );
6 Sinon
7 Ecrire ( ’ Il ne reste pas de places disponibles sur ce vol );
8 Finsi ;

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).

3. Réglez le problème d’accès à la Section Critique en utilisant :


AD

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 .

2. Comment appelle-t-on ces processus?

3. Vérifiez que cette solution vérifie les propriétés de l’exclusion mutuelle (EM).

Document réalisé Avec LATEX Page 1/5 Année Universitaire 2020-2021


Université Hassiba Ben Bouali-Chlef Département d’Informatique

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.

a) Proposez un schéma de synchronisation afin que P1 et P2 attendent la fin de P3 .


Remarque: P3 n’est pas obligé d’attendre P1 et P2 .
b) Généralisez la solution pour N processus.

2. On suppose Maintenant que P1 , P2 et P3 doivent s’attendre mutuellement et qu’aucun pro-


cessus Pn ne puisse continuer son exécution que si les deux autres processus P(n+1)mod3 ET
P(n+2)mod3 .
Exemple: P3 ne peut continuer son exécution que si P1 ET P2 arrivent.

a) Proposez un schéma de synchronisation pour résoudre le problème cité ci-dessus (Prob-


lème du Rendez-vous) utilisant les sémaphores.

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

a) Donnez l’ordre d’exécution de cette expression arithmétique


AD

b) Donnez le schéma ou le code propre à chaque processus permettant la synchronisation de ces


derniers, sachant que chaque doit exécuter une partie de l’expression arithmétique (5 processus
au total).
K

Exercice 5: (Supplémentaire à faire)


©

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 .

Document réalisé Avec LATEX Page 2/5 Année Universitaire 2020-2021


Université Hassiba Ben Bouali-Chlef Département d’Informatique

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).

2. Résoudre le problème en utilisant un sémaphore d’exclusion mutuelle pour l’accès à la variable

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

4 Somme := Somme1 + Somme2


5 Fin
©

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.

2. Simuler les moniteurs en utilisant de sémaphores

Exercice 7: Problème des "Lecteurs/Rédacteurs"


On considère un objet (un fichier par exemple) qui n’est accessible que par deux catégories d’opérations
: les lectures et les écritures. Plusieurs lectures (consultations) peuvent avoir lieu simultané-
ment ; par contre les écritures (mises à jour) doivent se faire en exclusion mutuelle. On appellera
«lecteur» un processus faisant des lectures et «rédacteur» un processus faisant des écritures.

Document réalisé Avec LATEX Page 3/5 Année Universitaire 2020-2021


Université Hassiba Ben Bouali-Chlef Département d’Informatique

A/- Réalisez le schémas de synchronisation sans priorité entre Lecteurs et Rédacteurs.

B/- Réalisez le schémas de synchronisation avec priorité aux Rédacteurs.

C/- Réalisez le schémas de synchronisation avec priorité aux Lecteurs.

D/- Réalisez le schémas de synchronisation avec équité entre Lecteurs et Rédacteurs

Exercice 8: Problème du "Producteurs/Consommateurs"


On considère deux classes de processus :

* Les producteurs : produisent des informations,

* Les consommateurs : consomment les informations produites par les producteurs.

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).

b) Cas d’un buffer circulaire (taille finie N). W


c) Cas d’un buffer à une seule case.(A faire à la maison)
cas d’un buffer circulaire (taille finie N) avec plusieurs producteurs (A faire à la maison)
RI
d)

Exercice 9: Problème des "Philosophes"


AD

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

qui est toujours plein.


Chaque philosophe passe son temps à penser puis manger. Pour manger il doit utiliser les deux
©

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.

- Donnez la solution à ce problème en utilisant les sémaphores (et le moniteur de Hoare).

Exercice 10: Graphe de Précédence des Tâches (Supplémentaire à faire)

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.

Document réalisé Avec LATEX Page 4/5 Année Universitaire 2020-2021


Université Hassiba Ben Bouali-Chlef Département d’Informatique

Exercice 11: Problème des Fumeurs (Supplémentaire à faire)

Considérons 3 fumeurs de cigarettes :

- le premier possède du tabac en quantité illimitée,

- le second possède du papier en quantité illimitée,

- le troisième possède des allumettes en quantité illimitée.

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
©

Document réalisé Avec LATEX Page 5/5 Année Universitaire 2020-2021

Vous aimerez peut-être aussi