Vous êtes sur la page 1sur 4

Corrig

Examen dalgorithmique distribue


EPITA ING1 2011 S2; A. D URET-L UTZ

Dure : 1 heure 30
Juin 2009

Consignes
Tous les documents (sur papier) sont autoriss.
Les calculatrices, tlphones, PSP et autres engins lectroniques ne le sont pas.
Rpondez sur le sujet dans les cadres prvus cet effet, ainsi que sur les figures.
Il y a 5 pages dnonc.
Rappelez votre nom en haut de chaque feuille au cas o elles se mlangeraient.
Le barme est indicatif et correspond une note sur 27.

Horloges de Lamport et causalit (9 points)

On considre un systme distribu constitu de 4 sites P1 , P2 , P3 , P4 , senvoyant des messages de faon


asynchrone comme reprsent par la figure suivante. Les vnements dun processus, reprsents par
des gros points noirs, sont soit des vnements locaux (tapes dun calcul), soit des envois ou des
rceptions de messages. Ces vnements sont dats par un systme dhorloges de Lamport, initialises
0 dans chaque tat initial.
P1

P2

P3

P4

1
a
1

7
c
6

10

d
3

10

b
0

1. (2 points) Indiquez au dessus de chaque point de la figure, la valeur de lhorloge du processus


o se produit lvnement correspondant.
2. (2 points) On considre les vnements a, b, c et d de la figure. Cochez toutes les formules justes :
ab
ba
 akb

ac
ca
 akc

bc
cb
 bkc
1

ad
da
 akd

On considre les deux coupures dsignes C1 et C2 dans la figure ci-dessous (qui reproduit les
communications de la figure prcdente) :
P1
P2
P3
P4
C1

C2

3. (2 points) Les coupures C1 et C2 sont-elles cohrentes ? Justifiez vos rponses.


(Nhsitez pas nommer des tats sur la figure pour vous aider vous justifier.)
Rponse :
C1 est cohrente : tous les messages reus dans la coupures ont ts envoys dans la coupure.
C2 nest pas cohrente : P1 a reu un message qui a t envoy aprs la coupure.
4. (3 points) Supposons que ltat de chaque processus ait t sauvegard au moment de la coupure.
Les valeurs des horloges de Lamport sauvegardes avec chaque processus suffisent-elles pour
dcider si la combinaison de ces tats locaux forme un tat global cohrent ? Comment peut-on
dtecter ces incohrences autrement ?
Rponse :
Les horloges de Lamport ne suffisent pas. Ce nest pas parce quon a HL( a) < HL(b) que
a b.
Il faudrait utiliser des horloges vectorielles. Dans ce cas la coupure C = (c1 , c2 , ..., cn ) est
cohrente ssi pout tout processus Pi on a HVi (ci )[i ] = max j HVj (c j )[i ].
Ou encore : on pourrait compter, sur chaque site, le nombre de messages mis vers et reus
de tous les autres sites. Pour vrifier quune sauvegarde est cohrente il faut alors consulter
ces compteurs pour sassurer quun site Pi na pas reu dun site Pj plus de messages que le
site Pj ne lui en a envoy.

Horloges matricielles (9 points)

On considre maintenant un systme distribu constitu de trois sites nomms P1 , P2 et P3 , utilisant des
horloges matricielles pour dater les vnements de chaque processus.

0 0 0
Ltat initial du chaque processus est 0 0 0. On considre quaucun vnement (local ou envoi/rception
0 0 0
na eu lieu dans ltat initial.
Aprs quelques instants dexcution, les horloges des processus P1 , P2 et P3 indiquent les dates suivantes :

3 0 1
HM1 = 1 1 0
1 0 2

0 0 0
HM2 = 1 2 1
0 0 0

Page 2

2 0 1
HM3 = 1 2 1
1 0 3

Pour la suite on supposera que tous les messages envoys ont t dlivrs au plus tard aux dates
indiques. Cest--dire quaucun message nest en transit.
1. (1 point) Au total, combien de messages ont t changs ?
Rponse :
Il y a eu quatre message changs. Les horloges indiquent que P1 a envoy un message au
processus P3 (HM3 [1, 3]), P2 a envoy un message chaque autre processus (HM3 [2, 1]) et
(HM3 [2, 3]), et P3 a envoy un message au processus P1 (HM3 [3, 1]).
2. (1 point) Au total, combien dvnements ont eu lieu ?
Rponse :
Il y a eu 8 = HM1 [1, 1] + HM2 [2, 2] + HM3 [3, 3] vnements.
3. (1 point) Au total, combien dvnements locaux ont eu lieu ? (cest--dire sans compter les vnement correspondants des missions ou des rceptions de messages, ni ltat initial)
Rponse :
8 vnements permettent de faire 4 missions et 4 rceptions. Comme 4 messages ont ts
changs, il ny a eu aucun vnement local.
4. (2 points) Dans quel ordre ont t envoys les messages de P2 ? (Justifiez votre rponse.)
Rponse :
P2 a envoy deux messages : lun vers P1 et lun vers P3 . Dautre part HM2 [2, 2] nous dit quil
na excut que deux vnements. Sil avait envoy le message vers P1 en deuxime on aurait
(121) comme seconde ligne de HM1 .
Le message P1 a donc t envoy avant le message P2 .
5. (4 points) Compltez le schma suivant pour reconstruire lhistorique des vnements jusquaux
dates indiques. Vous indiquerez la date (matricielle) de chaque vnement.

P1

0 0 0
0 0 0
0 0 0

1 0 0
2 0 1
1 1 0 1 1 0
0 0 0
0 0 0

3 0 1
1 1 0
1 0 2

P2

P3

0 0 0
0 0 0
0 0 0

0 0 0
1 2 1
0 0 0

0 0 0

1 1 0
0 0 0
0 0 0 0 0 0
0 0 0

2 0 1
2 0 1
1 1 0 1 1 0
0 0 1
1 0 2

2 0 1
1 2 1
1 0 3

Un Parking (9 points)

Un parking possde p portes par lesquelles des voitures peuvent entrer ou sortir. Le parking ne doit
jamais contenir plus de N voitures. chaque porte se trouve un gardien ; les gardiens communiquent

Page 3

en senvoyant des messages (de faon asynchrone, par exemple laide de pigeons voyageurs supposs
fiables) ; ils doivent faire en sorte que la capacit du parking ne soit jamais dpasse. Il faut par ailleurs
que, sil y a rgulirement des sorties, toute voiture qui attend pour entrer par la porte de son choix y
parvienne en un temps fini.
Dcrire un algorithme rparti, qui sera appliqu par chacun des gardiens, afin rsoudre le problme.
Cet algorithme utilisera des principes prsents en cours. Le nombre de messages changs entre deux
entres de voitures devra tre born.
Mises en gardes :
Une ide (incorrecte) serait de partager initialement les N places du parking en p lots de N/p places,
la responsabilit de chaque gardien. Dans ce cas le gardien peut laisser rentrer N/p voitures, plus
autant de voitures quil a laiss sortir. Cependant, avec ce schma si toutes les voiture sortent par
la mme porte, cette dernire porte devient la seule entre possible et les voitures qui cherchent
rentrer par une autre porte y restent bloques (ce quon ne veut pas)
Une autre ide (tout aussi incorrecte) serait dimaginer que les gardiens tentent de garder le compte
des places libres en diffusant (aux autres gardiens) des messages entre ou sortie chaque fois
quune voiture entre ou sort par leur porte. Le problme est que ces diffusions ne sont pas dlivres
instantanment et quelles peuvent aussi se croiser. Cela devient critique lorsquil ny a plus beaucoup de places libres. Par exemple sil ne reste plus quune place libre, deux gardiens pourraient
simultanment laisser rentrer chacun une voiture.
Rponse :
On peut utiliser une variante des algorithmes dexclusion mutuelle jetons vus en cours. On
stocke sur le jeton le nombre de places disponibles (en plus des informations ncessaires au protocole de dexclusion). Un gardien ne peut laisser rentrer ou sortir une voiture que sil a le jeton et
quil peut mettre jour le nombre de places libres.
Dautre part si un gardien qui souhaite faire rentrer une voiture rcupre un jeton indiquant quaucune place nest libre, il ne fera pas rentrer la voiture et redemandera le jeton aussitt quil laura
cd un autre gardien.

Page 4

Vous aimerez peut-être aussi