Le Model Checker SPIN Présentation Algorithmes sous-jacents

Slides:



Advertisements
Présentations similaires
Réseaux locaux industriels Le BUS CAN
Advertisements

Yassine Lakhnech Prof. UJF Verimag
Analyse et définition des besoins
S-SYSTEMS ETAPPROCHE HYBRIDE
AS « Sécurité des Logiciels Embarqués » Axe 3 : Modèles pour la Disponibilité et la Survivabilité Frédéric Cuppens Directeur de recherches.
Projet FIACRE 1 ACI Sécurité InformatiqueToulouse, novembre 2004 FIACRE Fiabilité des Assemblages de Composants Répartis Modèles et outils pour lanalyse.
Spécification et qualité du logiciel
Systèmes en temps réel Services de Communication.
Activités de Recherche et Intégration à l’Equipe SIMBAD
Les cas d’utilisation (use cases)
Le processus unifié UML est un langage de modélisation et n ’impose pas de démarche de développement Le processus unifié : méthodologie de développement.
M.E.D.A.L. Module dEnseignement à Distance pour lArchitecture Logicielle Alain VAILLY Diapositive n° 1 IUP MIAGE - Université de NANTES IUP-MIAGE 3ème.
M.E.D.A.L. Module dEnseignement à Distance pour lArchitecture Logicielle Alain VAILLY Diapositive n° 1 IUP MIAGE - Université de NANTES IUP-MIAGE 3ème.
UML - Présentation.
Les méthodes formelles en ingénierie des connaissances Damien Lhomme-Desages Jérémie Barlet.
Understanding, building and using ontologies. Understanding Ontologie : la définition des concepts utilisés dans un langage donné Première approche (Gruber)
Jean-Jacques Lévy INRIA Preuves de programmes et méthodes formelles Microsoft TechDays - 9 février 2010.
Version du 22 juin Un outil danalyse statique (synthèse de propriétés) de preuve de propriétés de logiciels écrits en langage C ANSI, utilisé dans.
Quoi ? Un tampon.
1 B Système Enjeux et principes Cours DESS Nantes 04 Décembre 2002 Didier ESSAME.
Fin du cours Spec2 Equivalence de processus et bisimulation
Alain Le Guennec Jean-Marc Jézéquel Action Triskell
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Conception et analyse des algorithmes
Initiation à la conception des systèmes d'informations
Méthodes symboliques pour la génération de tests de systèmes réactifs comportant des données Eléna Zinovieva Leroux novembre 2004 Membres du jury:
Chapitre 7 Automates de Büchi et SPIN Vérification de modèles:
Caroline Chopinaud Amal El Fallah Seghrouchni Patrick Taillibert
Algorithmique et Programmation
Introduction aux méthodes formelles
Algorithmique et Programmation
Vincent GOURCUFF, Olivier De SMET, Jean-Marc FAURE
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
IFT 702 Planification en intelligence artificielle Contrôle de la recherche avec des réseaux de tâches hiérarchiques Froduald Kabanza Département dinformatique.
TESTING BUSINESS PROCESSES
CSI3525: Concepts des Languages de Programmation
Efficacité des algorithmes
Méthodes formelles pour la conception de systèmes répartis par Luigi Logrippo et tous ses collaborateurs et étudiants École d`ingénierie et technologie.
Programmation non procédurale Le projet ECOLE 2000
Sensibilisation a la modelisation
Spécification d’un modèle de protocole : Promela
Aide à la conception de systèmes distribués
Paradigmes des Langages de Programmation
Amélioration de la simulation stochastique
Supports de formation au SQ Unifié
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Interface Homme-machine (interaction humain-machine)
Introduction au Génie Logiciel
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
J. Cardoso — C. Sibertin-Blanc — C
Initiation à la conception des systèmes d'informations
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Contributions de l’ENST Bretagne à l’ACI Dispo RSM/SERES.
Pthread Ordonnancement. #define _MULTI_THREADED #include #ifndef _CHECK_H #define _CHECK_H /* headers used by a majority of the example program */ #include.
Sémantique des Systèmes Distribués et Embarqués -- UNSA Temporal Logics Temporal Logics (CTL, ACTL) Logic patterns SSDE Eric Madelaine -- vendredi.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Flot de conception de.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Verification approchée Michel de Rougemont, University Paris II et LRI.
Méthode des moindres carrés (1)
21/02/2003DEA DISIC 1 Grid Computing Programming the grid: Distributed Software Components, P2P and Grid Web Services for Scientific Applications Tarak.
> 1 Neptune’04, 24 juin 2004Lab. DTN Ph. Dhaussy, JC Roger  Modélisation formelle  Automates temporisées  Automates de test  Mise en oeuvre  Intégration.
Master IRAD - SPIN / PROMELA
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
1 Chapitre 0 INF6263 Ingénierie des protocoles de communication Informations générales sur le cours w3.uqo.ca/luigi IF6263 Chap 0.
Dániel Darvas (CERN BE-ICS-PCS) Spécification formelle pour les API CERN-ESTEREL séminaire 21/01/2016, CERN Travail conjoint avec B. Fernández, E. Blanco,
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
La vérification par énumération explicite Gérard Berry Collège de France Chaire Algorithmes, machines et langages Cours.
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
Transcription de la présentation:

Le Model Checker SPIN Présentation Algorithmes sous-jacents Batnini Heikel - Ciabrini Damien Présentation Algorithmes sous-jacents Exemple : dining philosophers Comparaison avec d’autres outils

Model Checking S’intéresse à l’évolution du comportement d’un système au cours du temps. Technique pour s’assurer qu’une propriété est valide dans un modèle de système. détection d’erreurs et validation : safety, liveness, … vérification de propriétés de logique temporelle : LTL, CTL, CTL*, … Le Model Checker Spin

Fondements théoriques de SPIN Théorie des automates. Logique temporelle linéaire. Interactions entre processus asynchrones. Premier model-checker efficace : preuves de correction de protocoles LLC, TCP/IP, ARP, Bus, process scheduling … Le Model Checker Spin

Principe d’utilisation Langage pour spécifier le comportement : PROMELA (PROcess MEta LAnguage) Notation pour exprimer la correction : LTL (Linear Temporal Logic) Méthodologie pour établir la consistence du système. Le Model Checker Spin

Description de la méthode Parser PROMELA Parser LTL et traducteur 1. 2. 3. Détection erreurs syntaxiques Simulation interactive Générateur de vérificateur Model checker (code C ANSI) contre- exemple Vérificateur « à la volée » Le Model Checker Spin

Vérification de modèles Détection de sources d’erreurs : code non exécutable (deadcode), source d’interblocage (deadlocks), cycle de non progression (livelocks), réceptions non specifiées de messages. Preuve de la correction : preuve d’invariants (correctness claims), contraintes LTL (never claims). Le Model Checker Spin

Mise en œuvre Processus  Automates de Büchi Construction de l’espace des états P1 P2 Pn Processus BA1 BA2 BAn Traduction en automate Automates S Système global Produit synchrone G Produit asynchrone Espace des États négation ¬F BAF Automate de Büchi Formule LTL F Le Model Checker Spin

Algorithmes(1/2) Formules LTL  Automate de Büchi Détection de cycles acceptants Nested Depth-First Search Le Model Checker Spin

Algorithmes (2/2) Explosion des états Complexité en mémoire Optimisation Partial Order Reduction Gestion de la mémoire State Compression Bit-State Hashing Le Model Checker Spin

Exemple: Dîner des philosophes N fourchettes et N philosophes processus PHILO(numéro) répéter Penser // sans fourchette Manger // avec la fourchette à sa gauche et celle à sa droite jusqu’à faux Le Model Checker Spin

Solution avec interblocage proctype fork(byte i) { byte count=1; do ::(count==1) -> mutex[i]!Prendre;count--; ::(count==0) -> mutex[i]?Reposer;count++; od } proctype philo(byte i) { do ::mutex[i]?Prendre; mutex[(i+1)%N]?Prendre; printf("MSC: MANGE\n"); mutex[i]!Reposer; mutex[(i+1)%N]!Reposer; od } Le Model Checker Spin

Solution avec interblocage Le Model Checker Spin

Solution avec interblocage pan: invalid endstate (at depth 38) pan: wrote pan_in.trail (Spin Version 3.4.10 -- 30 October 2001) Warning: Search not completed + Partial Order Reduction + Compression Full statespace search for: never-claim - (not selected) assertion violations - (disabled by -A flag) cycle checks - (disabled by -DSAFETY) invalid endstates + State-vector 52 byte, depth reached 39, errors: 1 31 states, stored 6 states, matched 37 transitions (= stored+matched) 5 atomic steps hash conflicts: 0 (resolved) Le Model Checker Spin

Solution sans interblocage proctype fork(byte i) { byte count=1; do ::(count==1) -> mutex[i]!Prendre;count--; ::(count==0) -> mutex[i]?Reposer;count++; od } proctype philo(byte i) { do ::mutex[GLOBAL]?Prendre; mutex[i]?Prendre; mutex[(i+1)%N]?Prendre; mutex[GLOBAL]!Reposer; printf("MSC: MANGE\n"); mutex[i]!Reposer; mutex[(i+1)%N]!Reposer; od } Le Model Checker Spin

Solution sans interblocage proctype fork(byte i) { byte count=1; do ::(count==1) -> proctype philo(byte i) { do ::mutex[GLOBAL]?Prendre; mutex[i]?Prendre; mutex[(i+1)%N]?Prendre; mutex[GLOBAL]!Reposer; printf("MSC: MANGE\n"); mutex[i]!Reposer; mutex[(i+1)%N]!Reposer; (Spin Version 3.4.10 -- 30 October 2001) + Partial Order Reduction + Compression Full statespace search for: never-claim - (not selected) assertion violations - (disabled by -A flag) cycle checks - (disabled by -DSAFETY) invalid endstates + State-vector 60 byte, depth reached 219, errors: 0 402 states, stored 221 states, matched 623 transitions (= stored+matched) 6 atomic steps hash conflicts: 0 (resolved) Le Model Checker Spin

Autres outils Explicit State Model Checking Langage de modélisation Model Checking Exploration de l’espace d’états abstraction Bandera PathFinder SLAM ... adaptation Langage de programmation Systematic Testing Exploration de l’espace d’états VeriSoft Autres outils : Symbolic Model Checking modèles de plus de 1020 états SMV Le Model Checker Spin

Références G.J.Holtzman. The Spin Model Checker G.J.Holtzman, D.Peled, M.Yannakakis. On Nested Depth-First Search G.J.Holtzman. An analysis of bit-state hashing R.Gerth. Concise Promela Reference J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and J. Hwang. Symbolic model checking: 1020 states and beyond. G.J.Holtzman, R.Gerth , D.Peled, M.Y.Vardi, P.Wolper. Simple On-the-Fly Automatic Verification of Linear Temporal Logic. Le Model Checker Spin