Prin ipes et des ription Le omposant roue du haut (Figure 3.8) se dé om-
poseen
4
tâ hesexé utées enparallèle.L'algorithme fon tionneselon lemême prin ipe que le omposant roue du bas. Il utilise une suite notéeL
qui ontient tous les sous-ensembles deΠ
de ardinalz = (t + 2) − (x + y)
.La suiteL
estsupposée onnue initialement de tous les pro essus. Nousnotonsnb
_L =
n
(t+2)−(x+y)
le nombred'élé-
mentsdanslasuite
L
etL[k]
sonk
ième élément.Lafon tionNext(L[k])
renvoieL[k + 1]
sik < nb
_L
etL[1]
sik = nb
_L
. Init:Li← L[1]
TaskT 3
: (1) repeatforever (2) Broad astInquiry()
; (3) waituntil`
orrespondingResponse
(id)
re eivedfrom≥ n −
nb_i
pro esses´
%nb_
i
andynami ally hange (4) letrec
_fromi
= {idj
re eivedpreviouslyatline3}
;(5) if
(rec
_fromi∩ Li= ∅)
thenR_Broad astL_move(Li)
endif(6) enddo
Task
T 4
:whenL_move(Li)
isR_delivered:Li←
Next(Li)
Task
T 5
:whenInquiry()
isre eivedfrompj
:sendResponse(
repri)
topj
TaskT 6
:whenleaderi
isreadbytheupperlayer:return(Li)
Fig. 3.8 De
3ψ
y+ 3S
x
versΩ
z
:roue duhaut ( ode pour
pi
)Le but de et algorithme est d'implémenter un déte teur
Ω
z
ave
z = (t + 2) −
(x + y)
. Pour ela, haque pro essuspi
béné ie de (1) la sortie du omposant roue du bas (variable repri
dont les valeurs su essives respe tent la dénition 3.8) et (2) l'information fourniepar ledéte teur3ψ
y
sous-ja ent (variablenb_
i
,dénition3.7). LavariableLi
,régulièrement miseàjourparl'algorithmeémulelasortied'undéte teurΩz
(tâ he
T 6
).Elle ontientà haqueinstantunensembledez
identitésetl'onsouhaite qu'à partir d'un ertain temps, et ensemble ne hange plus et in lue l'identité d'unpro essus orre t.
Lespro essuspar ourentdanslemêmeordrelasuiteinnie
L[1]
,L[2]
,. . .
,L[nb
_L]
,L[1]
,. . .
.La variablelo aleLi
,initialiséeàL[1]
ontientà haqueinstantl'ensembleen oursd'examen parpi
.L'examen d'unensembleLi
parpi
sedéroule ainsi:1.
pi
essaiede déterminersil'ensembleLi
ontient l'identité d'unpro essus orre t. Pour ela,ildiuserégulièrementdesmessagesInquiry(ligne2,tâ heT 3
).Lorsquequ'un pro essus
pj
reçoitun telmessage, ilrépond par unmessage Responsequi transportel'identité de sonreprésentant ourant (tâ heT 5
).2.
pi
passe ensuite en mode attente. Cette attente se termine lorsquepi
a reçu desmessages Response en provenan e de
n −
nb_i
pro essus. Par dénition de3ψy
(def. 3.7),nous savons qu'à partir d'un ertain temps, nous avons toujoursn−
nb_i= n−max(t−y, f ) ≤ n−f
.Orpi
reçoitaumoinsunmessageResponse de ha un des(n − f )
pro essus orre ts. Cette phase d'attente n'est don pas bloquante.3. Enn, après avoir reçu susamment de messages Response,
pi
olle te les iden- titésidj
transportées par esmessagesdans l'ensemblereci
(ligne 3).Sil'une de esidentitésest ontenue dansLi
,pi
onsidèrequeLi
a passél'examen. Eneet, le omposant rouedu basassurequ'à partir d'un ertain haquepro essusrepré-sentantest orre t. Dansle as ontraire, dupoint devuede
pi
touslespro essus deLi
sontdéfaillants.Ildiusedon defaçonable unmessageL_ move(Li)
pour informer lesautres pro essus(ligne 5) qu'ilsdoivent tester l'ensemble quisuitLi
dansl'anneauL
.L'idée d'un engrenage entre les deux omposants se retrouve par exemple dans le
s énario suivant. Supposons que les deux roues essent de tourner, 'est à dire que
le ontenu des variable
Li
et repri
soit stable. Plus tard, le représentantx
- ommuntombe en panne. La roue du bas se remet alors à tourner etson mouvement entraîne
éventuellement le redémarrage de la roue du haut. Le démarrage de la roue du haut
dépend de la ombinaison de plusieurs paramètres tels que les délais de transmissions
desmessagesResponse,l'ensemble
L
surlequellaroueduhauts'estarrêtéeetlenombre de ouples(X, ℓ)
à tester par les pro essus avant d'identier une onguration stable. Néanmoins, il existe des as où la rotation de la roue du haut est dire tement liée aumouvement de l'autreroue.
Démonstration de l'algorithme Les deux algorithmes sont fondés sur le même
prin ipe:lespro essuspar ourentl'ensembledes ongurationspossiblesquisontorga-
niséesenanneau jusqu'àidentierune ongurationquisatisfaitunepropriétédonnée.
Lorsqu'une onguration ne satisfait pasla propriété re her hée (i iune onguration
est un ensemble
L
de pro essus de ardinal z; la propriété re her hée l'existen e d'un pro essus orre t dans et ensemble), un pro essus orre t le déte te et diuse de fa-çonable etteinformation(messages*_Move(Cong.)).Laré eptiond'untelmessage
entraîne l'examen de la onguration suivante dans l'anneau. La démonstration de la
orre tion de l'algorithmeestdon largement inspirée deladémonstration pré édente.
Commed'habitude,nous onsidéronsunexé utioninniearbitraire.
Correct
désigne l'ensemble des identités des pro essus orre ts dans ette exé ution etvar
τ
i
dénote la valeurde lavariablelo alevari
dupro essuspi
à l'instantτ
.Lemme 3.8
∀i ∈ Correct
, il existe un ensembleΛi
et un instantτi
tels que∀τ ≥ τi
:
Lτ
i
= Λi
.Compositiondes lasses
3Sx
et3ψ
y
111
Démonstration La démonstration repose sur le fait suivant, qui est démontré un peu
plusloin :
Fait 3.2 Il existeun ensembled'identités
L
tel que lenombre demessagesL_move(L)
diusésest ni.Soit
pi
unpro essus orre t. Supposonspar ontradi tion qu'il n'existepasd'ensembleΛi
tel que, après un ertain instant,Li
= Λi
est toujours vrai. Les ensemblesL
sont logiquement organisés en anneau. Lorsque la valeur deLi
hange, elle est rempla ée par l'ensemble quiluisu ède dansl'anneau logique.Lesvaleurssu essivesdeLi
sont donL[1], L[2], . . . , L[nb
_L], L[1], . . .
.Par onséquent,Li
ontient ha undesensemblesL[β], 1 ≤ β ≤ nb
_L
inniment souvent.Enparti ulier,pi
exé uteLi
←
Next(L)
inni- mentsouvent.Ce i ontreditlefait3.2 arl'exé utionde etteinstru tionestdé len héepar la ré eption du message L_ move
(L)
. Or, dans l'exé ution onsidérée, un nombre nide es messagesest diusé. Il existe don un ensembleΛi
etun instantτi
tels que∀τ ≥ τi
:L
τ
i
= Λi
.Fait 3.2 Ilexisteunensembled'identités
L
telquelenombredemessagesL_ move(L)
diusésest ni.Démonstration La rouedu basee tue un nombreni de tours.Nous onsidérons un
instant
τ0
àpartirduquel larouedubasnebougeplus.Apartir de etinstant,ilexiste unensembleX ⊆ Π, |X| = x
etune identitéλ
tels que(proposition3.4) :1.
∀i ∈ Π − X, ∀τ ≥ τ0
: repr
τ
i
= i
et,2. (a)
X ∩ Correct 6= ∅ ⇒ (λ ∈ Correct ∩ X) ∧ (∀i ∈ X, ∀τ ≥ τ0
: repr
τ
i
= λ)
ou, (b)X ∩ Correct = ∅ ⇒
tousles pro essusdont l'identité estdansl'ensembleX
sonttombés enpanne avant
τ0
.Choisissons un ensemble
L ⊆ Π
qui satisfait les onditions suivantes (voir aussi la Figure3.9).
|L| = (t + 2) − (x + y)
;|X ∩ L| = 1
;
(X ∩ Correct 6= ∅) ⇒ X ∩ L = {λ}
;L ∩ Correct 6= ∅
.Observons que, danstoute exé ution innie, il est possible de hoisir un tel ensemble.
Deplusilyadans
L
aumoinsuneidentitéℓ
telquepℓ
estunpro essus orre tquiest, aubout d'un ertaintemps, toujourssonpropre représentant (reprℓ= ℓ
).Pourmontrerqu'unnombrenidemessagesL_ move
(L)
estdiusé,nousexaminons deux asselon lenombre depro essusfautifsf
.
f ≥ t − y + 1
.Il existe un instant
τ1
à partir duquel la valeur fournie par le déte teur3ψ
y
est
toujours
f
. Plus pré isément :∀τ ≥ τ1, ∀i ∈ Correct :
nb_τ
i
= f
(propriétéde onvergen e inélu table de la lasse
3ψ
y
Li
x− 1
|Li| = z = t + 2 − (x + y)
1
X
|X| = x
ℓx
ℓx
t− y + 1
Fig.3.9 Arrêt de laroueduhaut
message Inquiry ou Response envoyé par un pro essus fautif à destination d'un
pro essus orre ta étéreçuettraitépar sondestinataire avant
τ2
.Soit
τs
= max(τ0, τ1, τ2)
.Aprèsτs
,l'étatdu systèmeest stable:au un pro essus netombeenpanne,lessortiesdudéte teur3ψ
y
etdelarouedubasne hangent
plus.Soit
i ∈ Correct
.Aprèsτs
,lorsde haqueexé utiondelabou lerepeat,pi
reçoit exa tement unmessage Responsede haque pro essus orre t.Par hoix de
L
, il existe un pro essus orre tpℓ
,ℓ ∈ L
tel que reprℓ
= ℓ
est toujours vrai à partir deτ0
. Don , à partir d'un ertain instant, tous les mes- sages Response(idℓ)
envoyés parpℓ
sont tels queidℓ
= ℓ
. Puisque quepi
reçoit toujours aprèsτs
un message depℓ
, on a toujours à partir d'un ertain tempsℓ ∈ rec
_f romi
.Don ,leprédi atrec
_f romi∩ L
est,àpartird'un ertaintemps, toujoursvrai.Par onséquent,àpartirde etinstantpi
nediuseplusdemessage L_ move(L)
(ligne5). Nousen déduisonsquelenombredemessagesL_ move(L)
générés dansl'exé ution onsidéréeest ni.
f < t − y + 1
.Dans e as,ilexisteuninstant
τ1
telque∀τ ≥ τ1, ∀i ∈ Correct :
nb_τ
i
= t − y
. Delamêmemanièrequedansl'analysedu aspré édent,on onsidèrel'instantτ2
après lequelil n'y a plusde défaillan es nide ré eption de message de pro essusfautifs parles pro essus orre ts,ainsique l'instant
τs= max(τ0, τ1, τ2)
.Soit
i ∈ Correct
. Nous montrons d'abord qu'à partir de l'instantτs
,pi
reçoit toujours au moinsun message Response()
d'un pro essuspj
tel quej ∈ L ∪ X
.pi
attend la ré eption de messages Response()
en provenan e den −
nb_i
=
n − (t − y)
pro essusdistin ts.Parailleurs, par hoixdeL
,nousavons|L ∪ X| =
|L| + |X| − |L ∩ X| = (t + 2) − (x + y) + x − 1 = 1 + (t − y)
.Par onséquent,pi
reçoitettraiteun messaged'unpro essuspj
telquej ∈ L ∪ X
.La sortie du omposant roue du bas se stabilise (à l'instant
τ0
). A partir d'un ertain instant, les messages Response(idj)
envoyés par un pro essus orre tpj
,j ∈ L∪X
sontdon toujourstelsqueidj
= j
sij ∈ L−X
ouidj
= λ
sij ∈ X
.Dans lesdeux as,idj
∈ L
.A haque tourde labou lerepeat,rec
_f romi
estmis àjourave lesidentitésid
re oltées lors delaré eptiondesmessagesResponse()
. Onendéduitqu'ilexisteuninstantàpartirduquelleprédi atrec
_f romi∩L 6= ∅
esttoujours vrai.Le nombredemessageL_move(L)
diusépar haquepro essus orre tpi
est don ni. Comme un pro essus fautif ne diuse qu'un nombre niCompositiondes lasses
3Sx
et3ψ
y
113
demessages,onendéduitquelenombredemessagesL_ move
(L)
générés estni.2f ait3.2
2Lemme3.8
Corollaire 3.2 Il existe un instant à partir duquel les pro essus ne diusent plus de
messages L_move
()
.Démonstration Supposons qu'il existe un pro essus orre t
pi
qui diuse toujours de nouveauxmessagesL_ move.Nousétablissonsune ontradi tion. Ilexisteun instantτi
àpartirduquelLi
ontienttoujoursl'ensembleΛi
(lemma3.8). Aprèsτi
,pi
diusedon uniquement desmessagesL_ move(Λi)
.Par onséquent, puisque ladiusion est able, ilexisteuninstantτ > τi
auquelpi
reçoitunmessageL_ move(Λi)
.D'aprèsletextede l'algorithme, il hange alors la valeur deLi
en exé utantLi
←
Next(Λi)
: ontradi tionave leLemme 3.8.
2Corollaire3.2
Lemme 3.9
∀i, j ∈ Correct : Λi
= Λj
. (Dans la suite, et ensembleest notéΛ
.) Démonstration Soient deux pro essus orre tspi
etpj
.Puisque les messagesL_ move sont diusés de façon able,pi
etpj
reçoivent le même multi-ensemble de messages (propriétés de la diusion able, def. 1.1). Ce multi-ensemble est ni ( orollaire 3.2).Enn, es messagessont onsomméspar
pi
etpj
dansle même ordredéni par l'orga-nisation en anneau des ensembles
L
.La onsommation du message L_ move(L)
parpi
(ou
pj
) entraîne lamiseàjour deLi
(respe tivementLj
) ave lavaleurNext(L)
(tâ heT 4
).Onen déduitqueΛi
= Λj
.2Lemme3.9
Proposition 3.5 Soit
x, y
ett
tels que1 ≤ x ≤ t + 1
,0 ≤ y ≤ t
etx + y < t + 2
. Dans lemodèleMPn,t[3Sx, 3ψ
y]
, l'algorithmedela Figure 3.8simule undéte teur de
défaillan es dela lasse
Ω
z
tel que
z = (t + 2) − (x + y)
.Démonstration Lasortiedel'algorithmeestl'ensembledesvaleursdesvariables
Li, i ∈
Π
(tâ heT 6
). Nous établissons que es valeurs satisfont lapropriété leaders multiples(dénition 3.3). Il existe un ensemble