• Aucun résultat trouvé

Le logiciel d’un syst`eme r´eactif peut ˆetre d´ecompos´e en deux grandes parties :

• l’algorithme applicatif - il d´ecrit le comportement du syst`eme. Il peut ˆetre d´ecompos´e en

plusieurs sous-algorithmes applicatifs, o `u chaque sous-algorithme r´ealise une fonction pr´ecise,

• l’ex´ecutif - son rˆole consiste `a g´erer et `a allouer les ressources physiques `a l’algorithme

appli-catif, et aussi `a respecter les contraintes temporelles.

Nous ne nous int´eressons dans ce chapitre qu’`a la mod´elisation de l’algorithme applicatif du logiciel. Le mod`ele d’algorithme que nous pr´esentons dans ce chapitre est bas´e sur celui d´evelopp´e dans la th`ese d’Annie Vicard [81].

4.2.1 Hypergraphe orient´e

L’algorithme est mod´elis´e par un graphe flot de donn´ees, qui est un hypergraphe orient´e, appel´e graphe d’algorithme. Les sommets de l’hypergraphe d´esignent les op´erations, et les arcs d´esignent les d´ependances de donn´ees entre op´erations. Ces arcs induisent un ordre partiel d’ex´ecution sur les op´erations, qui d´ecrit le parall´elisme potentiel (op´erations non reli´ees par une d´ependance de donn´ee) disponible au niveau de l’algorithme entre les op´erations.

D´efinition 23 (Op´eration) Une op´eration est une entit´e logicielle qui repr´esente une s´equence finie de code informatique.

Remarque 5 Dans certains syst`emes r´eactifs le nom op´eration d´esigne une tˆache temps r´eel. Le terme op´eration a ´et´e choisi ici pour d´esigner un lien fonctionnel avec la notion d’op´erateur que nous utiliserons dans la mod´elisation de l’architecture (voir section 4.3).

D´efinition 24 (D´ependance de donn´ee) Une d´ependance de donn´ee (oi . oj) repr´esente la re-lation de pr´ec´edence (transfert de donn´ees) entre l’op´eration oi et l’op´eration oj. L’op´eration oi est appel´ee pr´ed´ecesseur de oj, et l’op´eration oj est appel´ee successeur de oi. Elle est appel´ee d´ependance de donn´ee de diffusion si elle poss`ede une seule op´eration productrice et plusieurs op´erations consommatrices. Dans ce cas, elle est not´ee oi . {. . . , oj, . . .}.

On peut distinguer dans un graphe d’algorithme deux types d’op ´erations : op´erations de calcul et op´erations d’entr´ee/sortie.

4.2 Mod`ele d’algorithme 49

D´efinition 25 (Op´erations de calcul) Une op´eration de calcul poss`ede au moins un pr´ed´ecesseur et au moins un successeur. Elle consomme des donn´ees d’entr´ee qui proviennent de ses pr´ed´ eces-seurs, et produit des donn´ees de sortie qui sont ensuite utilis´ees par ses successeurs. Elle ne peut s’ex´ecuter que lorsque toutes ses donn´ees d’entr´ee sont pr´esentes.

D´efinition 26 (Op´erations d’entr´ee/sortie) Une op´eration d’entr´ee (resp. de sortie) s’effectue sur une interface d’entr´ee, capteur (resp. de sortie, actionneur) avec l’environnement ext´erieur. Les op´erations d’entr´ee (resp. de sortie) sont des op´erations sans pr´ed´ecesseur (resp. sans succes-seur). Le rˆole d’une op´eration d’entr´ee est de transformer les informations physiques issues d’un capteur en donn´ees num´eriques qui sont ensuite consomm´ees par une ou plusieurs op´erations de calcul. Une op´eration de sortie transforme les donn´ees num´eriques issues des op´erations de calcul en grandeurs physiques qui sont ensuite appliqu´ees aux actionneurs.

La figure 4.1 est un exemple d’un graphe d’algorithme compos´e de deux op´erations d’entr´ees

In1etIn2, quatre op´erations de calculA, B, C et D, une op´eration de sortie Out1, six d´ependances de donn´ees In2 . B, In2 . C, A . D, B . D, C . Out1 et D . Out1, et d’une

d´ependance de diffusion In1 . {A, B}. Ici, par exemple, les op´erations A, B et C peuvent ˆetre

ex´ecut´ees en parall`ele sur trois processeurs distincts (parall´elisme potentiel).

In1 In2 A D C B Out1

FIG. 4.1 – Exemple d’un graphe d’algorithme.

4.2.2 Hypergraphe orient´e infiniment r´ep´et´e

Dans un syst`eme r´eactif, l’algorithme est en interaction infiniment r´ep´et´ee avec son environne-ment. Chaque interaction se d´ecompose g´en´eralement en trois phases compl´ementaires : l’acquisi-tion, le calcul et l’´emission. Son mode de fonctionnement est le suivant :

A chaque top faire

l’acquisition des donn´ees issues des capteurs;

le calcul de la loi de commande;

l’´emission des commandes aux actionneurs;

Ici, topest une horloge dont le rythme doit ˆetre fix´e en fonction des caract´eristiques de l’en-vironnement, c’est-`a-dire du rythme d’´evolution des grandeurs physiques.

Donc, la s´equence « acquisition-calcul-´emission » est infiniment ex´ecut´ee, et chaque ex´ecution d´efinit une r´ep´etition du graphe d’algorithme. Afin de prendre en compte ce mode infiniment r ´ep´et´e de l’algorithme dans notre mod`ele, l’algorithme est mod´elis´e par un hypergraphe acyclique (fi-gure 4.2), constitu´e d’un motif infiniment r´ep´et´e [81].

D´efinition 27 (Motif) On appelle motif d’un graphe, l’ensemble des op ´erations appartenant `a la mˆeme r´ep´etition et l’ensemble des d´ependances de donn´ees entre ces op´erations.

Ainsi, dans certaines applications temps r´eel, une op´eration a besoin lors de san-i`eme ex´ecution

(c’est-`a-dire lors de lan-i`eme r´ep´etition du graphe d’algorithme) de consommer une donn´ee

pro-duite par une autre op´eration lors de la (n-1)-i`eme r´ep´etition, d’o`u la notion de d´ependances de donn´ees inter-r´ep´etition (ou inter-motif).

Par exemple, la figure 4.2 est l’hypergraphe infiniment r´ep´et´e du graphe d’algorithme de la figure 4.1. On peut distinguer dans ce graphe plusieurs motifs identiques et plusieurs instances de la d´ependance de donn´ee inter-motif A(n−1) . B(n).

temps In1 In2 A D C B Out1 In1 In2 A D C B Out1 In1 In2 A D C B Out1

motif(n − 1) motifn motif(n + 1)

FIG. 4.2 – Exemple d’un graphe d’algorithme infiniment r´ep´et´e.

Cependant, ce mod`ele pose un probl`eme qui est la taille importante de la sp´ecification de l’ algorithme. Afin de r´eduire cette taille, le graphe d’algorithme est factoris´e [52]. La factorisa-tion consiste `a superposer toutes les instances du graphe d’algorithme ; elle est r´ealis´ee en deux temps. Dans un premier temps, l’algorithme est mod´elis´e par un hypergraphe factoris´e constitu´e d’un seul motif de l’hypergraphe infiniment r´ep´et´e. Dans un deuxi`eme temps, toutes les instances d’une mˆeme d´ependance de donn´ee inter-motif A(n−1) . B(n) sont remplac´ees par une nouvelle

op´eration factoris´ee, appel´ee op´eration m´emoire (ou retard [75])MAB, et deux d´ependances intra-motif factoris´ees A . MAB et MAB . B. Une op´eration m´emoire introduit dans notre mod`ele

la notion d’´etat, et donc l’ensemble des op´erations m´emoires repr´esente l’´etat de l’algorithme. D´efinition 28 (Op´eration m´emoire) Elle est appel´ee m´emoire puisque elle m´emorise la donn´ee produite par une op´erationA lors de son ex´ecution pr´ec´edente `a la r´ep´etitionn − 1. Cette donn´ee sera ensuite consomm´ee par son successeur B `a la r´ep´etition n. Nous supposons que sa dur´ee d’ex´ecution est nulle.

4.2 Mod`ele d’algorithme 51

«Notre mod`ele suit la s´emantique des langages synchrones. Cela veut dire, que pour assurer un parfait d´eterminisme n´ecessaire dans le contexte temps r´eel, d’une part on fait l’hypoth`ese que lorsqu’une op´eration rec¸oit ses donn´ees, elle s’ex´ecute et produit instantan´ement ses donn´ees, cela ´etant vrai pour toute op´eration du graphe, celui-ci s’ex´ecute donc instantan´ement, et d’autre part afin d’assurer qu’un motif sera termin´e avant qu’un autre commence, on introduit un arc de pr´ec´edence sans donn´ee entre chaque motif. Les ex´ecutions successives motif d´efinissent un temps logique dont chaque instant correspond `a une r´eaction de l’application. » [75]

Notons qu’une donn´ee initiale pour chaque op´eration m´emoire est n´ecessaire lors de la premi`ere r´ep´etition. Donc, nous ajoutons dans ce nouveau graphe pour chaque op ´eration m´emoire une nou-velle op´eration, appel´ee op´eration constante, et une nouvelle d´ependance de donn´ees entre cette nouvelle op´eration et l’op´eration m´emoire.

D´efinition 29 (Op´eration constante) Elle est appel´ee constante puisque sa valeur ne change pas durant l’ex´ecution du syst`eme. Elle est ex´ecut´e une seule fois pendant la premi`ere r´ep´etition, et nous supposons que sa dur´ee d’ex´ecution est nulle.

Par exemple, la figure 4.3 est le graphe d’algorithme factoris´e du graphe d’algorithme infi-niment r´ep´et´e de la figure 4.2. Dans ce graphe factoris´e, chaque op´eration (resp. d´ependance de donn´ee intra et inter-motif) repr´esente plusieurs instances d’une mˆeme op´eration (resp. d´ependance de donn´ee intra et inter-motif).

In1 In2 A D C B Out 1 MAB initA

FIG. 4.3 – Exemple d’un graphe d’algorithme factoris´e.

Enfin, l’algorithme d’une application temps r´eel est formellement d´efini par :

D´efinition 30 (Algorithme) Un algorithme est mod´elis´e par un hypergraphe factoris´e, appel´e graphe d’algorithme Alg. Il est repr´esent´e par le couple (O ,E ), o `u O est l’ensemble des n

op´erations et E est l’ensemble desm d´ependances de donn´ees.

Par exemple, pour le graphe d’algorithme de la figure 4.3, nous avons :

O = {In1, In2, A, B, C, D, MAB, initA, Out1}

E = {(In2 . B), (In2 . C), (A . D), (B . D), (C . Out1), (D . Out1), (In1 . {A, B}), (initA . MAB), (A . MAB), (MAB . B)}