• Nenhum resultado encontrado

Enforcement par moniteur

No documento Yliès Falcone (páginas 113-118)

Dans cette section, nous introduisons la notion de moniteur d’enforcement. Nous pr´esentons une notion g´en´erale de moniteur param´etr´e par un ensemble g´en´erique d’op´erations d’enforcement. Puis, nous d´efinissons comment de tels moniteurs enforcent une propri´et´e. Ensuite, nous instantions ces moniteurs avec un ensemble d’op´erations d’enforcement “minimales” et ´etudions la notion d’enforcement pour ces moniteurs. ´Egalement, nous ´etudions les propri´et´es v´erifi´ees par ces moniteurs particuliers.

6.3.1 Notion de moniteur d’enforcement g´ en´ erique

Nous d´efinissons la notion centrale de moniteur d’enforcement. Un tel dispositif, pr´evu pour op´erer

`

a l’ex´ecution des syst`emes, surveille un programme cible en examinant ses ´ev´enements int´eressants. A chaque entr´ee produite par le programme son ´etat ´evolue et une op´eration d’enforcement est produite.

Les moniteurs d’enforcement sont param´etr´es par un ensemble d’op´erations d’enforcementOps.

D´efinition 38 (Op´erations d’enforcement Ops). Les op´erations d’enforcement sont destin´ees `a op´erer une modification de la m´emoire interne du moniteur d’enforcement et produisent potentiellement une sortie. Plus sp´ecifiquement, ils prennent comme entr´ee un ´ev´enement et un contenu m´emoire (i.e., une s´equence d’´ev´enements) pour produire une s´equence de sortie et un nouveau contenu m´emoire : Ops=(Σ×Σ)→(Σ×Σ).

6.3 : Enforcement par moniteur D´efinition 39 (Moniteur d’enforcement g´en´erique (EM(Ops))). Un moniteur d’enforcement (enforcement monitor : EM)Aest un moniteur,i.e., un 5-tuple(QA!,qinit

A!,−→A!,Ops,ΓA!)o`u la fonction de sortie produit des op´erations d’enforcement deOpssur chaque ´etat de l’automate.

Les notions derunet detrace pour les EMs se transposent naturellement depuis ces mˆemes notions d´efinies pour les automate de Streett (cf. Chapitre 3 Section 3.6). Dans la suite de cette section, σ∈Σ d´esigne une s´equence d’ex´ecution d’un programme etA =(QA,qinit

A,−→A,Ops,ΓA) d´esigne un EM(Ops).

D´efinition 40 (Run et trace). LerundeσsurAest la s´equence des ´etats impliqu´es par l’ex´ecution deA lorsqueσlui est donn´e en entr´ee. Ce qui est formellement d´efini commerun(σ,A)=q0·q1· · · o`u q0 =qinitA∧ ∀i,(qi∈QA∧qi−→σi A qi+1). Latrace r´esultant de l’ex´ecution deσsur A est la s´equence (finie ou non) de triplets (q0, σ00,q1)·(q1, σ11,q2)· · ·(qi, σii,qi+1)· · · o`u run(σ,A) =q0·q1· · · et

∀i·αi= Γ(qi+1).

Ainsi, un moniteur d’enforcement n’applique pas d’op´eration d’enforcement sur l’´etat initial lors de la soumission d’une s´equence d’entr´ee. Celui-ci r´ealise la premi`ere op´eration sur le premier ´etat visit´e et le premier ´ev´enement de la s´equence d’entr´ee.

Nous formalisons la mani`ere dont un EM(Ops) r´eagit `a une s´equence d’ex´ecution donn´ee en entr´ee,

´etant donn´e un programme cible. Ceci repose sur les notions standards deconfigurationet d´erivation.

D´efinition 41 (Configurations et d´erivations d’un EM(Ops)). Pour un EM(Ops)(QA,qinitA,−→A ,Ops,ΓA), uneconfigurationest un triplet(q, σ,m)∈QA×Σ×Σo`uqd´enote l’´etat de contrˆole courant, σla s´equence courante d’entr´ee, etmle contenu m´emoire courant.

Nous disons qu’une configuration(q, σ,m)estd´erivable en un pasdepuis la configuration(q, σ,m) et produit la sortie o ∈ Σ, et nous notons (q, σ,m) ֒→o (q, σ,m) ssi σ = a.σ∧q −→a A q∧Γ(q) = α∧α(a,m)=(o,m).

Nous disons qu’une configurationCestd´erivable en plusieurs pasdepuis la configurationC etproduit la sortie o∈Σ, et nous notons C=⇒o A C,ssi il existe k≥0 et des configurationsC0,C1, . . ., Ck t.q.

C=C0,C=Ck,Ci֒→oi Ci+1 pour tout0≤i<k, eto=o0·o1· · ·ok−1.

La notion d’enforcement est bas´ee sur la mani`ere dont un moniteur transforme une s´equence d’entr´ee en une s´equence de sortie. Pour les d´efinitions `a venir, nous distinguerons les s´equences finies et infinies.

D´efinition 42 (Transformation de s´equences depuis un ´etat et un contenu m´emoire). La s´e- quenceσ∈Σ est transform´ee parA depuis l’´etatq∈QA et le contenu m´emoire m∈Σ en la s´equence o∈Σ, ce qui est not´e(q, σ,m)↓A o, si∃q∈QA,∃m∈Σ t.q.(q, σ,m)=⇒o A(q, ǫ,m). C’est-`a-dire, s’il existe une d´erivation d´emarrant depuis une configuration dont l’´etat estq, la m´emoire (initiale)m, et produisantoen sortie.

D´efinition 43 (Transformation de s´equences par un moniteur). Nous d´efinissons la transfor- mation r´ealis´ee par un EM(Ops) lorsque celui-ci lit une s´equence d’entr´ee σ ∈ Σ et produisant une s´equence de sortieo∈Σ. La relation⇓A⊆Σ×Σest d´efinie comme suit :

– La s´equence videǫn’est pas transform´ee parA,i.e.,ǫ⇓Aǫ. Ceci se produit lorsque le programme sous-jacent ne produit pas d’´ev´enement.

– La s´equenceσ∈Σ+est transform´ee parA en la s´equenceo∈Σ, lorsque(qinit

A, σ, ǫ)↓A o, ce que nous notonsσ⇓A o. C’est-`a-dire, la s´equence est transform´ee depuis l’´etat initial de l’EM avec un contenu m´emoire vide.

– La s´equenceσ∈Σω est transform´ee parA en las´equence finie o∈Σ, ce qui est not´eσ⇓Ao, si

∃σ∈Σ, σ≺σ∧σA o∧ ∀σ′′∈Σ, σ≺σ′′≺σ⇒σ′′A o.

C’est-`a-dire, la s´equence finie o est produite s’il existe un pr´efixe de σqui produit o, et chaque continuation de ce pr´efixe produito´egalement.

– La s´equenceσ∈Σω est transform´ee parA en las´equence infinieo∈Σω, ce qui est not´eσ⇓A o, si les deux contraintes suivantes sont v´erifi´ees :

∀o∈Σ,o≺o⇒ ∃σ′′,o′′∈Σ,o≺o′′∧σ′′Ao′′ (6.4)

∀σ,o∈Σ, (σ≺σ∧σAo)⇒o≺o (6.5) C’est-`a-dire, la s´equence infinieo est produite si pour tous les pr´efixes deo, il existe un pr´efixe plus long qui peut ˆetre produit.

Sur les s´equences finies, la transformation de s´equences peut ˆetre d´efinie de mani`ere inductive comme suit par une fonction de transformation.

D´efinition 44 (Transformation de s´equence). La fonction de transformation⇓ A!(·) : Σ → Σ repose sur la fonction⇓ A!(·,·,·) :Σ×QA! ×Σ→Σd´efinissant la transformation r´ealis´ee `a partir de l’´etat courant et le contenu m´emoire courant :⇓A! (σ,q,m)est la s´equence de sortie produite en lisantσ depuis l’´etatq et un contenu m´emoire (initial)m.

– La s´equenceǫ n’est pas transform´ee parA!,i.e., ∀q∈QA!,∀m∈Σ,⇓ A!(ǫ,q,m)=ǫ.

– Une s´equence d’ex´ecutiona·σest (incr´ementalement) transform´ee selon la transition d´eclench´ee par l’entr´eea : on applique l’op´eration d’enforcement de l’´etat d’arriv´e de la transition sur le contenu m´emoire courant et l’entr´ee ade l’´etat ; ce qui induit un nouveau contenu m´emoire et une sortieo.

C’est-`a-dire :

⇓ A!(a·σ,q,m)=o· ⇓ A!(σ,q,m) avec q−→a A! q∧Γ(q)=α∧α(a,m)=(o,m)

La d´efinition pr´ec´edente montre que le probl`eme de l’enforcement, et la transformation de s´equences peut se r´ealiser de mani`ere incr´ementale (ce que fait exactement un moniteur).

6.3.2 Enforcement de propri´ et´ es par un moniteur.

Nous d´efinissons maintenant la notion d’enforcement de propri´et´es par un EM. La notion d’enforcement relie la s´equence d’entr´ee produite (et fournie `a l’EM) par un programme (ou un g´en´erateur de s´equences d’ex´ecution) et la s´equence de sortie autoris´ee par celui-ci (correcte vis-`a-vis de lar-propri´et´e consid´er´ee).

Dans le cas g´en´eral, la comparaison entre les s´equences d’entr´ees et de sortie est r´ealis´ee selon une relation d’´equivalence entre les s´equences :≈⊆Σ×Σ. Notons que la relation d’´equivalence utilis´ee dans ce cas doit pr´eserver lar-propri´et´e consid´er´ee.

D´efinition 45 (Enforcement d’une r-propri´et´e). Pour une r-propri´et´e Π = (φ, ϕ) ∈ EP, nous disons queA! enforceΠsurPΣ, ce qui est not´eEnf(A!,Π,PΣ),ssi pour toute s´equenceσ∈Exec(PΣ), il existeo∈Σ,t.q.les contraintes suivantes sont v´erifi´ees :

σ⇓A! o (6.6)

Π(σ)⇒σ≈o (6.7)

¬Π(σ)∧Pref(φ, σ)=∅ ⇒o≈ǫ (6.8)

¬Π(σ)∧Pref(φ, σ),∅ ⇒o≈Max(Pref(φ, σ)) (6.9)

6.3 : Enforcement par moniteur

(6.6), (6.7), (6.8), et (6.9) assurent la correction et la transparence deA! : (6.6)stipule que la s´equenceσ est transform´ee parA en la s´equence o;

(6.7)assure que siσsatisfaisait d´ej`a la propri´et´e alors elle n’est pas transform´ee (ou est transform´ee en une s´equence ´equivalente) ;

(6.8) assure que l’EM produit ne produit rien en sortie (la s´equence videǫ) lorsqu’il n’y a pas de pr´efixe correct deσsatisfaisant la propri´et´e ;

(6.9)assure queoest le plus long pr´efixe de σsatisfaisant la propri´et´e, lorsque celui-ci existe.

La correction est due au fait que la s´equence produiteo, lorsqu’elle est diff´erente deǫ, satisfait toujours la propri´et´eφ. La transparence est assur´ee par le fait que les s´equences d’ex´ecution correctes ne sont pas modifi´ees, et les s´equences incorrectes sont tronqu´ees en leur plus grand pr´efixe correct.

Remarque 9 ( `A propos de la d´efinition deMax(Pref(φ, σ))) Nous pouvons remarquer que nous aurions pu d´efinirMax(Pref(φ, σ))comme ´etant ´egal `aǫ lorsquePref(φ, σ)=∅et fusionner les deux der- ni`eres contraintes. Cependant, nous choisissons de distinguer explicitement le cas dans lequelPref(φ, σ)=∅ car cela met en ´evidence les diff´erentes situations o`u un EM peut produireǫ. Parfois, cela correspond `a la seule s´equence correcte de la propri´et´e. Mais parfois cela peut ˆetre une s´equence incorrecte vis-`a-vis de la propri´et´e. En pratique lors de l’impl´ementation d’un EM, il est facile de marquer cette s´equence comme

correcte ou incorrecte. ∗

6.3.3 Instantiation des moniteurs d’enforcement g´ en´ eriques

Dans la suite, nous nous concentrerons sur une forme particuli`ere de moniteur d’enforcement. Ce- pendant, nous verrons que ces moniteurs sont assez expressifs (du point de vue de l’enforcement). Nous allons, en effet, consid´erer un ensemble restreint d’op´erations d’enforcement.

Les op´erations d’enforcement permettent aux moniteurs :

– d’arrˆeter le programme cible (lorsque la s´equence d’entr´ee viole irr´em´ediablement la propri´et´e) : op´eration halt,

– de m´emoriser l’´ev´enement courant dans undispositif m´emoire(lorsqu’une d´ecision d´efinitive doit ˆetre prise plus tard) : op´erationstore,

– ou de vider le contenu de la m´emoire (lorsque le programme est revenu `a un comportement correct) : op´eration dump,

– ou d’´eteindre d´efinitivement le moniteur (lorsque la propri´et´e est satisfaite pour toujours) : op´eration off.

Nous donnons une d´efinition plus pr´ecise de ces op´erations d’enforcement.

D´efinition 46 (Op´erations d’enforcement Ops={halt,store,dump,off}). Dans la suite, nous consi- d´erons un ensembleOps={halt,store,dump,off}d´efini comme suit : ∀a∈Σ∪ {ǫ},∀m∈Σ

halt(a,m)=(ǫ,m) store(a,m)=(ǫ,m.a) dump(a,m)=(m.a, ǫ) off(a,m)=(m.a, ǫ) (a d´esigne l’´ev´enement fourni en entr´ee au moniteur etmle contenu du dispositif m´emoire.)

Notons que la d´efinition de l’op´erationoff est la mˆeme que celle de l’op´erationdump. D’un point de vue th´eorique, cette op´eration n’est effectivement pas n´ecessaire. En revanche, elle revˆet un int´erˆet pratique.

En effet, pour limiter l’impact du moniteur sur le programme (du point de vue des performances), il peut ˆetre utile de savoir lorsque le moniteur n’est plus n´ecessaire. Ainsi la suite des raisonnements pourrait

´egalement se faire en consid´erant uniquementhalt,store,dump.

De plus, pour que la s´equence des op´erations d’enforcement r´ealis´ee par ces moniteurs soit coh´erente, nous supposerons que les moniteurs d’enforcement ne peuvent pas r´ealiser d’autres op´erations quehalt (resp.off) apr`es avoir fait une op´eration halt(resp.off).

Dans la suite de cette th`ese nous d´esignons par EM, un EM(Ops) instanci´e qui respecte ces contraintes.

De plus pour un EMA, nous noteronsHaltA l’ensemble des ´etats o`u l’op´eration d’enforcement produite esthalt (HaltA={q∈QAA(q)=halt}).

Exemple 19 (Moniteur d’enforcement) Nous illustrons l’enforcement de certaines r-propri´et´es in- troduites dans l’Exemple1(p. 1) avec des EMs.

– La partie droite de la Fig.6.3(p. 112) est un EMAΠ1 pour lar-propri´et´e de safetyΠ1.

Son ´etat initial est l’´etat 1. Depuis l’´etat initial, il effectue simplement l’op´erationdump sur une premi`ere occurrence deg authet se d´eplace `a l’´etat3, o`u l’op´erationopest autoris´ee et donc produite en sortie (avec l’op´erationdump) et retourne `a l’´etat1. Autrement, si l’´ev´enementoppr´ec`edeg auth, alors l’EM se d´eplace `a l’´etat2 et arrˆete d´efinitivement le programme.

– Sur le bas de la Fig. 6.5 (p.113) est esquiss´e un EMA↓Π2 pour la r-propri´et´e de guarantee Π2. L’´etat initial deA↓Π2 est l’´etat 1, et il n’a pas d’´etat o`u l’EM arrˆete le programme sous-jacent. Son comportement est le suivant : les occurrences d’´ev´enements diff´erents d’unreq authsont m´emoris´ees (op´erationstore) tant qu’unreq authn’a pas lieu. Ensuite, le contenu m´emoire global est produit en sortie. Enfin, cet EM n’a pas d’´etat d’arrˆet.

Informellement nous pouvons remarquer que les EMs donn´es dans cet exemple respectent bien les contraintes de correction et transparence formul´ees dans le Chapitre 4 Section 4.3. Par exemple le deuxi`eme EM assure bien que la s´equence de sortie satisfait toujours lar-propri´et´e consid´er´ee et cette sortie est toujours le plus grand pr´efixe correct de la s´equence d’entr´ee.

6.3.4 Propri´ et´ es des moniteurs d’enforcement instanci´ es

Nous ´etudions maintenant les propri´et´es des moniteurs d’enforcement avec l’ensemble d’op´erations d’enforcement {halt,store,dump,off}. Nous donnons une propri´et´e v´erifi´ee par les EMs lorsque ceux-ci lisent des s´equences infinies. Puis, pour les s´equences finies, il est possible de relier `a tout moment la s´equence d’entr´ee fournie `a l’EM, son contenu m´emoire, et la sortie qu’il produit.

Propri´et´e 9 ( `A propos de la transformation de s´equence infinie) : Etant donn´es une s´equence´ d’ex´ecutionσ∈Exec(PΣ)∩Σω et un EMA,t.q.le run deσsurA est exprim´e par :

(q0, σ00,q1)·(q1, σ11,q2)· · ·(qi, σii,qi+1)· · ·, nous avons la propri´et´e suivante :

σ⇓A σ⇔ ∀i∈N,∃j∈N, αj∈ {dump,off}

♦ La propri´et´e stipule que, pour un EM, produire en sortie la mˆeme s´equence qu’en entr´ee est ´equivalent

`

a r´ealiser r´eguli`erement l’op´eration d’enforcementdump ouoff.

Pour les s´equences finies, il est possible de relier la s´equence d’entr´ee, la m´emoire, et la s´equence de sortie. Cette relation est exprim´ee par la relation suivante.

Propri´et´e 10 (Relation entre l’entr´ee, la m´emoire, et la sortie) : La s´equence d’entr´ee, le contenu m´emoire, et la sortie produite sont reli´es par la propri´et´e suivante :∀σ∈Σ+,∀σ∈Σ,

∃q∈QA·(qinitA, σ·σ, ǫ)=⇒o A(q, σ,m)

=⇒

(σ=o·m∧q∈QA\HaltA)∨(o≺σ∧q∈HaltA) ♦

Informellement, la s´equence σ·σ (resp. σ, σ) est la s´equence fournie en entr´ee `a l’EM (resp.

effectivement lue, restant `a lire).

Preuve : Cette preuve est faite par induction sur la longueur de la s´equence d’entr´ee lueσ.

Cas de base. Pour le cas de base|σ|=1; nous avonsσ=a avec a ∈Σ. En utilisant la d´efinition de l’´evolution des configurations (D´efinition41, p.101), nous avons que∃q∈QA,(qinit

A, σ·σ, ǫ)=⇒o A(q, σ,m) avecα(σ, ǫ)=(o,m)et qinit

A σ

−→q∧Γ(q)=α. Il y a quatre cas possibles pour α: – Si α=halt, alorso=ǫ,m=ǫet q∈HaltA. Nous avonso≺σ.

– Sinon, siα=store, alorso=ǫ,m=σ. Nous avonsσ=o·m.

– Sinon (α=dumpouα=off),o=a,m=ǫ et σ=o·m.

6.4 : Operations de composition sur les moniteurs d’enforcement

No documento Yliès Falcone (páginas 113-118)