4.2 Restri tion du domaine de la lutte : IRIS(PR C )
4.2.3 Simulation de IRIS (PR
Un algorithmequi simulelesopérationsdu modèle
IRIS(PR
3Sx)
estdé ritdansla Figure4.10.Nous onsidéronsi ilaversionreprésentantdeladénitionde3Sx
(voir ladénition 3.8, paragraphe 3.4, page 105). Chaquepro essuspi
met régulièrement à jour deux variables lo alesmi
etrpi
.mi
est la vue depi
de l'état de la mémoire partagée tandis querpi
ontient le représentant ourant depi
indiqué par le déte teur de défaillan es. operationIS[r].
restri ted_w_snap(< i, vi>)
: (1) repeatmi← R[r].
snap()
; (2)rpi←
repri
(3) until(< rpi, − >∈ mi) ∨ (rpi= i)
endrepeat; (4)smi← R[r].
write_snap(< i, vi>)
; (5)return(smi)
Fig. 4.10 De
SMn,n−1[3Sx]
versIRIS(PR3Sx)
( ode pourpi
)Proposition 4.1 L'algorithme de la Figure 4.10 simule lemodèle
IRIS(PR
3Sx)
dans lemodèleSMn,n−1[3Sx]
.Démonstration Nousdémontronsdansunpremiertempsquelesopérationsrestri ted_w_snap
()
terminent. Nousdémontrons ensuitequelapropriétéPR3Sx
estsatisfaite. Lesproprié-tés d'auto-in lusion, de omparaison et d'immédiateté dé oulent du fait que la vue
retournée
smi
estobtenue par l'intermédiaire d'unappelR[r].
write_snap(< i, vi
>)
. Terminaison∀r :
pour un pro essus orre t, l'appelIS[r].
restri ted_w_snap(<
Restri tiondu domaine de lalutte:
IRIS(PRC)
137La démonstrationreposesurlesdeuxobservationssuivantes quidé oulent immé-
diatement du ode :
1. Soit
pi
un pro essus orre t. Si au bout d'un ertain temps, on a toujours repri
= i
alorspi
nepeutêtrebloquéindéniment dansla bou lerepeat. 2. Au ours d'une ronder
, s'il existe un pro essus orre tpi
qui invoqueR[r].
write_snap()
alors tous les pro essus orre tspj
dont le représentant reprj
est au bout d'un ertain temps toujourspi
ne peuvent être bloquésindéniment danslabou lerepeat.
Soit
pi
unpro essus orre tetr
unnuméro derondearbitraire. Par dénitionde la lasse3Sx
,il existeun instant àpartir duquel lereprésentant depi
ne hange plus et est un pro essus orre t. Nous notonspℓ
e représentant nal depi
(éventuellement,ℓ = i
).Deplus, e représentant esttelque, aubout d'un ertain temps, reprℓ
= ℓ
est toujours vrai.D'aprèslapremièreobservation i-dessus,touteslesopérations
IS[1] .
restri ted_w_snap()
,IS[2] .
restri ted_w_snap()
,. . .
,IS[r] .
restri ted_w_snap()
depℓ
terminent. En parti ulier,pℓ
é rit dans l'objet partagéR[r]
. Par onséquent,pi
ne peut êtrebloqué indéniment dans labou le repeatde la ronde
r
ar, au bout d'un er-tain temps tous les vues
mi
(retournées par les appelsR[r].
snap()
) ontiennent l'identitéℓ
du représentant depi
.
PR
3Sx
D'après la spé i ation de la lasse
3Sx
il existe au bout d'un ertain temps unensemble de pro essus
Q
de ardinal au moinsx
qui ont le même représentant.Lesautres pro essus
∈ Q/
ontpourreprésentant leur propreidentité.Plusformel- lement,ilexisteuninstantτ
,unensembledepro essusQ
etunpro essus orre tpℓ∈ Q
tels que:|Q| ≥ x
; Pourpi∈ Q/
:∀τ
′
≥ τ :
reprτ′
i
= i
; Pourpi∈ Q
:∀τ
′
≥ τ :
reprτ′
i
= ℓ
.Soit
r
unerondequidémarreaprèsl'instantτ
.C'estàdireque haqueinvo ationIS[r].
restri ted_w_snap()
démarreàun instant plusgrand queτ
.Pardénition,
pℓ
estunpro essus orre t.Puisquenousavonsmontréquetousles appelsIS[r] .
restri ted_w_snap()
ee tués par les pro essus orre ts terminent,smr
ℓ
6= ∅
.Soitpi
∈ Q−{ℓ}
unpro essusquiterminesonappelIS[r] .
restri ted_w_snap()
. Cet appeldémarre aprèsl'instantτ
.Don , lors de l'exé ution de etappel, nous avons toujoursrp
i
= ℓ
. Ainsi, lorsque le prédi at de sortie de la bou le repeat est satisfait,ℓ ∈ mi
. De plus, d'après les propriétés de l'objetR[r]
, nous avonssmr
ℓ
⊆ mi⊆ smri
.Deplus,i ∈ sm
r
i
eti /∈ mi
d'oùsm
r
ℓ
( smri
.2P roposition4.1
4.2.4 Simulation deIRIS(PR
3ψy)
dans le modèleSMn,n−1[3ψ
y]
La onstru tion (Figure 4.11) s'inspire d'unalgorithme de
ℓ
-ex lusion mutuelle [2℄.min(1 + y, n − f )
. Pour ela,nous asso ions à haque rondeun ordre sur les identités despro essus.L'idéesous-ja enteestd'autoriser haquepro essuspi
àé rirelorsqueles pro essus qui le pré èdent dans l'ordre asso ié à la ronde ourante ont préalablementé rit. Ainsi, la vue
sm
obtenue par lepro essus de rang leplus élevé ontient tous les pro essus orre ts.Cependant,lespro essusnedisposentpasd'unmoyenablede al ulerexa tement
le nombre de pro essus orre ts qui les pré èdent. Le déte teur de défaillan es de la
lasse
3ψ
y
fournit seulement uneestimation dunombrede pro essus défaillants. Cette
informationsutnéanmoinspour al ulerunminorantdunombredepro essus orre t.
Nousverrons dansladémonstrationque, de ette façon,lepro essusdeplushaut rang
al uleune vuequi ontient au moins
min(y + 1, n − f )
pro essus orre ts.La fon tion déterministe order
(r)
retourne une permutationπr
des entiers1, . . . , n
tellequeπr(n) = i
si(i−1) = r mod n
.Soitµ
lapermutationmiroir(µ : (a1, . . . , an) →
(an, . . . , a1))
etπc
la permutation ir ulaire qui ee tue un dé alage à droite(πc
:
(a1, . . . , an) → (an, a1. . . , an−1))
.Parexemple,πr
peutêtredénie ainsi:πr= µ.π
r−1
c
.Des riptiondel'algorithmeetdémonstration Lorsqu'ilinvoque
IS[r].
restri ted_w_snap()
,unpro essus
pi
al ulelaséquen e (sequence
i
) desidentitésdespro essusasso iée àla ronder
(ligne 1), et détermine l'ensemble (pred
i
) des pro essus qui lepré édent dans etteséquen e(ligne2).Ensuite,pi
entredansunebou leau oursdelaquelleil al ule l'ensembleseeni
des pro essus qui (1) ont é rit dans l'objetR[r]
et (2) le pré èdent selon l'ordresequence
i
(ligne4). Illit également l'estimation(nbci
) du nombrede pro- essusdéfaillant fournie par ledéte teur. Ces instru tions sont répétées jusqu'à e quelespro essusde
predi
perçus omme orre tsaient é ritdansR[r]
(ligne6).pi
estimele nombrede espro essusàaumoins(|pred
i| − nbci
).Enn, lorsquepi
sortde labou le, ilé ritàsontourdansl'objetR[r]
(ligne7)etlesnapshotimmédiatretourné par ette opérationestlerésultat nalde l'appel(ligne8).operation
IS[r].
restri ted_w_snap(< i, vi>)
: (1)sequence
i
← order(r)
; (2)pred
i
← {j : j
appearsbeforei
insequence
i}
; (3) repeatmi← R[r].
snap()
; (4)seeni← mi∩ pred
i
; (5)nbci←
nb_i
(6) until
(|predi| − nbci≤ |seeni|)
endrepeat; (7)smi← R[r].
write_snap(< i, vi>)
; (8)return(smi)
Fig. 4.11 DeSMn,n−1[3ψ
y]
versIRIS(PR
3ψy)
( odepourpi
)Nousdémontronsd'abord quelesappels
IS[r].
restri ted_w_snap()
ee tués parles pro essus orre tsterminent (Lemme4.2).Laproposition4.1établitla orre tion delasimulation. Ladémonstration donnéedans[39℄ onsidère le asplusgénéral dumodèle
Restri tiondu domaine de lalutte:
IRIS(PRC)
139Lemme 4.2
∀r, ∀pi
pro essus orre t : les appelsIS[r].
restri ted_w_snap()
depi
ter- minent.Démonstration Pour établir une ontradi tion, supposons qu'il existe des rondes au
ours desquelles des pro essus orre ts ne sortent jamais de la bou le repeat. Soit
r
le plus petit numéro de ronde pour laquelle il existe un pro essus bloqué. Nous no-
tons
B
l'ensemble despro essus orre ts bloqués dansla bou le repeatde la ronder
. Ainsi, pour tout pro essuspi
∈ B
, le prédi at (|pred
i| − nbci
≤ |seeni|
) n'est jamais satisfait. Parmi les pro essusdeB
,soitps
lepro essusde plus petit rang selon l'ordre order(r)
.Dans equi suit,nousmontronsquel'invo ationIS[r].
restri ted_w_snap()
deps
termine :une ontradi tion.Nous distinguons deux as en fon tion du ardinal de
pred
s
(f
est le nombre de pro essusdéfaillant dansl'exé ution onsidérée).
|pred
s| ≤ max(n − 1 − y, f )
D'après la propriété de onvergen e inélu table de la lasse
3ψ
y
, il existe un
instant
τ
àpartirduquelnbcs= max(n − 1 − y, f )
,d'où|preds| − nbcs
≤ 0
.Don , aprèsτ
,leprédi atde sortiede labou leestvérié ar0 ≥ |mi∩ seeni|
pourps
.|pred
s| > max(n − 1 − y, f )
Notons
faulty(S)
l'ensemble des pro essus défaillants dans l'ensembleS
. Nous avons|faulty(S)| ≤ |faulty({1, . . . , n})| = f ≤ max(n − 1 − y, f )
.Notons
α
le nombre de pro essus orre ts dans l'ensemblepred
s
. Nous avonsα = |preds| − |faulty(preds)| ≥ |preds| − max(n − 1 − y, f )
. Cesα
pro essus orre tsontunranginférieuràps
dansl'ordreorder(r)
.Deplus,pardénitiondeps
,touslespro essus orre tsdontlerangestinférieurà eluideps
dansorder(r)
terminent leur appelIS[r].
restri ted_w_snap()
.Par onséquent, tous les pro essus orre ts de
preds
é rivent dans l'objetR[r]
. Il existe don un instantτ0
à partir duquelms
ontient les identités de tous es pro essus (ms
est la vue des pro essus qui ont é rit dans l'objetR[r]
et est régulièrement mise à jour parps
). D'autre part, la propriété de onvergen e inélu table de la lasse3ψ
y
assure l'existen e d'un instant
τ1
à partir duquelnbcs= max(n − 1 − y, f )
.Don ,aprèsτ = max(τ0, τ1)
,|seens| = |ms∩ pred
s| ≥ α
etα ≥ |pred
s| − nbcs
.Nousen on luonsqueps
sort delabou lerepeat, d'oùla terminaison de l'invo ationIS[r].
restri ted_w_snap()
.2Lemme4.2
Proposition 4.2 L'algorithme de la Figure 4.11 simule le modèle
IRIS(PR3ψy)
danslemodèle
SMn,n−1[3ψ
y]
.Démonstration LeLemme4.2établitlaterminaisondesopération restri ted_w_snap
()
par les pro essus orre ts. Cequi suit montre quedans toute exé utioninnie, lapro-priété
PR
3ψy
estsatisfaite.Soit
R
une ronde telle que∀r ≥ R, ∀pi
pro essus orre t : lors de l'exé ution deSoit
r ≥ R
unnuméro de rondequi satisfait(i − 1) = r mod n
et noussupposons quepi
obtientsmi
en retour de l'appelIS[r].
restri ted_w_snap()
. Nousmontrons que|smi| ≥ n − max(n − 1 − y, f )
.1. Le rang de
pi
selon l'ordre order(r)
estn
, d'où|pred
i| = n − 1
au ours de ette ronde. Le prédi atde sortie estsatisfait arl'appeltermine, d'où|seeni| ≥
|predi| − nbci= (n − 1) − max(n − 1 − y, f )
.2. Soit
mi
le dernier ensemble obtenu parpi
(ligne 3). Puisquei /∈ mi
et|predi| =
n − 1
,mi∩ pred
i= mi= seeni
.3. Finalement, onsait que, grâ eà l'objet
R[r]
,mi( smi
(propriété 4.2).En ombinant les relations pré édentes, nous obtenons