Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
- 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 .