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.

3.1. DESCRIPTION GÉNÉRALE DE LA MÉTHODE 35Fig. 3.5 – Détail <strong>de</strong> notre métho<strong>de</strong> <strong>de</strong> <strong>partitionne</strong>ment sur une frontière entre <strong>de</strong>ux blocs P et Q.Au cours <strong><strong>de</strong>s</strong> trois premières étapes, P est entièrement exploré. Les états qui “débor<strong>de</strong>nt” hors<strong>de</strong> P ne sont pas utilisés dans le calcul <strong>de</strong> l’image. Dans les trois <strong>de</strong>rnières étapes, l’exploration<strong>de</strong> P et <strong>de</strong> Q est effectuée à partir <strong><strong>de</strong>s</strong> états “en attente” obtenus précé<strong>de</strong>mment. Comme Pa été entièrement exploré, cette secon<strong>de</strong> phase d’exploration ne concerne plus que les états <strong>de</strong>Q. Dans cette figure, les ronds blancs désignent les états source et les ronds noirs désignentles nouveaux états cible à une étape donnée. Les ronds gris sans cercle représentent les étatsprécé<strong>de</strong>mment atteints et les ronds gris avec cercle représentent les états en attente.Support syntaxique. La division du programme en blocs ainsi que la définition <strong>de</strong> frontièrespertinentes dépend fortement <strong>de</strong> la structure et donc <strong>de</strong> la syntaxe <strong><strong>de</strong>s</strong> <strong>programmes</strong>. Plus particulièrement,cette division repose principalement sur la réception <strong><strong>de</strong>s</strong> signaux comme dansl’exemple :abort P when SNous utilisons un graphe <strong>de</strong> flot <strong>de</strong> contrôle pour nous ai<strong>de</strong>r dans cette tâche. Le graphe estconstruit directement au <strong><strong>de</strong>s</strong>sus <strong>de</strong> l’arbre syntaxique du programme <strong>de</strong> telle sorte que l’arbresyntaxique et le graphe <strong>de</strong> contrôle partagent les mêmes noeuds. Le graphe décrit tous les cheminspossibles suivis par le contrôle entre chacune <strong><strong>de</strong>s</strong> instructions du programme <strong>Esterel</strong>et en particulier entre les registres qui dans le programme correspon<strong>de</strong>nt aux points d’arrêtpossibles du contrôle entre les instants (et qui correspon<strong>de</strong>nt à l’opérateur pause dans le <strong>programmes</strong>ource). La frontière entre les blocs actifs et inactifs est alors décrite en sélectionnantun sous-ensemble <strong><strong>de</strong>s</strong> arcs du graphe. Au cours <strong><strong>de</strong>s</strong> calculs, ce sous-ensemble est amené à varierau fur et à mesure que <strong><strong>de</strong>s</strong> frontières sont ouvertes, que <strong><strong>de</strong>s</strong> blocs sont activés et que la fonction<strong>de</strong> transition est étendue, comme nous l’avons décrit précé<strong>de</strong>mment. A partir du graphe courantcontenant <strong><strong>de</strong>s</strong> arcs ouverts et fermés, chaque macro-étape <strong>de</strong> l’algorithme itératif consiste à :– calculer l’ensemble <strong><strong>de</strong>s</strong> registres inactifs afin <strong>de</strong> construire une <strong><strong>de</strong>s</strong>cription BDD <strong>de</strong> l’ensemble<strong><strong>de</strong>s</strong> blocs considérés,– sélectionner parmi les états dits “en attente” un nouvel ensemble d’états initiaux pour laprochaine étape,– achever l’exploration à l’intérieur <strong><strong>de</strong>s</strong> blocs actifs courants. Les états découverts à l’extérieur<strong><strong>de</strong>s</strong> blocs actifs sont placés “en attente”,– une fois l’exploration <strong><strong>de</strong>s</strong> blocs actifs courants terminée, d’autres frontières sont ouverteset <strong>de</strong> nouveaux blocs sont activés.L’algorithme se termine une fois que l’ensemble <strong><strong>de</strong>s</strong> états en attente est vi<strong>de</strong>. Dans les sectionssuivantes, nous décrivons les critères du choix <strong>de</strong> nos frontières en fonction <strong>de</strong> la syntaxe <strong><strong>de</strong>s</strong>

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

Saved successfully!

Ooh no, something went wrong!