Vous êtes sur la page 1sur 4

DUT Informatique

Module Systme S4-L


2010 / 2011
Orsay
Travaux Dirigs no 1 : Section Critique

Objectifs : comprendre les principes de lexclusion mutuelle et savoir dtermi-


ner si un algorithme respecte ces principes, par exemple laide de systmes
de transitions tiquetes.

1 Notes de cours
Plusieurs processus peuvent vouloir accder une mme ressource (CPU, mmoire centrale,
I/O, variables partages etc.), on dit alors quils sont en comptition. Pour garantir la validit
des rsultats, il est parfois ncessaire quune partie de code soit effectue de faon ininterrom-
pue relativement une ou plusieurs ressources, on appelle cela une section critique.
On dit que deux sections critiques sont en exclusion mutuelle si lune ne peut pas tre excute
en mme temps que lautre (mme si on a plusieurs units centrales). chaque fois quon a
comptition sur une ressource, on a une section critique.

Schma gnral du passage en section critique pour un processus :

tant_que vrai faire


actions avant section critique
demande dentre en section critique
section critique
sortie de section critique
actions aprs section critique

Spcifications de lexclusion mutuelle :


1. exclusion mutuelle ;
2. progression du systme : si aucun processus nest en section critique et quun processus
demande y entrer, alors ce processus entre en section critique ;
3. absence de blocage : au moins un processus peut voluer ;
4. absence de famine : aprs avoir demand une entre en section critique, un processus
devra attendre un nombre fini de fois avant dy entrer.

2 Exercices
2.1 Exercice 1 : exclusion mutuelle
Dans un systme informatique, on dispose de trois fichiers F1, F2 et F3 et de trois processus
dont les programmes A, B et C ont les structures suivantes :
Travaux Dirigs no 1 Section Critique 2/4

Programme A Programme B Programme C


actions A1 actions B1 (crire F3) actions C1 (lire F3)
actions A2 (lire F2) actions B2 actions C2
actions A3 actions B3 (lire F1) actions C3
actions A4 (crire F3) actions B4 actions C4 (crire F2)
actions A5 actions B5 actions C5

Chaque fichier ne peut ni tre lu et modifi en mme temps, ni modifi par plusieurs processus
en mme temps.
1. Rcrivez le tableau ci-dessus en ajoutant entre les actions, o ce sera utile, des com-
mandes debut_protection et fin_protection pour mettre en vidence les sections
critiques de A, B et C. Vous veillerez ne pas protger inutilement une action.
2. En dduire les sections en exclusion mutuelle. Mettez-les en vidence en prcisant la
suite de vos commandes debut_protection une liste dactions contre qui on doit se
protger (par exemple debut_protection(B1,B2) signifie que B1 et B2 ne devront pas
sexcuter en mme temps que les actions protges).

2.2 Exercice 1 : exclusion mutuelle par variables partages


On dispose de deux processus (P0 et P1) dont le squelette de programme est celui donn dans
les notes de cours. Lobjectif de lexercice est dtablir un algorithme utilisant des variables
partages par les processus pour raliser lexclusion mutelle des sections critiques en respectant
ses spcifications. On ne fait aucune hypothse sur latomicit des manipulations des variables.
1. Prciser pourquoi une simple attente active sur une variable partage tour qui vaudrait
vrai ou faux selon quun processus est ou non en section critique, immdiatement suivie
dune mise jour de tour ne convient pas. Lalgorithme (1) de Pi (dans cet algorithme,
remplacer i par 0 pour avoir P0 ou par 1 pour avoir P1) serait le suivant :
tant_que vrai faire
actions avant section critique
tant_que tour faire
rien
tour vrai
section critique i
tour faux
actions aprs section critique

2. On propose dans un premier algorithme, la solution suivante. La variable partage tour


prend les valeurs 0 ou 1. Lalgorithme (2) de Pi est le suivant :
tant_que vrai faire
actions avant section critique
tant_que tour <> i faire
rien
section critique i
tour 1-i
actions aprs section critique

Noter que 1-i = 0 si i = 1 et 1 si i = 0. La phase dinitialisation du systme est


rduite : tour 0. Construire le systme de transitions tiquetes de cette solution.
Montrer que lexclusion mutuelle est bien ralise mais que la condition de progression
nest pas satisfaite.

IUT dOrsay DUT Informatique 2010 / 2011 Module Systme S4-L


Travaux Dirigs no 1 Section Critique 3/4

3. Pour remdier cet inconvnient, on emploie au lieu de tour, deux variables boolennes
partages D0 et D1. Di est vraie ssi Pi demande passer en section critique. Lalgorithme
(3) de Pi est alors :
tant_que vrai faire
actions avant section critique
Di vrai
tant_que D(i-1) faire
rien
section critique i
Di faux
actions aprs section critique

D(1-i) dsigne D1 si i = 0 et D0 si i = 1. Les variables Di sont initialises faux.


Construire le systme de transitions tiquetes de cette solution. Montrer que la progres-
sion est maintenant assure. Montrer que le systme possde un tat dinterblocage.
4. Voir suite en exercice corrig.

3 Entranement : exercice corrig


3.1 nonc : algorithme de Peterson *
Une dernire solution au problme dexclusion mutuelle par variables partages est due G.I.
Peterson (1981). Elle vrifie les proprits attendues dune solution dexclusion mutuelle. 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

Linitalisation met tour 0 et les Di faux. Montrer que les quatre 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 ?

3.2 Correction (essayez dabord ! ! !)


1. Exclusion mutuelle : raisonnons par labsurde, si lexclusion mutuelle nest pas respec-
te, P0 et P1 se trouvent au mme moment en section critique. Alors les trois proprits
suivantes sont vraies en mme temps :
((D1 = f aux)OU (tour = 0)), cest dire rien ne bloque P0.
((D0 = f aux)OU (tour = 1)), cest dire rien ne bloque P1.
((D0 = vrai)ET (D1 = vrai)), car les deux processus ont mis vrai leur variable Di
avant dentrer en section critique.
Cela implique que tour vaut en mme temps 1 et 0, ce qui est impossible, lexclusion
mutuelle est donc respecte.

IUT dOrsay DUT Informatique 2010 / 2011 Module Systme S4-L


Travaux Dirigs no 1 Section Critique 4/4

2. Non blocage : toujours par labsurde, si les deux processus sont bloqus en mme temps,
les deux proprits suivantes sont vraies en mme temps :
((D1 = vrai)ET (tour = 1)), cest la condition de blocage de P0.
((D0 = vrai)ET (tour = 0)), cest la condition de blocage de P1.
Cela implique que tour vaut en mme temps 1 et 0, ce qui est impossible, le non-blocage
est donc respect.
3. Progression : si P0 nest pas en section critique ou en demande dentre, alors D0 vaut
f aux. Si dans le mme temps P1 est bloqu (donc il y a non-progression), cest que
((D0 = vrai)ET (tour = 0)). Donc D0 vaudrait f aux et vrai en mme temps ce qui est
impossible. De mme si P1 nest pas en section critique et que P0 est bloqu. La pro-
gression est donc respecte.
4. Non famine : on doit se placer dans le cas o les deux processus ont demand leur
entre en section critique et ou lun lobtient (cela arrive forcment car la progression est
respecte), par exemple P0 (le problme est symtrique avec P1). Alors on a :
((D1 = vrai)ET (D2 = vrai)), car les deux ont fait la demande dentre.
(tour = 0) car P0 a pu entrr en section critique.
P1 est en attente.
Si P0 demande une nouvelle fois lentre en section critique, alors il placera D1 = vrai
et tour = 1, sinterdisant lentre en section critique et laissant passer P1. Donc la non-
famine est repecte et un processus attend au plus un passage de lautre processus pour
entrer en section critique.
Il est aussi possible danalyser le systme de transitions tiquetes, mais il serait ici particuli-
rement grand (44 tats !). partir de ce graphe on pourrait dmontrer :
1. Exclusion mutuelle : pas de sommets de type (v, v, D0, D1,tour).
2. Non blocage : il ny a pas dtat terminal.
3. Progression : partir darcs de type ( f , f , v, f ,tour) on arrive (v, f , v, D1,tour).
4. Non famine : partir dtats du type ( f , q1, v, D1,tour), on atteint par un nombre tou-
jours fini darcs des tats du type (v, q1 , v, D1 ,tour). On voit quon attend au plus un
passage en section critique de lautre processus.

IUT dOrsay DUT Informatique 2010 / 2011 Module Systme S4-L