• Aucun résultat trouvé

d ia de

N/A
N/A
Protected

Academic year: 2022

Partager "d ia de"

Copied!
51
0
0

Texte intégral

(1)

Alexandre Duret-Lutz

février 2009

http://www.lrde.epita.fr /~ad l/en s/m /200 9/

(2)

10fév (ADL) Introdution

17fév (AL) Diagrammesdedéision binaires (BDD)

3 mars (AL) Vériation CTL

10 mars(AH) Diagrammesdedéision hiérahiques(SDD)

17 mars(AH) TP surles SDD

24mars(ADL) Vériation LTL, automatesde Bühi

1 avril(ADL) Emptinessheks, ordre partiel

8 avril(AH) Lutteontre l'explosion ombinatoire

22 avril(ADL) Équité, automatesde Streett; introdution à Spin

29avril (AL) TP surSpin

(3)

1

Model heking,kézako?

Exemple : algorithme (foireux)d'exlusion mutuelle

2

Le temps

3

Les propositions atomiques

4

Les strutures de Kripke

Exemple lients/serveur par automates synhronisés

5

Équité

(4)

système

propriétés tests?

pas exhaustifs!

(5)

système

propriétés

modèledu système modèles des propriétés spéiation

modélisation

(6)

système

propriétés

modèledu système modèles des propriétés simulation?

pas exhaustive!

spéiation

modélisation

(7)

système

propriétés

modèledu système modèles des propriétés vériation

formelle

spéiation

modélisation

(8)

système

propriétés

modèledu système modèles des propriétés vériation

formelle

spéiation

modélisation synthèse

(9)

système

propriétés

modèledu système modèles des propriétés vériation

formelle

spéiation

modélisation synthèse

preuve de théorèmes model heking

(10)

1

Dérire lesystème sous uneformequi permette deraisonner.

2

Prouverles propriétés par dédutions logiques.

Peut être manuel, ou plusou moins automatisé.

Ilexiste des outils d'aide à l'automatisationdes preuves (p.ex. Coq)

mais rienn'est entièrement automatique.Diile d'obtenir un

ontre-exemplequand lethéorème est faux.

Lestravaux : développement de systèmesde preuves, étudedes

puissane d'expression des logiques, et.

(11)

Approhe automatique de lavériation formelle.

Vériation exhaustive de tousles omportements du modèle.

L'arnaque : lemodèledoit être susamment abstrait pourque son

explorationsoit réalisable.

Deux grandesapprohes :

ensembliste (symbolique)

automate(expliite)

(12)

Variables globales: req

P

et req

Q .

Proessus P (boule innie)

1.req

P

1

2.wait

(

reqQ

=

0

)

3.setion ritique

4.req

P

0

Proessus Q (boule innie)

1.req

Q

1

2.wait

(

reqP

=

0

)

3.setion ritique

4.req

Q

0

Étatinitial : P

=

1, Q

=

1,reqP

=

0, reqQ

=

0.

Propriétés à vérier :

1

Àtout moment il y a au plus un proessus en setion ritique.

2

Tout proessus demandantl'entrée ensetion ritique nit pary

entrer.

3

L'ordre des entrées dans lasetion ritiquerespete l'ordre des

demandes.

(13)

P

=

1

,

req

P

=

0

Q

=

1

,

reqQ

=

0

(14)

P

=

1

,

req

P

=

0

Q

=

1

,

reqQ

=

0

P

=

2

,

req

P

=

1

Q

=

1

,

reqQ

=

0

P

=

3

,

req

P

=

1

Q

=

1

,

reqQ

=

0

P

=

4

,

reqP

=

1

Q

=

1

,

reqQ

=

0

(15)

P

=

1

,

req

P

=

0

Q

=

1

,

reqQ

=

0

P

=

2

,

req

P

=

1

Q

=

1

,

reqQ

=

0

P

=

3

,

req

P

=

1

Q

=

1

,

reqQ

=

0

P

=

4

,

reqP

=

1

Q

=

1

,

reqQ

=

0

P

=

1

,

req

P

=

0

Q

=

2

,

reqQ

=

1

P

=

1

,

req

P

=

0

Q

=

3

,

reqQ

=

1

P

=

1

,

req

P

=

0

Q

=

4

,

reqQ

=

1

(16)

P

=

1

,

req

P

=

0

Q

=

1

,

reqQ

=

0

P

=

2

,

req

P

=

1

Q

=

1

,

reqQ

=

0

P

=

3

,

req

P

=

1

Q

=

1

,

reqQ

=

0

P

=

4

,

reqP

=

1

Q

=

1

,

reqQ

=

0

P

=

1

,

req

P

=

0

Q

=

2

,

reqQ

=

1

P

=

1

,

req

P

=

0

Q

=

3

,

reqQ

=

1

P

=

1

,

req

P

=

0

Q

=

4

,

reqQ

=

1

P

=

2

,

req

P

=

1

Q

=

2

,

reqQ

=

1

P

=

3

,

req

P

=

1

Q

=

1

,

reqQ

=

0

P

=

3

,

req

P

=

1

Q

=

2

,

reqQ

=

1

P

=

2

,

req

P

=

1

Q

=

3

,

reqQ

=

1

P

=

4

,

reqP

=

1

Q

=

2

,

reqQ

=

1

P

=

2

,

req

P

=

1

Q

=

4

,

reqQ

=

1

(17)

Àtout moment il y a au plus un proessus en setion ritique.

Tradution : dans auun état on n'a P

=

3 et Q

=

3.

C'estvrai.

Pour vérier ette propriété il sut deparourir tout l'espae d'état

unefois. On n'a besoin deonnaître que l'ensemble des états, pas

leurs liens.

(18)

Tout proessus demandant l'entrée ensetion ritique nit par y

entrer.

Tradution : haque hemin débutantdans un état aessible tel que

P

=

2passe par un état P

=

3; idempour Q

=

2 et Q

=

3.

C'estfaux.

L'état

P

=

2

,

reqP

=

1

Q

=

2

,

reqQ

=

1

n'a auun suesseur ('est undeadlok).

Pour vérier ette propriété on a besoin de onnaître le graphe

d'aessibilité (les états seuls ne susent pas).

(19)

L'ordre des entrées dans lasetion ritique respete l'ordre des

demandes.

Tradution : haque hemin débutantdans un état aessible tel que

P

=

2

Q

=

1 ne visite pas d'étatvériant Q

=

3 avant passer par

unétat vériant P

=

3 (+propriété symétrique pour Q).

C'estfaux.

Àpartir de

P

=

2

,

req

P

=

1

Q

=

1

,

reqQ

=

0

il existe un hemin dans lequel P

=

3 n'est

jamais satisfait.

Mêmetype de vériationque la propriété 2.

(20)

(Lamport'77)

Sûreté Quelque hose de mauvaisne se produit pas.

Vivaité Quelque hose de bon se produira.

Équité Types partiuliers depropriétés devivaité.

Toute propriété estune onjontion d'unepropriété de sûreté et

d'unepropriété de vivaité.

(21)

(Lamport'77)

Sûreté Quelque hose de mauvaisne se produit pas.

À tout moment il n'y a qu'un proessus en setion

ritique.

Vivaité Quelque hose de bon se produira.

Tout proessus demandant l'entrée ensetion ritique

nit par y entrer.

Équité Types partiuliers depropriétés devivaité.

L'ordre des entrées dans la setion ritique respete

l'ordredes demandes.

Toute propriété estune onjontion d'unepropriété de sûreté et

d'unepropriété de vivaité.

(22)

Ations Une étape estune ation.

Un omportement est une séquene d'ations.

États Une étape estune paire

h

s

,

d

i

d'états.

Un omportement est une séquene s

1

s2

s3

→ . . .

d'états.

Ations/États Une étape estun triplet

h

s

, α,

d

i

s et d sont des

états,

α

est uneation.

Un omportement est une séquene s

1

α

1

s2

α

2 s3

α

3

. . .

d'états et d'ations.

Lesomportementspeuvent êtrenis ouinnis.

L'état nald'un omportement ni peut être appelé deadlok

selon qu'onl'aime oupas.

Certains omportements innis (qu'on n'aime pasnon plus) sontdit

divergents (livelok).

(23)

Mahine à états

Un ensemble d'états

Q

, des états initiaux

Q

0,une relationde

transition

R ⊆ Q × Q

.

Mahine à ations/états

Un ensemble d'états

Q

, des états initiaux

Q

0,des ations

T

, une

relation detransition

R ⊆ Q × T × Q

.

(24)

Mahine à états

Un ensemble d'états

Q

, des états initiaux

Q

0,une relationde

transition

R ⊆ Q × Q

.

Détermininiste si

|Q

0

| =

1 et

∀(

s

,

d

) ∈ R, ∀(

s

,

d

) ∈ R,

s

=

s

⇐⇒

d

=

d

.

Mahine à ations/états

Un ensemble d'états

Q

, des états initiaux

Q

0,des ations

T

, une

relation detransition

R ⊆ Q × T × Q

.

Détermininiste si

|Q

0

| =

1 et

∀(

s

, α,

d

) ∈ R, ∀(

s

, α ,

d

) ∈ R,

s

=

s

⇐⇒ (α,

d

) = (α ,

d

)

.

(25)

Mahine à états

Un ensemble d'états

Q

, des états initiaux

Q

0,une relationde

transition

R ⊆ Q × Q

.

Détermininiste si

|Q

0

| =

1 et

∀(

s

,

d

) ∈ R, ∀(

s

,

d

) ∈ R,

s

=

s

⇐⇒

d

=

d

.

Mahine à ations/états

Un ensemble d'états

Q

, des états initiaux

Q

0,des ations

T

, une

relation detransition

R ⊆ Q × T × Q

.

Détermininiste si

|Q

0

| =

1 et

∀(

s

, α,

d

) ∈ R, ∀(

s

, α ,

d

) ∈ R,

s

=

s

⇐⇒ (α,

d

) = (α ,

d

)

.

Q

,

T

et

R

peuventêtre innis ou non...

Onpeut ajouter des onditions(de terminaison, d'aeptation,

d'équité,...) pour ltrer les omportements générés.

P.ex. :états terminauxpourn'avoir quedes omportementsnis.

(26)

Automates

Automateslassiques

Automatesàpile

Mahinesde Mealy

Mahinesde Moore

Mahinesde Turing (àune ou plusieursbandes)

Automatesde Bühi, de Streett,de Rabin, de Muller...

Automatesellulaires

Ordinateurs de vonNeumann

Algorithmes

GrammairesBNF

Algèbres de proessus

...

(27)

main() { int f = 1;

for (int i = 1; i <= 7; ++i) f = i * f;

std::out << f << std::endl;

}

main() { int f = 1;

for (int i = 7; 1 < i; --i) f = i * f;

std::out << f << std::endl;

}

int fat(int i)

{ return (i == 1)? 1 : i * fat(i-1); }

main() { std::out << fat(7) << std::endl; }

(28)

Quelest le programme leplus diérent des autres?

Commentdérire es programmes par une mahine à états?

Ilfaut hoisir e qui onstitue un pas d'exéution...

Est-que f = i * f représente 1, 2,3 pas ou plus?

(29)

Quelest le programme leplus diérent des autres?

Dupointde vuedes séquenesde multipliationeetuées :1 et

3sontidentiques.

2ne donne le mêmerésultatque pare que* est ommutatif.

Commentdérire es programmes par une mahine à états?

Ilfaut hoisir e qui onstitue un pas d'exéution...

Est-que f = i * f représente 1, 2,3 pas ou plus?

Tout dépenddu niveau d'abstration auquel on se plae.

Des erreurs dans lesprogrammes onurrents peuvent apparaître

sil'on onsidère que f = i * f représente 1 pas alors qu'il se

déompose enréalité enplusieurs.

Pour traduirele C orretement en mahinea états on a besoin

d'unesémantique opérationnelle du langage qui prenne aussien

ompte le modèle demémoire de lamahine.

(30)

q

0

q

1

q

2

q

3

α β

γ δ

ε

(31)

q

0

q

1

q

2

q

3

α β

γ δ

ε

q

0

q

1 q

2

q

3 q

3 q

0

q

1 q

2

q

3 q

3 q

0

α β

γ δ ε

α β

γ δ ε

α β

(32)

q

0

q

1

q

2

q

3

α β

γ δ

ε

q

0

q

1 q

2

q

3 q

3 q

0

q

1 q

2

q

3 q

3 q

0

α β

γ δ ε

α β

γ δ ε

α β

q

0

q

1

q

3

α γ

q

0

q

2

q

3

β δ

q

0

q

2

q

0

q

1

q

3

β ε α γ

q

0

q

2

q

0

q

2

q

3

β ε β δ

q

0

q

2

q

0

q

2

q

0

β ε β ε

· · ·

(33)

α

β

α

γ

α

β γ

Enlogiquearboresente, les deux arbresi-dessus sontgénéréspardeux

mahinesàétatsdiérentes. Enlogiquelinéaire, les omportements des

deuxmahinesne permettentpas de distinguerles mahines.(Ce problème

ne seposeque sil'ondéide de ne pas distinguerles états.)

α β

α

γ

(34)

Variables propositionelles valuées enfontions des propriétés

(observées) du système.

SiAP

= {

p

,

q

}

,le système peut prendre au plus quatre états

(observés) orrespondantaux minterms surAP : p

q, p

∧ ¬

q,

¬

p

q,

¬

p

∧ ¬

q.

(35)

Variables propositionelles valuées enfontions des propriétés

(observées) du système.

SiAP

= {

p

,

q

}

,le système peut prendre au plus quatre états

(observés) orrespondantaux minterms surAP : p

q, p

∧ ¬

q,

¬

p

q,

¬

p

∧ ¬

q.

2

AP

= {{

p

,

q

}, {

p

}, {

q

}, ∅}

.

Ilexiste une bijetionentre 2 AP

et l'ensemble des minterms sur AP :

{

p

,

q

} ↔

p

q (ou enorepq)

{

p

} ↔

p

∧ ¬

q (p

¯

q)

{

q

} ↔ ¬

p

q (pq)

¯

∅ ↔ ¬

p

∧ ¬

q (p

¯ ¯

q)

Ilexiste une relationentre 2 2

AP

et l'ensemble des formules

propositionnelles surAP. (Est-e une bijetion?)

(36)

SiAP

= {

a

,

b

,

}

, quels sous-ensemblesde 2 2

AP

représentent les

formules suivantes?

¬

a

∨ ¬

b

a

∧ (

b

)

(37)

SiAP

= {

a

,

b

,

}

, quels sous-ensemblesde 2 2

AP

représentent les

formules suivantes?

¬

{{

a

,

b

}, {

a

}, {

b

}, ∅}

a

∨ ¬

b

{{

a

,

b

,

}, {

a

,

b

}, {

a

,

}, {

a

}, {

}, ∅}

a

∧ (

b

)

{{

a

,

b

,

}, {

a

}}

(38)

Des mahinesà étatétiquetées par des valuations detoutes les

variables propositionelles.

Unestruture de Kripke estun quintuplet K

= h

AP

, Q,

q0

, δ,

l

i

AP estune ensemble ni depropositionsatomiques,

Q

est un ensemble nid'états (les n÷uds du graphe),

q

0

∈ Q

est l'état initial,

δ : Q 7→

2

Q

est unefontion indiquant les états suesseurs d'un

état,

l

: Q 7→

2AP est unefontion indiquantl'ensemble des

propositions atomiques satisfaites dans un état.

(39)

1 2 s

r

Client C

1

2 3

r

1

s

1

r

2

s

2

Serveur S

− ×

a

d

Canal B

Règles de synhronisationpourle système

h

C

,

C

,

S

,

B

,

B

,

B

,

B

i

:

(

1

) h

s , . , . , . , . , a , .

i

(

2

) h

. , s , . , . , . , . , a

i (

3

) h

r , . , . ,d , . , . , .

i (

4

) h

. , r , . , . , d , . , .

i (

5

) h

. , . , r1

, . , . , d , .

i (

6

) h

. , . , s1 , a , . , . , .

i (

7

) h

. , . , r2 , . , . , . , d

i (

8

) h

. , . , s2

, . , a , . , .

i

Si unlient envoie unerequête, reevra-t-il forément une réponse?

(40)

111

− − −−

211

− − ×−

121

− − −×

212

− − −−

221

− − ××

123

− − −−

211

× − −−

222

− − −×

223

− − ×−

121

− × −−

221

× − −×

221

− × ×−

223

× − −−

222

− × −−

221

× × −−

q0

q1 q2

q3 q4 q5

q

6

q

7

q

8

q

9

q

10

q

11

q

12

q

13

q14

(41)

Onsouhaite exprimerdes propriétés onernant lesenvois et

réeptions demessages. AP

= {

r1

,

r2

,

d1

,

d2

}

ave:

r

1

:une réponse est en hemin entre le serveur et le premier

lient

r

2

: uneréponse estenhemin entreleserveur et leseondlient

d

1

:une requête (d pourdemande) est enhemin entre le

premier lient et leserveur

d

2

:une requête estenhemin entreleseond lient etleserveur

Commenttraduire Si un lient envoieune requête, il reevra

forément uneréponse ave es propositions atomiques?

(42)

Onsouhaite exprimerdes propriétés onernant lesenvois et

réeptions demessages. AP

= {

r1

,

r2

,

d1

,

d2

}

ave:

r

1

:une réponse est en hemin entre le serveur et le premier

lient

r

2

: uneréponse estenhemin entreleserveur et leseondlient

d

1

:une requête (d pourdemande) est enhemin entre le

premier lient et leserveur

d

2

:une requête estenhemin entreleseond lient etleserveur

Commenttraduire Si un lient envoieune requête, il reevra

forément uneréponse ave es propositions atomiques?

Pour tout i

∈ {

1

,

2

}

,si un étatvérie di

alorsdans tousses futurs

possibles il possèdeun suesseur qui vérie r

i .

(43)

¯

r1

¯

r2

¯

d

1

¯

d

2

¯

r1

¯

r2

d1

¯

d2

¯

r1

¯

r2

¯

d1d2

¯

r

1

¯

r2

¯

d

1

¯

d

2

¯

r1

¯

r2 d

1 d

2

¯

r1

¯

r2

¯

d

1

¯

d

2

r1

¯

r2

¯

d1

¯

d2

¯

r1

¯

r2

¯

d1d2

¯

r1

¯

r2

d1

¯

d2

¯

r1r2

¯

d1

¯

d2

r1

¯

r2

¯

d

1 d

2

¯

r1r2

d

1

¯

d

2

r

1

¯

r2

¯

d1

¯

d2

¯

r

1 r

2

¯

d1

¯

d2

r1r2

¯

d

1

¯

d

2 q0

q

1

q

2

q3 q4 q5

q6 q7 q8 q9

q

10

q

11

q12 q13

q14

(44)

Pour tout i

∈ {

1

,

2

}

,si un étatvérie di alorsdans tousses futurs

possibles il possèdeun suesseur qui vérie r

i .

Onherhe un ontre-exemple, 'est-à-dire un hemin inni qui passe

pard

i

sans jamais passer par r

i

. Par symétrie onpeut se limiter à

i

=

1.

(45)

Pour tout i

∈ {

1

,

2

}

,si un étatvérie di alorsdans tousses futurs

possibles il possèdeun suesseur qui vérie r

i .

Onherhe un ontre-exemple, 'est-à-dire un hemin inni qui passe

pard

i

sans jamais passer par r

i

. Par symétrie onpeut se limiter à

i

=

1.

Antiipons sur lesprohains ours... Le hemin qu'on voudrait

reonnaîtrepeut être reonnu par l'automate:

d

1

∧ ¬

r1

¬

r1

q

C

q

D

Oùles hemins reonnus doivent passer inniment souvent pardes

transitions .

(46)

q0

,

qC

q1

,

qC

q2

,

qC

q3

,

qC q4

,

qC

q5

,

qC

q6

,

qC q7

,

qC

q8

,

qC

q9

,

qC

q10

,

qC q11

,

qC

q12

,

qC q13

,

qC

q14

,

qC

q0

,

qD

q1

,

qD q2

,

qD

q3

,

qD

q4

,

qD q5

,

qD

q6

,

qD

q7

,

qD q8

,

qD

q9

,

qD

q10

,

qD q11

,

qD

q12

,

qD q13

,

qD

q14

,

qD

(47)

Surle produit on peut alors herher unyle étiqueté par et

aessible depuisl'état initial. C'est l'emptiness hek dans

l'approhe automate du model heking.

Autreapprohe omplètement diérente (symbolique) :

Ononstruit l'ensemble E

1

des états dela struture deKripke

qui vérient

¬

r1.

Ononstruit l'ensemble E

2

des états dela struture deKripke

quisont aessibleà partir deE

1

.On negardequeE

2

=

E2

E1 .

Ononstruit l'ensemble E

3

des états dela struture deKripke

quisont aessibleà partir deE

2

.On negardequeE

3

=

E3

E2.

Onrépète jusqu'àe que E

n

=

En

1 ouEn

= ∅

(point xe).

SiE

n

=

En

1

6= ∅

et qu'il ontient unétat aessible depuis

l'étatinitial (e qu'onpeut tester aussipar point xe), ona

trouvéun ontre-exemple.

(48)

Peut désigner deux hoses :

Unepropriété que l'onveut vérier

L'ordredesentréesdanslasetion ritiquerespetel'ordredes

demandes.

Unepropriété que l'onveut supposer pour ltrer les

omportements (onparle d'hypothèse d'équité)

Lesheduler est équitable:unproessusprêtàtravailler

travailleraaprès untempsd'attenteni... On doit ignorerles

omportement dumodèleoùça n'est pasle as.

(49)

Impartialité (unonditional fairness) Tous les proessus s'exéutent

un nombre innide fois.

Justie(weakfairness) Tout proessus qui peuttoujours s'exéuter à

partir d'unmoment s'exéutera inniment souvent.

Compassion(strong fairness) Tout proessus qui peut s'exéuter

inniment souvents'exéutera innimentsouvent.

(50)

q

0

q

1

q

a

q

b

A B

q

0

,

qa

q

1

,

qa

q

0

,

qb

q

1

,

qb

A

B

(51)

q

0

q

1

q

a

q

b

A B

q

0

,

qa

q

1

,

qa

q

0

,

qb

q

1

,

qb

A

B

Références

Documents relatifs

ensemble de nombres, elui des réels, pour lesquels es quatre opérations sont dénies mais à. propos duquel on ne parle pas

par un ordinateur soit inni, toute opération alulable peut être engendrée à partir d'un ensemble. ni p ar un nombre ni de

Registres ahés.- Un registre est un élément mémoire inlus dans le miroproesseur..

de mémoire vive et, d'autre part, le transfert d'une valeur d'un registre vers un élément.. de mémoire vive, ou

Pour une valeur se trouvant à l'adresse (de mémoire vive) désignée par le ontenu d'uno. registre (de seize bits, puisque 'est la taille du déplaement), on indique le nom de

Sur sa lanée, Intel hh innove ii pour une question de prix de revient : elle rée le 8088, permettant des entrées-sorties sur 8 bits mais des aluls sur 16 bits (le hh ÷ur ii du

Cei doit être eetué à partir d'une page pour laquelle les adresses virtuelles sont. égales aux adresses physiques ( hh identity mapped ii

• La fréquene des solutions qui permet de synhronisés une ligne de fusiliers de taille 5 ou 6 plus grande que pour les autres solutions. • La fréquene des solutions qui permet