Vous êtes sur la page 1sur 8

C34211

I I

3e ANNÉE

INFORMATIQUE 1

DURÉE: 5 IIElJKES

Aucun document n’est autorise‘

L ’usagede toute calculalrice est interdit.

On considère le problème de l’accès de n processus à ilne unique ressource non partageable. La


ressource ne peut Ctre accédée que par u n processus à la fois : elle est dite critique, et son utilisation
se fait a u sein de ce que l’on appelle une section critique. On souhaite donc définir des protocoles
d’exclusion mutuelle, garantissant cette propriété d’acchs unique.

1 Définitions
Processus. On considère un ensemble fini P de n > O processus : P = { p o ,p l , . . .,pn-l} s’exécu-
tant simultanément.

États. L’ensemble X ; des états possibles du processus p; est partitionné en


x;= R; u E; u ci u si
Ces ensembles deux deux disjoints seront appelés respectivement section restante, section d’essai,
section critique et section de sortie.

Tournez la page S.V.P.


Variables. 1, est un ensemble fini de m > O variables, partag6es entre les processus. IA jpvariable
de V a ses valeurs dans l’ensemble Vj.

Configurations. Une conjguration est un ( n + m)-uplet


q = (20, * * , Xn-1: m,- * , vm-1)
*

où 2; E Xi pour O 5 i < n et v j E Vj pour O 5 j < m. Une configuration contient donc les états
respedifs de tous les processus e t les valeurs de toutes les variables ;iun instant donné. On notera
Xi, V, et Y les projections définies par
X;(q.)= x;? V, ( 4 ) = v j et V ( q )= (210,.. . ~ ~ - 1 )

Système. Un système est un quadruplet S = ( P ,Y, qo, p) où


- P est l’ensemble des processus,

- 1.’ est l’ensemble des variables,

- qQ est la configuration initiale de s,


- p est la fonction de transition de S , définie ci-dessous.

Transitions. Soit Q l’ensemble de toutes les corifiguratioris de S. Alors la fonction de transition


cp est une fonction totale de {O,. . . , R. - 1) x Q dans Q telle que, si i E {O,. . ., n - l} et q E Q, alors
4‘ = cp(i, q ) vérifie
1. Xj(q’) = Xj(q) pour j E {O,. . ., n - I}\{i}, et,
2. si X ; ( q ) t R; u E; alors X;(q’) E E; u Ci, et,
3. si X ; ( q ) E Ci U S; alors Xd(q’)E Si U R;.
i
On notera q+ q’ une telle transition, et 1’011 parlera d’une transition du processus p;.

Lectures/écritures. On restreint la fonction de transition avec les conditions suivantes : pour


tout i E {O, . . ., n - l}, X i peut être partitionné en 2m ensembles disjoints Readf et Writef pour
k E (O, . . . , rn - 1) tels que, pour toute configuration q :

- Si X i ( q ) E Readt, on dit que pi est prêt à lire la variable k , c’est-à-dire que la prochaine
transition du processus p ; sera une lecture de ia variable k. La fonction de transition cp doit
donc vkrifier les conditions suivantes :
1. V(cP(i,Q I ) = VI!& et,
2. pour toute configuration q’ avec X;(q‘)= X,(q), si Vk(q’) = V k ( q ) alors X;(p(i,q’))=
Xi(cpG, 4 ) ) .
On dit alors que la transition q f cp(i, q ) est une lecture de la kevariable par p;.

- Si X , ( q ) E Writef, on dit que p z est prêt à k , c’est-à-dire que la prochaine


&rire la variable
transition du processus p i sera unc lecture de la variable k. La fonction de transition p doit,
donc vérifier les conditions suivantes :
1. v,(Cp(i,q ) ) = v,k) Pour j # k , et,
2. pour toute configuration q’ avec X ; ( q ’ ) = Xi(‘), on a Vk(y(i,q’))= V k ( p ( i , q ) )et
Xb(cP(i,4% = Xi(P(i, 4)).
On dit alors que la transition q j c p ( i , q ) est une écriture de la k“ variable par p;.

2
Histoire, calcul, atteignabilité, résultat. Une histoire dc S est une suite (finie ou infinie)
d’indices de processus (éléments de {O, . . ., n - 1)).IJne occurrence de l’indice i dans une bisLoire
est appel& pas du processus pi dans cette histoire.
Si 41 est une configuration et h = i l i 2 . . . une histoire, alors 4142 . . . est u n calcul par h, ipartir
de q l , oii qi+l = p(i,j,q j ) pour j = 1’2, . . .. Si h est finie, alors res(q1, h) est la configuration finale
dans le calcul par h à partir de pl, On dit que la configuration q’ est a i t e i p a k l c ;i part,ir d e la
configuration q s’il existe une histoire finie h telle que q‘ = res(q,h). IJne configuration est dite
atteignable si elle est, atteignable li partir de qo.
LJn point, important est de voir que, puisqu’un calcul est une suite de transitions op&*&schacune
par u n seiil processus, un processus peut 6tre prêt à lire (ou écrire) une variable pendant plusieurs
transitions a u cours d’un calcul avant que cette lecture (ou hcriture) ne devienne effective.

Équité, arrêt. Une histoire h est &pitable à partir de la configuration q si pour tout préfixe fini
hl de h et pour tout i E {O,. . ., n - 1)’ Xa(res(q,h l ) ) # R, implique que i apparait dans ha, où h;!
est défini par h = hlhz.
Un processus s’arrête dans une histoire si et seulement si il y apparaît un nombre fini de fois.
La notion d’arrêt est donc reliée à celle d’histoire, plutôt qu’à 1’6tat d’un processus. Si une histoire
h est équitable à partir de q , tout processus qui s’arrête dans h est dans sa section restante après
son dernier pas dans le calcul par h à partir de g.

Exclusion mutuelle. Urie corifiguritt,ion q ne satis-fad pas la yropr.ic!lk d’exclusion niutueile s’il
existe deux valeurs distinctes i et j de { O , + . . , n- 1) telles que X i ( q ) E Ci et X j ( q ) E C,. Le systkmc
S satisfait la propriété d’exclusion mutuelle si toute configuration atteignable q de S salislait la
propriété d’exclusion mutuelle.

Progrès global. Le processus pi change de section par h en partant de q s’il existe des préfixes
finis hl et h2 d e h tels qiie X;(res(q,h l ) )est dans une section diffkrente de celle de X,(res(q,h2)).Un
système S a la propriét6 de progrès global si pour toute configuration atteigriable p et toute histoire
non nulle h hquitable à partir de q , un processus au moins change de section par h en partant de q .
On notera qu’un systènic ayant la propriété de progrès global peut laisser un processus en situation
de famine, c’est-à-dire dans une situation où il tente d’entrer en section critique mais n’y parvient
jamais.

3 Tournez la page S.V.P.


II Une borne supérieure
L’algorithme de la figure 1 est exprimé dans un langage impératif de type Pascal. Il opère s u r
A
un tableau partagé drapeau0 de taille n, h valeurs dans {haut, bas}. l’initialisation du systkme,
toutes les valeurs de drapeau0 valent bas, et chaque processus pi exécute le code du programme
proc-i. En plus des sections restante, d’essai. critique et de sortie, on dkfinit une sous-section d’essai
et une section de passage A, I’intkrieur de la section d’essai, comme indiqué en commentaire dans
l’algorithme. La section de passage correspond donc à la fin de la seclion d’essai.
On veut montrcr que le systkme défini par cet algorithme virrifie les propriétés de progrès global
et d’exclusion mutuelle.

program proc-i
tocal var j : O..n-1
begin
whife true do begin
section restarile (* section restante *)
repeat (* début de la section d’essai *)
drapeau[i]t bas
repeat until V j E { O , . . i - 1) : drapeauhl = bus (*sous-section d’essai*)
.?

drupeau[i]t bas
until V j E {O, . ..
,i - 1) : drupeauhl = bas
+
repeat until V j 6 { i 1 , . . . , n - 1) : drapeau[j] = bas (“section de passage*)
section critique (* section critique *)
drapeau[i]t bas (* section de sortie *)
end
end.

FIG.1- tJn algorithme d’exclusion mutuelle

Question 1. Soit q une conjïguration telle que au moins un processus des1 pas dans sa sectimr
restanle, ct h une histoire équitable telle que aucun proccssus ne change de section par h en partant
de q. Montrer que pour i E { O , . . ., n - 11, soit X ; ( q ) E Ri et i n’apparait pas dans h , soit Xi(q) E Ei
et i apparait infiniment souvent dans h.
On dit qu’un processus qui n’est pas dans R; est actif.
Question 2. Avec les mêmes hypothhes, montrer qu’il exisle un yrt?fizr:de h tel que dans la confi-
guration q‘ atteinte par ce préfixe e’n partant de q, tout processus actif est soil dans sa section de
passage, ou dans u n étut ci partir duquel il bouclera infiniment d a n s ka sous-section d’essai.
Question 3. Toujours avec les mêmes hypdhdscs, monlrcr ’il exisk un processus qui, en partant
de la configuration q’, va changer de section par h.
Question 4. Conclure sur la propriété de progrès global.
Question 5. Montrer que l’algorithme vérifie la propriété d ’ezclusio,n.mutuelle.

4
III Une borne inférieure
On veut maintenant montrer le résultat suivant : tout système avec n 2 2 processus vérifiant
les propriétés d’exclusion mutuelle et de progrès global doit avoir a u moins n variables partagées.
Dans toute la suite, on désignera par S un système qui satisfait par hypothèse ces deux propriétés.
On commence par donner la définition suivante.

Configurations équivalentes. #Soit q et q1 deux configurations, et p ; un processus. On dit que


q et q‘ sont équivalentes pour p ; , que 1,011note qy q’, si V ( q ) = V ( q l ) et X i ( q ) = X;(q’).
a

Question 6. Soit g et q’ deux configurations, Pl un sous-ensemble de P , et h une histoire finie


de S qui ne contient que des pas de processus de P’. Montrer que si q y q’ pour tout p; E Pl, alors
V ( r e s ( q , h ) )= V(res(q’,h ) ) et pour tout p j E P’,Xj(res(q, h ) ) = Xj(resiq’,h)).

Écriture oblitérée. Soit q1 une configuration, h une histoire, qlq2 . . . étant le calcul de h en
partant de 41. Soit i E {O, . . . , n - l},v E Y , et j > O tel que qj f qj+l est une écriture de w par p;.
S’il existe k > j tel que q k -+q k + l est une écriture de v , et pour tout 1 tel que j < 1 < k , q k -+ qk+l
n’est pas une écriture de v par un processus autre que p;, on dit que l’écriture de v par p; en q j est
oblitérée par h en partant de 41.

Processus caché. Soit q une configuration, h une histoire, et i E {O, . . ., n - 1). On dit que p; est
caché de q par h s’il existe des histoires hl et ha, hl finie, telles que h = hlh2, X;(res(q,h l ) ) E Ri,
et chaque écriture de p; dans le calcul de h2 en partant de res(q, hl) est oblitérée par h2 en partant
de res(q, h l ) .
Soit q une configuration, h une histoire finie, et P‘ un sous-ensemble de P tel que chaque
processus de P’ est caché par h en partant de q. Soit q’ = res(q,h). Pour chaque p E Pl, soit h, le
plus long préfixe de h tel que p est dans sa section restante à res(q,h,), et hl défini par h = h,hl.
Soit k, le nombre de pas de p dans le suffixe de h après h,. On appelle ces pas des pas cachés.
Question 7. S’il existe p E P’ tel que k , > O , soit pi le processus de P‘ qui exécute le dernier pas
caché de h. Soit h’ l’histoire obtenue en supprimant de h le dernier pas de p;. Montrer que tous les
processus de Pl sont cachés par h’.
Question 8. Montrer qu’il existe une configuration atteignable qN de S telle que chaque pi dans Pl
est dans sa section restante en q N , et q” 7 g‘ pour tout p j E P‘\P.
.1

Variable couverte. Si une variable est sur le point d’être écrite, tout processus en train d’écrire
dans cette variable risque de voir son écriture oblitérée. Plus formellement, on donne la définition
suivante : on dit que v est couverte par p; en q lorsque p; est prêt à écrire v en q , où q est une
configuration, i E {O,. . ., n - l}, et v E V .
Question 9. Soit h une histoire finie de S , q = res(q0, h ) , et i E { O , . . . , n - l}. Supposons que
S a au moins deux processus, et que p; est caché par h en partant de qa. Montrer que si p; atteint
sa section critique à partir de q par une histoire finie hl = i i . . .i, alors p; doit écrire au moins
une variable dans le calcul de hl à partir de q qui n’est couverte par aucun autre processus en q.
Question 10. Pour un système vérifiant la propriété de progrès global et une configuration Q attei-
gnable, montrer que l’on peut définir une histoire lat(q) telle que res(q, lat(q)) est une configuration
dans laquelle tous les processus sont dans leur section restante. On appellera latente une telle confi-
guration.

5 Tournez la page S.V.P.


Variable annulée. La combinaison des notions de variable couverte et de processus caché va
nous mener a u but poursuivi. Informellerrient, une variable est a~tiiulkepar un processus si celui-ci
ne “comniiniqiie” pas avec d’autres processus, et rouvre r e t t p variable. Plus formellement : si q est
une configuration, h une histoire finie et v une variable, o n dit que v est annule‘e par h en partant
de q s’il existe un processus caché par h en partant de q qui couvre v en res(q,h).
Question 11. Si S a au moins deux processus, montrer que pour toute configuration atteignable
latente q1, il existe une histoire finie n’utilisant que le processus po et une variable w telles que w
est annulée par h e n partant de q1.
Question 12. Soit k tel que O < k < n, et tel que pour toute configuration atteignable latente 41,
il existe une hzstoire finze h utdzsant seulement PO, . . . Pk-1 et telle que k variables distinctes sont
~

armulécs par 18 en partant de q 1 . Montrer que l’on peut conslruirt. des suites infinies QI, q 2 , q 3 , . . . I
h l , h z ,hy,.. ., et W l , W2,W3,.. . telles que pour tout i
1. W, est un ensemble de k variables distinctes,
2. 11, utilise seulement PO, . . .,p k - 1 ,
3. les variables de W, sont annulées par h, en partant de qe.
Question 13. Avec les hypothèses de la question précédente, montrer qu’il eziste une histoire h’
utdisant seulement PO,.. . , p k telle que k 4- 1 variables distinctes sont annulées par h en partant de
q1.
Question 14. En déduire le résultat final attendu : tout s y s t h e avec n 2 2 processus vérifiant les
propriétés d’exclusion mutuelle et de progrès global doit rauoir au moins n voriobles prartagges.

6
IV Bornes sur l’attente
On appelle tour une utilisation de la section critique par un processus. Lorsqu’un processus pi
est désireux d’utiliser la ressource (donc qu’il se trouve dans sa section d’essai), on appelle attente
de ce processus le nombre de tours effectués par Ies autres processus avant que p; ne puisse entrer
lui-même en section critique. Le but de cette partie est de donner des bornes supérieures sur l’attente
pour certains protocoles d’exclusion mutuelle.
Question 15. On consid65.e le protocole d’cxclmsa’on mutuelle siiiiiant.

repeat
drupeau[i]t demande
j t tour
while j # i do begin if drapeauIj] # passifthen j t tour
else j t ( j - 1) mod n
endif
end
drapeau[i]t dan.s-.sc
until seul(i)
tour t i
section critique
tour t (i - 1) mod rz
drapau{i] t passif
end.

OÙ seul(i) est le prédicat dk‘fini pur

(Vj #z : dmpeuu[j]# dans-SC)A drupeuu[i]= dans-sc

Montrer que l’attente d’un processus est bornée par 2n-’ - 1 tours.
Question 16. On considère la variante suivante.

repeat
drupeuu[i] +- demande
j +- tour
while j # i do begin if drupeau[j]# p s s i f then j t- tour
else j t ( j - 1) mod n,
endif
end
drapeau[i]t dans-se
until seul(;)
section critique
if drapean[tour] = pnsskf v tour = i
then tour t (tour - 1) mod n
endif
drapeau[i]t passif
end.

7 Tournez la page S.V.P.


Montrer que dans u n intervalle de temps pendant lequel la varaublc tour est constante, loul
processus peut passer uu plus une fois en section critique.
Question 17. Si j E { 1,- . ., n- l}, montrer que dans un intervalle de temps OÙ drapeau[O]# passif,
j peut pénétrer au plus ( n - j ) fois en section critique.
n n-1
Question 18. E n dduire que l’attente d’un processus quelconque est bornée par tours. Cette
borne peut-elle être atteinte ?
Question 19. Proposer u n protocole d’exclusion mutuelle sans interblocage pour lequel l’attente
d’un processus est bornée par ( n - 1).