Vous êtes sur la page 1sur 31

Chapitre 5

Dtermination
dun tat global

Chap 5 Dtermination dun tat global

Lobservation dun tat global permet :


de dtecter des proprits caractrisant lexcution
(terminaison, interblocage, vrification dassertions, etc.)
deffectuer des mesures de performances
de capter des tats pouvant servir de points de reprise en cas de
dfaillance

Difficult dobservation globale dans un contexte rparti :


pas dhorloge commune
temps de transfert des messages non born (fini si pas de perte)
impossible deffectuer une observation simultane
exemple des photographies des vols doiseaux

Objectif :
Dtermination dun tat global cohrent qui peut tre observ
constitu des tats locaux des sites et des canaux de
communication

1. Etat global
1.1. Dfinitions [Raynal]
Chaque processus et chaque canal possde tout moment
un tat local :
- ltat local eli dun processus Pi rsulte de son tat
initial et de la squence dvnements dont ce
processus a t le sige.
- ltat ecij dun canal cij est lensemble des
messages en transit sur ce canal, cest dire qui ont
t mis par le processus Pi et nont pas encore t
reus par le processus Pj.

1.1. Dfinitions
Chaque vnement met en jeu un processus et
ventuellement un canal. On distingue :

vnement interne sur Pi : provoque la transition de


eli eli, tats avant et aprs lvnement
mission de m par Pi sur cij (cet vnement est not
missioni(m)) qui provoque :
la transition de eli eli et laffectation ecij := ecij {m}

rception de m par Pi sur cji (cet vnement est not


rceptioni(m)) qui provoque :
la transition de eli eli et laffectation ecji := ecji \ {m}.

Chacun de ces vnements est suppos atomique

1.1. Dfinitions

ltat local dun processus nest immdiatement


observable que par un observateur local ce processus
ltat local dun canal cij nest immdiatement
observable ni par son origine Pi ni par son extrmit Pj

Ltat global S dun systme rparti est constitu de


lensemble des tats locaux des processus et des
canaux qui le constituent:
S = { eli , ecij }

Un tat global cohrent correspond un tat global


dans lequel le systme peut se trouver.

1.1. Dfinitions
Formellement, un tat global cohrent est tel que :
i)

eli est un tat local du processus Pi

ii) Les conditions C1 et C2 suivantes sont vrifies:

C1) : si lvnement missioni (m) est capt dans eli, alors


lvnement rceptionj (m) est soit capt dans elj, soit le
message m appartient ecij

C2) : si lvnement missioni (m) nest pas capt dans eli ,


lvnement rceptionj (m) nest pas non plus capt dans elj
Un tat global cohrent est aussi appel coupe cohrente
( consistent cut ).

1.1. Dfinitions
Exemple

1.1. Dfinitions
Dfinition quivalente dune coupure cohrente [Rifflet] :

Une coupure C de lhistoire globale dun systme est


un n-uplet dont chaque composante est un prfixe de
lhistoire locale du site correspondant :
C = < c1, , cj , cn > o cj = <ej1, ej2, , ejm >

Une coupure C est dite cohrente (ou consistante) si


elle est ferme vis vis du pass de ses lments :
tout lment dans le pass dun vnement de la
coupure appartient lui-mme la coupure

Exercice
Dans lexemple suivant, les coupures C et C sont-elles
cohrentes ?

1.2. Caractrisation des coupures cohrentes par


lestampillage vectoriel de Lamport

On associe une coupure C la suite des vnements


< e1, , ej , en > (ej est lvnement le plus rcent du site Sj
appartenant la coupure).

Associons la coupure C lestampille vectorielle EV(C) dfinie


par :
EV(C) = <EV(e1) [1], , EV(ej) [j] , EV(en) [n] >

La coupure est cohrente si et seulement si :


EV(C) = sup (EV(e1), EV(ej), EV(en)), avec :
sup (EV(e1), EV(ej), EV(en)) [k] = (sup (EV(e1) [k], ....,
sup (EV(ej) [k], ... sup (EV(en) [k]

Exercice : appliquer ce rsultat aux coupures C et C de lexemple


prcdent

2. Hypothses sur les canaux de communication


2.1. Dfinition des types de messages
Soit c un canal, m et m1 deux messages empruntant ce canal.
On dit que m double m1 si et seulement si :
mission (m1) mission (m) et rception (m) rception (m1)
Quatre types possibles de messages peuvent tre dfinis
selon les contraintes de doublement :
i) Un message m est de type marqueur sil ne peut ni doubler ni tre
doubl par aucun message transitant sur le mme canal :
m1, mission (m1) mission (m) rception (m1) rception (m)
et m2, mission (m) mission (m2) rception (m) rception (m2)

2.1. Dfinition des types de messages


ii) Un message m est de type ct_pass (contraint par son pass)
sil ne peut doubler aucun message :
m1, mission (m1) mission (m) rception (m1) rception (m)

iii) Un message m est de type ct_futur (contraint par son futur)


sil ne peut tre doubl par aucun message :
m2, mission (m) mission (m2) rception (m) rception (m2)

iv) Un message m de type ordinaire nimpose pas de conditions


de rception :

il ne peut pas doubler les messages marqueur et ct_futur


il ne peut pas tre doubl par les messages marqueur et ct_pass

2.1. Dfinition des types de messages

2.1. Dfinition des types de messages

Les types de messsages dfinissent une gamme de comportement du


canal :
le moins contraint (tous les messages sont ordinaires)
le plus contraint (tous les messages sont de type marqueur) canal FIFO
Pour un canal donn, les trois proprits A1, A2 et A3 suivantes sont
quivalentes :
A1 : tous les messages sont de type ct_pass
A2 : tous les messages sont de type ct_futur
A3 : tous les messages sont de type marqueur

2.2. Hypothses globales sur les canaux de communication


Rappel : la proprit dordre causal porte sur lensemble des
canaux.
Pi , Pj , Pk , m mis sur cij , m1 mis sur ckj :
missioni (m) missionk (m1) rceptionj (m) rceptionj (m1)

Remarque : si la proprit dordre causal est garantie alors chaque


canal a un comportement FIFO (rciproque fausse)

2.3. Superposition

A chaque processus Pi est associ un processus observateur CTLi :


ce processus peut lire ltat de Pi.

La rception dun message par Pi est ralise par CTLi, qui le


dlivre ensuite Pi ;

Pi confie CTLi les messages quil veut transmettre vers tout


autre processus Pj :

CTLi se charge alors de son mission vers CTLj

Les processus CTLi sont chargs de capter un tat global cohrent


de lapplication.

Ils cooprent entre eux laide de messages de contrle.

Un tels schma dobservation des processus Pi par des contrleurs


CTLi est appel superposition.

3. Algorithme de Chandy et Lamport


3.1. Principe

Hypothse : canaux FIFO

m1 < m2

mission (m1) mission (m2)


rception (m1) rception (m2)

Tout message m dfinit deux sous-ensembles disjoints :

messages mis avant m, not <m

messages mis aprs m, not >m


Considrons lenregistrement de ltat local eli du processus Pi

3.1. Principe de lalgorithme de Chandy et Lamport

Pour assurer la cohrence dun couple dtats locaux (eli, elj) (conditions
C1 et C2), seules les rceptions de messages mis par Pi avant
lenregistrement de eli doivent tre captes dans elj.

Le processus Pi met, lorsquil enregistre son tat eli, un message de


contrle (appel mk) sur le canal cij.
le processus Pj doit alors enregistrer son tat local elj au plus tard
la rception de ce message mk.
en effet, par dfinition :
<mk = {m | missioni(m) capte dans eli }
>mk = {m | missioni(m) non capte dans eli }

De plus, elj tant enregistr au plus tard la rception du message


mk :
<mk {m | rceptionj (m) capte dans elj }

Do :
{m | rceptionj (m) capte dans elj } {m | missioni (m) capte dans eli }
ce qui assure le respect des conditions C1 et C2.

3.1. Principe de lalgorithme de Chandy et Lamport


Principe du fonctionnement :
Chaque processus Pj enregistre son tat local elj et ltat de ses
canaux entrants en observant les deux rgles suivantes :
R1 : un processus Pj qui capte son tat local envoie sur tous ses canaux
de sortie un message de contrle (appel mk) pour signifier ses
voisins quil a enregistr son tat local.
R2 : la rception dun message mk sur un de ses canaux dentre, par
exemple cij , un processus Pj peut se trouver dans lune des deux
situations suivantes :

Pj na pas encore capt son tat local : il doit alors enregistrer


cet tat (R1) ltat ecij du canal cij est vide car Pj a reu tous
les messages mis avant le message mk.

Pj a dj enregistr son tat local (soit de sa propre initiative,


soit suite une rception antrieure dun message mk sur un
autre canal dentre) ltat du canal cij est constitu des
messages reus sur ce canal aprs que Pj ait enregistr son
tat local et avant quil ne reoive mk.

3.2. Exemple de lalgorithme de Chandy et Lamport

Exemple de fonctionnement :

3.3. Algorithme de Chandy et Lamport


Chaque processus Pj du systme est dot de kj canaux dentre
et de lj canaux de sortie :

c_inj : [1..kj] canaux dentre

c_outj : [1..lj] canaux de sortie


Lobservateur CTLj associ au processus Pj, a accs ces canaux et est dot
des variables suivantes :

elj : tat local

ecj : [1..kj] files de messages

reuj : [1..kj] boolens initialiss faux

enreg_tatj : boolen initialis faux


- elj et ecj[x] mmorisent respectivement ltat local et ltat du canal c_inj[x] ;
- reuj [x] passe vrai lorsquun message mk est reu sur le canal c_inj[x] ;
- enreg_tatj sert indiquer que le processus Pj a enregistr son tat local.

3.3. Algorithme de Chandy et Lamport


Procdure excute par CTLj lorsque ltat local de Pj est capt :
Procdure capter_tat_local
dbut
elj tat local du processus Pj ;
enreg_tatj vrai ;
x : 1 x kj : ecj[x] ;
y : 1 y lj : envoyer mk sur c_outj[y]
fin
Procdure excute par CTLj lorsque la participation de Pj ltat global
est calcule :
Procdure fini
dbut
si x : 1 x kj : reuj[x] alors
stocker (elj , ecj [1..kj]) chez le processus prvu cet effet
fsi
fin

3.3. Algorithme de Chandy et Lamport


Le comportement de CTLj est exprim par les deux noncs suivants :
lors de la dcision locale de calculer un tat global
dbut
si enreg_tatj alors capter_tat_local fsi
fin
lors de la rception de m sur c_inj[x]
dbut
si m=mk alors
si enreg_tatj alors capter_tat_local fsi ;
reuj[x] vrai ;
fini ;
sinon
si enreg_tatj et reuj[x] alors
ecj[x] ecj[x] m ; /* ajout de m en queue de ecj[x] */
fsi ;
dlivrer m au processus Pj du calcul observ
fsi
fin

4. Solutions pour canaux non FIFO

Rappel : contrainte de non-perturbation

Si les canaux sont FIFO, lutilisation des messages de contrle mk


dans lalgorithme de Chandy et Lamport permet de sparer lensemble
des messages mis avant lenregistrement de ltat local du processus
metteur de lensemble des messages mis aprs

Si les canaux ne sont plus FIFO la dlimitation ne peut pas se faire


sans perturber lordre des messages.

techniques nutilisant pas de messages de contrle explicites


(Lai Yang, Mattern).

solutions utilisant des messages de contrle (Ahuja)

4.1. Solution sans messages de contrle explicites


Mthode cumulative (mais rapide) de Lai et Yang
Cet algorithme est bas sur lutilisation de deux couleurs, symbolisant
- pour les processus : lavant (vert) et laprs (rouge) enregistrement de ltat local
- pour les messages : la couleur de leur metteur.
Chaque processus obit aux rgles suivantes :
R1 : un processus qui na pas encore enregistr son tat est color en vert, et tous les
messages quil met sont colors en vert.
R2 : lorsquon processus enregistre son tat local, il devient rouge et tous les
messages quil met ensuite sont colors en rouge.
R3 : un processus vert peut tout moment enregistrer son tat local, et au plus tard
lorsquil reoit un message rouge.
R4 : les messages verts mis et reus sur chaque canal sont stocks (aspect
cumulatif de lalgorithme) .
R5 : chaque processus rouge transmet un mme collecteur sont tat local et
lensemble des messages (verts) quil a stocks*
*dans msg_misi (Cf. ci-dessous) : ji, Pi envoie Pc les messages stocks dans msg_misi[j]
(qui est vid)

4.1.1. Mthode cumulative (mais rapide) de Lai et Yang


Un tat global cohrent est calcul par le processus collecteur lorsque ce
dernier a reu les informations de tous les processus participants :
Ltat ecij dun canal cij est la diffrence entre lensemble des messages verts
mis par Pi vers Pj , not msg_misi[j], et lensemble des messages
verts reus par Pj depuis Pi, not msg_reusj[i].
Preuve : montrer que les conditions C1 et C2 sont bien vrifies
Remarques :

Par rapport lalgorithme de Chandy et Lamport, aucun message de


contrle supplmentaire nest ncessaire.

Par contre le processus observateur CTLi doit observer les envois et


rceptions de messages effectus par Pi de manire continue (aspect
cumulatif) nombre de messages stocks important

Exercice : Cf. feuille dexercices du chapitre 5.

4.1.2. Mthode non cumulative (mais lente) de Mattern


Principe :

Linconvnient de lalgorithme de Lai et Yang (aspect cumulatif) disparat dans


lalgorithme de Mattern, qui utilise des compteurs et des messages
supplmentaires pour viter le stockage des ensembles de messages
plus grand dlai pour lobtention de ltat global

Cet algorithme est bas sur la proprit suivante : les messages en transit sur
cij sont exactement les messages verts mis par le processus Pi (capts dans
eli) et reus par le processus rouge Pj (non capts dans elj).

Or un processus Pj sait que les messages verts quil a reu aprs son
enregistrement sont des messages en transit sur le canal, mais il ne sait pas
sil les a tous reus (car un message rouge peut trs bien avoir doubl des
messages verts : canaux non FIFO).

On va donc utiliser des compteurs de messages : chaque fois quun processus


Pi enregistre son tat local, il rajoute aux informations quil envoie au
processus centralisateur, la diffrence di entre le nombre de messages mis
(donc verts) et le nombre de messages verts reus AVANT lenregistrement.

Le nombre exact mt de messages en transit sur lensemble des canaux est


alors : mt = i di

4.1.2. Mthode non cumulative (mais lente) de Mattern


Algorithme de Mattern :
Chaque processus obit aux rgles suivantes :
R1 : un processus qui na pas encore enregistr son tat est vert et tous les
messages quil met sont verts.
R2 : lorsquun processus enregistre son tat local il devient rouge et tous les
messages quil met ensuite sont rouges.
R3 : un processus peut tout moment enregistrer son tat local et doit
lenregistrer (si ce nest pas dj fait) lorsquil reoit un message
rouge, sans le prendre en compte.
R4 : chaque processus qui devient rouge transmet au processus collecteur
Pc sont tat local et son di.
R5 : un processus rouge transmet Pc tous les messages verts quil reoit.

4.1.2. Mthode non cumulative (mais lente) de Mattern


Algorithme de Mattern :
Le processus Pc, lorsquil reoit :

un enregistrement (eli, di) : il excute N = N 1 (o N est initialis au


nombre de processus) et mt = mt + di

un message vert (M, (site metteur Pi, site rcepteur Pj)) : (en
provenance donc de Pj) : il rajoute M cij et dcrmente mt

lorsque N = 0 et mt = 0, Pc dispose de tous les tats locaux et de tous


les messages en transit : il a donc ltat global.

Conclusion : dans ces deux algorithmes, le processus collecteur Pc


est indispensable pour calculer ltat global aspect centralis

Exemple de scnario :

4.2. Autres solutions


4.2.1. Solutions avec des messages de contrle explicites

solutions dcentralises qui adaptent lalgorithme de Chandy et


Lamport

bases sur lutilisation de messages de contrle - marqueurs - de type


CT_PASSE ou CT_FUTUR

ces messages vont permettre de sparer lensemble des messages


mis AVANT lenregistrement et lensemble des messages mis
APRES algorithme dAhuja.

4.2.2. Solutions fondes sur lordre causal


Rappel : lordre causal sur un ensemble de canaux est une proprit
plus forte que les canaux FIFO
on peut dfinir des algorithmes plus simples que Chandy et Lamport
algorithmse de Acharya et Badrinah et dAlagar et Venkatesan

Vous aimerez peut-être aussi