Vous êtes sur la page 1sur 3

TD2

Systme dexploitation II

Objectifs :

Communication entre les processus


Grer les conflits d'accs aux ressources partages

1. Questions de cours:

1) Pourquoi le partage de ressources pose des problmes dans un systme multiprogramm en temps
partag ?
2) Le systme UNIX permet-il de contrler les accs aux ressources partages ?
3) Quest-ce quune section critique ?
4) Laquelle de ces affirmations sur les smaphores est exacte ?
A. Un processus peut se bloquer lorsqu'il libre un smaphore plein .
B. Un processus peut se bloquer lorsqu'il demande un smaphore vide .
C. Un processus peut se bloquer lorsqu'il cre un smaphore.
D. Un processus peut se bloquer lorsqu'il libre un smaphore sur lequel un autre processus est
en attente.

2. Redirection de flux

Ecrire la suite de commandes unix qui crent un fichier test contenant la date, le nom de la machine,
votre login, tels que fournis par le systme.
Sans utiliser dditeur de texte, ajouter le texte fin du texte la fin de ce fichier.

3. Tubes

Ecrire les commandes permettant de :


1. Afficher la liste des fichiers du rpertoire /usr/bin/ en contrlant le dfilement cran par cran
2. Compter le nombre de fichiers de ce rpertoire.
3. Afficher les noms des 8 derniers fichiers de /usr/bin/
4. Afficher les noms des 8 premiers fichiers de /usr/bin/
5. Afficher les noms des fichiers de /usr/bin/ classs par ordre alphabtique inverse.

4. Excution conditionnelle

En shell,
le sparateur ; permet une excution squentielle des commandes.

2
le sparateur && permet de lancer la commande suivante si et seulement si le code de retour de
la commande prcdente est nul;
le sparateur || fait exactement le contraire que &&.

sleep 2; echo "Salut"


Que se passe-t-il ? Mme question en remplaant ; par &&, puis par ||.

5. Exercice : algorithme de Peterson

Soit limplmentation suivante de lalgorithme de Peterson. On utilise une variable tour et les deux
variables Di.

tant_que vrai faire


actions avant section critique
1: Di vrai
2: tour 1-i
3: tant_que (D(1-i) et (tour = 1-i)) faire
rien
4: section critique i
5: Di faux
actions aprs section critique

Linitialisation met tour 0 et les Di faux. Montrer que les spcifications de lexclusion mutuelle
sont ralises. Combien de passages en section critique de P(1-i), Pi doit-il attendre au plus lorsquil
a demand passer en section critique ?
(1-i) reprsente lID de lautre processus

6. Exercice : semaphores

La circulation dans une intersection de deux voies sens unique est rgle par des signaux lumineux (feu
vert/rouge). On suppose que les voitures traversent lintersection en ligne droite et que
lintersection peut contenir au plus une voiture la fois.

On impose les conditions suivantes :


- toute voiture se prsentant lintersection la franchit en un temps fini ;
- les feux de chaque voie passent alternativement du vert au rouge, chaque couleur tant
maintenue pendant un temps fini (Duree_du_feu) ;
- les arrives sur les deux voies sont rparties de faon quelconque.
Le fonctionnement de ce systme peut tre modlis par un ensemble de processus parallles:
2
- un processus P qui excute la procdure Changement qui commande les feux;
- un processus est associ chaque voiture; la traverse du carrefour par une voiture qui circule
sur la voie i (i = 1, 2) correspond l'excution d'une procdure Traverseei() par le processus
associ la voiture.

Pour simuler un tel systme, on vous demande de complter, en ajoutant les smaphores et le code
ncessaire dans les procdures suivantes (vous ne devez pas ajouter de variables dautres types) :

// Feu = 1 si le feux de la voie 1 est vert, Feu =2 si le feux de la voie 2 est vert
//circuler simule la traverse de lintersection