Académique Documents
Professionnel Documents
Culture Documents
Systme dexploitation II
Objectifs :
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
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 &&.
Soit limplmentation suivante de lalgorithme de Peterson. On utilise une variable tour et les deux
variables Di.
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.
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