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...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

44 CHAPITRE 3.PRÉSENTATION INTUITIVEcomportement <strong>de</strong> ce bloc <strong>de</strong> programme sera encodé dans chacune <strong><strong>de</strong>s</strong> parties <strong>de</strong> la fonction <strong>de</strong>transition. Parallèlement à cela, nous proposons <strong>de</strong> <strong>partitionne</strong>r les calculs en saturant successivementla recherche <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> dans les modules TASK 1, TASK 2 puis TASK 3.Dans un premier temps, nous saturons l’exploration <strong>de</strong> TASK 1 en bloquant explicitement lestransitions menant aux <strong>de</strong>ux autres modules. En quelque sorte, cela revient à interdire l’émissiondu signal START 2.Dans un second temps, nous interdisons l’émission du signal START 3. A cette étape du calcul,la fonction <strong>de</strong> transition que nous utilisons enco<strong>de</strong> les comportements <strong>de</strong> TASK 1, TASK 2 et dumodule principal. Tous les états <strong>de</strong> TASK 1 étant explorés, l’opérateur <strong>de</strong> cofacteur nous permet<strong>de</strong> n’appliquer qu’un morceau <strong>de</strong> notre fonction <strong>de</strong> transition dépourvu <strong><strong>de</strong>s</strong> comportements <strong>de</strong>TASK 1.Dans un troisième et <strong>de</strong>rnier temps, l’autorisation du signal START 3, l’application <strong>de</strong> la transitionglobale et l’utilisation <strong>de</strong> l’opérateur <strong>de</strong> cofacteur permettent d’achever les calculs parl’exploration du bloc TASK 3.Dans cet exemple, nous voyons comment l’utilisation <strong>de</strong> signaux peut induire un comportementséquentiel dans un programme écrit comme parallèle. D’une manière plus générale, nouspensons que l’analyse <strong>de</strong> l’utilisation <strong><strong>de</strong>s</strong> signaux nous permet <strong>de</strong> <strong>partitionne</strong>r le calcul <strong><strong>de</strong>s</strong> états<strong>atteignables</strong> dans les opérateurs parallèles, sans toutefois toujours tomber dans <strong><strong>de</strong>s</strong> situationsaussi favorables que celle présentée ici (pur séquencement).3.4.2 Partitionnement <strong><strong>de</strong>s</strong> blocs parallèlesPour <strong>partitionne</strong>r les <strong>programmes</strong> parallèles nous considérons chaque programme <strong>Esterel</strong>dans sa globalité. Afin d’introduire progressivement les difficultés, cette section présente unecollection <strong>de</strong> petits exemples. Chacun <strong>de</strong> ces exemples est un cas particulier permettant <strong>de</strong>mettre l’accent sur une difficulté précise.Etant donné un programme <strong>Esterel</strong> quelconque, nous nous focalisons sur les couples d’instructionsformés d’une instruction émettrice et d’une instruction réceptrice d’un même signallocal. Les instructions émettrices sont <strong>de</strong> la forme “emit S” ou bien “sustain S”. Les instructions<strong>de</strong> la forme “present S ...”, “await S” ou bien “abort ... when S” sont qualifiées <strong>de</strong>réceptrices. Pour simplifier l’exposition du problème, nous supposerons que chaque signal localn’est émis et reçu qu’à un seul endroit dans tout le programme. De cette manière, à chaquesignal local correspond une instruction émettrice et une instruction réceptrice placées dans <strong>de</strong>uxbranches parallèles distinctes, comme dans l’exemple ci-<strong><strong>de</strong>s</strong>sous :P 1 ; Q 1emit S; || await SP 2 Q 2Pour cet exemple, nous supposons aussi que chaque émission du signal S est interceptée parl’instruction await. Ce programme est donc équivalent à :[ P 1 || Q 1 ];[ P 2 || Q 2 ]Le <strong>partitionne</strong>ment <strong><strong>de</strong>s</strong> <strong>programmes</strong> parallèles est basé sur l’idée que l’utilisation <strong>de</strong> chaquesignal permet <strong>de</strong> diviser le programme en <strong>de</strong>ux parties : la première partie concerne tous les

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

Saved successfully!

Ooh no, something went wrong!