12.07.2015 Views

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4 CHAPITRE 1. INTRODUCTIONgrammes peuvent être représentés par <strong><strong>de</strong>s</strong> formules logiques sur ces variables. Comme nousle verrons dans ce document, il existe <strong><strong>de</strong>s</strong> métho<strong><strong>de</strong>s</strong> permettant <strong>de</strong> calculer symboliquementl’espace <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> avec <strong><strong>de</strong>s</strong> structures <strong>de</strong> données qui permettent <strong>de</strong> représenterefficacement ces formules logiques ; ces structures sont appelées <strong><strong>de</strong>s</strong> Diagrammes <strong>de</strong> DécisionBinaires ou BDD (Binary Decision Diagrams).1.1 Métho<strong><strong>de</strong>s</strong> symboliquesDepuis les années 90, les BDDs ont été utilisés dans diverses métho<strong><strong>de</strong>s</strong> <strong>de</strong> vérification pourreprésenter implicitement <strong><strong>de</strong>s</strong> espaces d’états [24, 23]. Ces métho<strong><strong>de</strong>s</strong> partent d’une représentation“circuit” <strong><strong>de</strong>s</strong> <strong>programmes</strong>. Les BDDs ont ainsi permis d’appliquer ces métho<strong><strong>de</strong>s</strong> à la vérification<strong>de</strong> larges applications synchrones réalistes. Le calcul <strong>de</strong> base <strong>de</strong> l’espace <strong><strong>de</strong>s</strong> états <strong>atteignables</strong>d’un programme est un algorithme symbolique <strong>de</strong> point fixe utilisant <strong><strong>de</strong>s</strong> BDDs et permettant<strong>de</strong> produire les états <strong>atteignables</strong> par un algorithme Breadth First Search : chaque étape <strong>de</strong> l’algorithmepermet <strong>de</strong> construire tous les successeurs <strong><strong>de</strong>s</strong> états atteints à l’étape précé<strong>de</strong>nte parl’application d’une fonction <strong>de</strong> transition. Mais compter sur le seul pouvoir <strong><strong>de</strong>s</strong> BDDs ne suffitpas toujours pour faire face à la complexité <strong>de</strong> la construction <strong>de</strong> cet espace. Plus précisément,alors que le BDD représentant l’espace d’états <strong>atteignables</strong> final est souvent très compact, lafonction <strong>de</strong> transition et les calculs <strong><strong>de</strong>s</strong> états successeurs dans les étapes intermédiaires <strong>de</strong>l’algorithme peuvent nécessiter l’utilisation <strong>de</strong> BDDs beaucoup plus larges. Des techniques intelligentesont déjà été proposées pour <strong>partitionne</strong>r l’application <strong>de</strong> la fonction <strong>de</strong> transition etpermettent <strong>de</strong> résoudre ce problème en partie [21, 22, 50].Jusqu’à présent, <strong>Esterel</strong> utilisait ces techniques à travers une traduction en circuits. Cettetraduction aplatit la structure mais permet <strong>de</strong> représenter les <strong>programmes</strong> dans un format directementexploitable par les outils <strong>de</strong> calcul. Dans le contexte d’<strong>Esterel</strong>, nous proposons d’utiliserla structure syntaxique naturelle <strong><strong>de</strong>s</strong> <strong>programmes</strong> afin d’appliquer la fonction <strong>de</strong> transition parmorceau. Intuitivement, si P et Q sont <strong>de</strong>ux blocs <strong>de</strong> programme composés en séquence P ; Q,il semble naturel <strong>de</strong> calculer d’abord tous les états <strong>atteignables</strong> dans P , et ensuite seulement <strong>de</strong>calculer tous les états <strong>atteignables</strong> dans Q. Un algorithme Breadth First Search aurait plutôtcombiné <strong><strong>de</strong>s</strong> états <strong>de</strong> P avec le “début” <strong>de</strong> ceux <strong>de</strong> Q dès lors que tous les comportements <strong>de</strong>P ne sont pas <strong>de</strong> même durée. Un tel découpage est intuitivement une bonne idée puisqu’ildécoupe linéairement un problème dont la complexité est fonction <strong>de</strong> P ; Q en <strong>de</strong>ux problèmesdont les complexités sont respectivement fonction <strong>de</strong> P seulement et fonction <strong>de</strong> Q seulement.Alors que cette idée semble triviale, les difficultés réelles apparaissent en présence <strong>de</strong> parallélisme.Dans un programme parallèle P || Q, l’ensemble <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> n’est pasen général le simple produit cartésien <strong><strong>de</strong>s</strong> comportements <strong>de</strong> P et <strong>de</strong> Q du fait <strong><strong>de</strong>s</strong> échanges <strong><strong>de</strong>s</strong>ignaux internes entre P et Q introduisant <strong>de</strong> la synchronisation entre les blocs. Ceci rend lecalcul <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> difficile en même temps qu’il justifie son utilité. Afin que notre approcheretienne quelques avantages d’une approche symbolique, une attention toute particulièredoit être prise afin que notre <strong>partitionne</strong>ment ne s’apparente pas à l’énumération <strong>de</strong> tous lesétats possibles du programme ; une idée typiquement mauvaise consisterait à <strong>partitionne</strong>r unprogramme <strong>de</strong> la forme P 1 ;P 2 || Q 1 ;Q 2 suivant P 1 Q 1 , P 1 Q 2 , P 2 Q 1 et P 2 Q 2 .

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!