La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité

Présentations similaires


Présentation au sujet: "1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité"— Transcription de la présentation:

1 1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité - Vérification avec LTSA Henri Habrias, IUT de Nantes 20 mars 2006

2 2 Bisimulation et équivalence Equivalence observationnelle : On peut distinguer deux agents S0 et S1 si un agent extérieur interagissant avec S0 et S1 peut détecter quils nont pas le même comportement. Ainsi, avec LTSA, quand vous faites un « run », vous constatez que vous navez pas les mêmes actions déclenchables.

3 3 Deux agents non équivalents P0 ab c d P0 = (a -> b -> P1 | a -> S2), P1 = STOP, P2 = (c -> d -> S0). Q0 = (a -> Q1), Q1 = (b -> Q2 | c -> Q3), Q2 = STOP, Q3 = (d -> Q0). Q0 ab c d a

4 4 Même langage accepté …mais… Ces deux agents P et Q acceptent le même langage : (acd)* ab Mais, Q0 nest pas déterministe.

5 5 Observation P0 = (a -> b -> P1 | a -> S2), P1 = STOP, P2 = (c -> d -> S0). RUN a x b d x a x b c x c …. RUN ax cx dx ax cx dx ax bx STOP Q0 = (a -> Q1), Q1 = (b -> Q2 | c -> Q3), Q2 = STOP, Q3 = (d -> Q0).

6 6 Equivalence forte/faible Equivalence faible lorsquon ne considère pas laction tau Equivalence forte lorsquon considère laction tau comme n importe quelle autre action.

7 7 Bisimulation Quand deux agents sont équivalents pour tous leurs états. P est en bisimulation avec Q ssi : pour tout a appartenant au vocabulaire si P ---a---> P alors il existe Q tel que Q---a-->Q et P équivalent à Q si Q ---a---> Q alors il existe P tel que P---a-->P et P équivalent à Q R. Milner

8 8 Bisimulation faible P0 = (a -> b -> c -> P0 | b -> a -> c -> P0). P1 = (c -> S1). ||SYS = (P0 || P1)\{c}. Q0 = (a -> b -> S1 | b -> a -> Q0). P0 b a a b c P1 c P0 b a a b tau || Q0 ab ba

9 9 Le concept de modèle Premier sens : Celui dinterprétation, i.e. attribution dun sens à des énoncés formels de sorte quils soient vérifiés. Exemple : la géométrie vue comme un modèle dun langage formel, plutôt que la formalisation de propriétés idéalisées à partir de l observation de lespace sensible. (Hourya Sincaceur)

10 10 Modèle : premier sens Enoncé formel Modèle 1Modèle 3Modèle 2 Interprétations Abstrait Spécification Concret

11 11 Modèle : deuxième sens Modéliser cest associer un énoncé formel à une « réalité empirique », un phénomène physique. Un modèle est un prototype, une simulation de la réalité. Définition de Marvin Minsky « Un objet O est un modèle dune réalité R si O permet de répondre aux questions que lon se pose sur R. »

12 12 Modèle : deuxième sens Enoncé formel Phénomène Modélisation

13 13 Deux faces, 1 seule activité « Les deux sens du concept de modèle ne sont que les deux faces complémentaires dune même activité : interpréter. Interpréter est inéluctable, quil sagisse dinterpréter un formalisme, ou, inversement dinterpréter mathématiquement un ensemble de données. Dune part, parce quun langage qui naurait pas de modèle na aucun intérêt, Dautre part et réciproquement, parce que lexpression nest pas le miroir de lexpérience. » Hourya Sinaceur

14 14 « Model-checking » Vérification de modèle en français ! On modélise le système physique (le système) et les propriétés que le système doit vérifier. Lalgo de model-checking prend : en entrée, lénoncé et le propriétés formelles à vérifier Donne en réponse oui ou non selon que les propriétés sont vérifiées ou non par le système modélisé.

15 15 « Model-checking » Énoncé formel Propriété formelle Phénomèn e modélisation Est-ce que les propriétés sont vérifiées ?

16 16 Vérification de propriétés Propriétés dinvariance : linvariant dune machine B Propriétés « dynamiques »

17 17 Types de propriétés 1- Atteignabilité : Une certaine situation peut être atteinte 2-Sûreté (safety) : Sous certaines conditions, quelque chose ne se produira jamais 3-Vivacité (Fatalité, liveness, Eventually): Sous certaines conditions, quelque chose finira par avoir lieu 4-Equité (Fairness) : Sous certaines conditions, quelque chose aura lieu (ou naura pas lieu) un nombre infini de fois.

18 18 Propriétés vérifiées avec LTSA -safety (sûreté) : Rien de mal narrive pendant lexécution -liveness (vivacité) : Quelque chose de bon arrive forcément (eventually) Dit autrement : Safety : Le système natteint pas un mauvais état. Vivacité : Le système atteint forcément un bon état.

19 19 Propriété de sûreté en B classique vs en prog concurrente Propriété de sûreté (en B) : (programmes séquentiels) On veut que létat final dun programme (limplantation dune opération) soit correct (respecte linvariant) Propriété de sûreté (en prog. Concurrente) : Exclusion mutuelle, absence de verrou fatal (deadlock)

20 20 Propriété de vivacité en B classique vs en prog concurrente Propriété de vivacité (en prog. Séquentielle) Le programme se termine (la fonction est définie) Propriété de vivacité (en prog. Concurrente) concernent souvent des systèmes qui ne sarrêtent pas.

21 21 Politique dordonnancement On va voir des propriétés de vivacité relatives à laccès à des ressources. Les propriétés de vivacité sont affectées par la politique d ordonnancement qui détermine quelle action dans un ensemble dactions sont choisies pour exécution.

22 22 Safety (avec LTSA) ACTIONNEUR = (commande -> ACTION), ACTION = (reponse -> ACTIONNEUR | commande -> ERROR). property ACTIONNEUR_SUR = (commande -> reponse -> ACTIONNEUR_SUR ).

23 23 Vérif dune propr. de safety Il est poli de frapper avant dentrer : Property POLI = (frapper -> entrer -> POLI). Composition: DEFAULT = POLI || PERSONNE State Space: 2 * 2 = 2 ** 2 Composing... property POLI violation. -- States: 1 Transitions: 1 Memory used: 2361K Composed in 130ms PERSONNE = (entrer -> frapper -> PERSONNE).

24 24 Safety : définition Une propriété de sûreté (safety) P définit un processus déterministe qui asserte que toute trace incluant les actions de lalphabet de P, est acceptée par P.

25 25 Autre ex. de prop de safety Property MUTEX = (p[i:1..3]. entrer -> p[i]. sortie -> MUTEX] Quand un processus entre en section critique (p[i].entrer), ce même processus doit sortir de la section critique (p[i]. Sortie) avant quun autre processus puisse entrer.

26 26 Vivacité en LTSA Propriété de progression (progress) : quelque soit létat du système, une action spécifiée finira par être exécutée. Opposée à la famine (starvation)

27 27 Hypothèse déquité Fair choice : Si un choix parmi un ensemble de transitions est exécuté infiniment souvent, alors chaque transaction de cet ensemble sera exécuté infiniment souvent. PIECE = (toss -> heads -> PIECE | toss -> tails -> PIECE) Si la politique dordonnancement nest pas équitable, on peut toujours choisir la transition toss -> heads.

28 28 Progress property Progress P = {a1, a2, …,an} définit une propriété de progression P qui asserte que dans une exécution infinie dun système, au moins une des actions a1, a2, …,an sera exécutée infiniment souvent. A toute étape dexécution, une des actions de lensemble de définition de la propriété de progression, sera forcément exécutée. progress HEADS = {heads} progress TAILS = {tails}

29 29 Propriété de progrès TWOCOIN = (pick -> COIN | pick -> TRCK), TRICK = (toss -> heads -> TRICK), COIN = (toss -> heads -> COIN | toss -> tails -> COIN). progress TAILS = {tails} est violée Progress HEADSorTAILS = {heads, tails} nest pas violée

30 30 Ensemble terminal détats Lanalyse de la propriété de progression consiste à rechercher d abord un ensemble terminal détats. Un ensemble terminal détats est un ensemble dans lequel chaque état est atteignable de tout autre état de lensemble via une ou plusieurs transitions et sil ny a pas de transition de cet ensemble vers tout état qui est hors de cet ensemble. i.e. une composante fortement connexe qui na pas de chemin vers des nœuds situés hors de la composante.

31 31 Algo de vérif de la prop. de progression Vérifier une propriété de progression progress P ={a1, …,an} est simplement vérifier que dans chaque ensemble terminal, il y a au moins une des actions de lensemble de progression {a1, …,an}. Inversement, une propriété de progression est violée si lanalyse trouve un ensemble terminal dans lequel il ny a aucune des actions de {a1, …, an}.


Télécharger ppt "1 Fin du cours Spec2 -Equivalence de processus et bisimulation - Les deux sens du mot Modèle et model-checking - Types de propriétés - Sûreté et vivacité"

Présentations similaires


Annonces Google