TD 3 - Algorithmes `
a base d’horloges
Contexte
✯les communications sont fiables : tout message ´
emis est d´
elivr´
e au bout d’un temps arbitraire mais fini,
✯le nombre N de processus est fixe et connu de tous,
✯il n’y a pas de panne de machine.
Dans l’ensemble de ce TD, on consid`
ere un ensemble de processus ind´
ependants, chaque processus s’ex´
ecutant sur
un site distinct. Le seul moyen de communication qu’ils poss`
edent est l’´
echange de messages. Par la suite, on pourra
confondre l’identit´
e d’un processus avec l’identit´
e du site sur lequel il s’ex´
ecute.
Exercice(s)
Exercice 1 – Gestion centralis´
ee d’une exclusion mutuelle r´
epartie
On consid`
ere un ensemble de processus r´
epartis se partageant une ressource critique. Pour garantir l’exclusion mu-
tuelle, on utilise un processus particulier, appel´
e maˆ
ıtre, qui est charg´
e de g´
erer les requˆ
etes d’acc`
es `
a la ressource.
Les acc`
es `
a la ressource se font de mani`
ere locale, i.e., le maˆ
ıtre ne fait que d´
elivrer les autorisations, il ne traite pas
les acc`
es.
Question 1
Proposez un algorithme pour g´
erer cette exclusion mutuelle (pr´
ecisez les actions effectu´
ees par le maˆ
ıtre, les autres
processus et les messages ´
echang´
es).
Question 2
Repr´
esentez sur un exemple impliquant trois sites (P, Q, R) le fonctionnement de cet algorithme. On supposera que
les demandes d’entr´
ees en section critique sont rec¸ues par le maˆ
ıtre dans l’ordre P, R, Q.
Question 3
Quelle est la complexit´
e en nombre de messages ´
echang´
es de cet algorithme, lorsque tous les processus demandent
une fois la section critique ? Que se passe-t-il si le maˆ
ıtre ne respecte pas l’ordre d’arriv´
ee des demandes ?
Question 4
Quelles sont les avantages et inconv´
enients de cette solution ?
Exercice 2 – Algorithme de Ricart et Agrawala
On veut maintenant g´
erer l’exclusion mutuelle de mani`
ere compl`
etement r´
epartie : au lieu d’avoir un site maˆ
ıtre,
chaque site g`
ere localement des informations sur les requˆ
etes en attente. Un processus peut entrer en section critique
lorsque sa requˆ
ete a ´
et´
e acquitt´
ee par tous les autres processus.
1
Module AR TD 3 – page 2/3
Un site qui envoie un acquittement autorise donc le processus ´
emetteur de la requˆ
ete `
a entrer en section critique.
Par cons´
equent, l’algorithme doit fixer l’instant auquel un site ´
emet un acquittement, de mani`
ere `
a garantir qu’il n’y
a jamais deux processus simultan´
ement en section critique. On pose aussi la contrainte que la requˆ
ete servie soit
toujours la plus ancienne requˆ
ete non trait´
ee.
Un site n’´
emet qu’une requˆ
ete `
a la fois. Autrement dit, il ne pourra faire une nouvelle demande d’acc`
es en section
critique que lorsque la pr´
ec´
edente aura ´
et´
e satisfaite.
Question 1
On consid`
ere 3 processus i,jet k.iet jont ´
emis une requˆ
ete d’entr´
ee en section critique, celle de iest ant´
erieure `
a
celle de j.kn’a pas ´
emis de requˆ
ete.
A quel moment ir´
epond-il `
aj?jr´
epond-il `
ai?kr´
epond-il `
aiet j? Combien de types de messages sont-ils
n´
ecessaires pour ces r´
eponses ?
Question 2
Comment un site peut-il ˆ
etre sˆ
ur qu’il n’y a pas de requˆ
ete plus ancienne que la sienne en transit ?
Question 3
Pourquoi n’utilise-t-on pas les horloges physiques pour dater les messages ?
Toutes les r´
ef´
erences temporelles se font maintenant par rapport aux horloges logiques.
Question 4
Quelles sont les informations que doit g´
erer localement un site pour savoir s’il remplit la condition d’entr´
ee en section
critique ?
Question 5
Quelles sont les informations que doit g´
erer localement un site pour savoir `
a quel moment il doit r´
epondre `
a une
requˆ
ete ?
Question 6
´
Ecrivez cet algorithme, en pr´
ecisant les actions effectu´
ees par un processus
– lors de la r´
eception d’un message ;
– lorsqu’il fait une demande d’entr´
ee en section critique ;
– lorsqu’il sort de section critique.
Question 7
Expliquez pourquoi deux processus ne peuvent pas se trouver simultan´
ement en section critique.
Question 8
`
A un instant donn´
e, tous les sites ont-ils la mˆ
eme image de la file d’attente ? Expliquez pourquoi ce n’est pas un
probl`
eme.
Question 9
Quelle est la complexit´
e, en nombre de messages ´
echang´
es, de cet algorithme pour une demande de section critique ?
Exercice 3 – Section critique `
a entr´
ees multiples
On consid`
ere le probl`
eme de la k-exclusion mutuelle : une ressource qui doit ˆ
etre acc´
ed´
ee en exclusion mutuelle est
disponible en kexemplaires. Toutes les demandes des processus ne portent que sur un exemplaire de la ressource et
un processus n’´
emet pas de nouvelle demande tant que sa demande en cours n’a pas ´
et´
e satisfaite. On peut donc avoir
jusqu’`
akprocessus simultan´
ement en section critique.
On se propose dans cet exercice d’´
etendre l’algorithme de Ricart-Agrawala pour r´
esoudre le probl`
eme de la k-
exclusion mutuelle (solution propos´
ee par Raymond).
c
�2009/2010 (by UPMC/LMD/MI048) 20 janvier 2010