• Aucun résultat trouvé

Mod´elisation polychrone de comportements temps r´eel

4.2 Quelques propri´et´es formelles

4.2.2 Mod´elisation polychrone de comportements temps r´eel

Nous abordons ici un certain nombre d’aspects li´es `a la mod´elisation de syst`emes temps r´eel dans le cadre polychrone. Une observation importante est que les notions introduites dans le mod`ele facilitent le raisonnement en ce qui concerne les choix de conception : des questions relatives aussi bien `a la sp´ecification qu’`a la mise en œuvre peuvent ˆetre abord´ees dans le mˆeme mod`ele.

Mise `a l’´echelle d’ex´ecution des mod`eles. Supposons le plongement d’une ´echelle de temps dans une autre, o`u l’intervalle entre les instants est plus grand que dans l’´echelle initiale. Grˆace au m´ecanisme d’´etirement, les comportements d´efinis sur l’´echelle initiale peuvent ˆetre ramen´es `

a la nouvelle ´echelle.

Un cas typique o`u cette propri´et´e du mod`ele polychrone trouve son utilit´e est la concep-tion orient´ee composants dont l’un des avantages majeurs est la r´eutilisaconcep-tion. Dans un tel contexte, en g´en´eral, lors de la d´efinition des composants d’un syst`eme temps r´eel (o`u chacun de ces composants s’ex´ecute `a la fois sur un seul processeur), le d´eveloppeur n’a pas vraiment `

a se pr´eoccuper de la fr´equence `a laquelle le code produit sera ex´ecut´e ult´erieurement. Cela d´epend des plates-formes d’ex´ecution consid´er´ees et du contexte applicatif de leur utilisation. Les fr´equences d’ex´ecution observ´ees sont donc potentiellement vari´ees. Grˆace `a l’´etirement, une mˆeme sp´ecification polychrone d’un composant donn´e peut ˆetre d´eploy´ee sur diff´erents supports d’ex´ecution temps r´eel, n’ayant pas forc´ement les mˆemes fr´equences de calcul.

Un mod`ele polychrone abstrait d’un syst`eme peut ˆetre d´eploy´e sur diff´erentes plates-formes, n’ayant pasa priori les mˆemes fr´equences d’ex´ecution. Cela favorise la r´eutilisation.

∗ ∗

Afin d’illustrer nos propos en ce qui concerne les autres aspects abord´es dans la suite, nous utiliserons des graphes orient´es comme support de repr´esentation des comportements d’un processus. Consid´erons l’exemple simple d’un processus Pconsistant en une addition de deux entiers : P z := x + y. Dans une mise en œuvre effective de P, `a chaque instant o`u il est effectu´e, le calcul de la valeur de z requiert au pr´ealable les valeurs de x et y. Il y a donc des contraintes de pr´ec´edence entre le signalz et les signaux xet y. De telles contraintes peuvent aussi ˆetre sp´ecifi´ees explicitement dans un programmeSignal, entre des signaux qui ne sont pas li´esa priori par des d´ependances fonctionnelles (ce n’est pas le cas dans P, o`u des d´ependances fonctionnelles existent entre x,yetz). Nous repr´esentons les contraintes de notre exemple par

x→zety→z(on parle aussi de d´ependances de valeurs entre signaux [39]). Ces d´ependances sont valides `a une certaine horloge (ici, il s’agit de l’horloge commune des signaux impliqu´es dansPpuisque l’addition est un op´erateur monochrone).

En consid´erant de telles relations de d´ependance entre signaux d’un processusSignal quel-conque p, on munit tout comportement b de p d’un ordre partiel repr´esent´e par 4b qui est la fermeture transitive de la plus petite relation satisfaisant : ∀x1, x2 vars(b), t1 tags(x1),

t2 ∈tags(x2),

t1 ≤t2 (t1, x1)4b(t2, x1)

x1 →x2, t1∈tags(x2) (t1, x1)4b(t1, x2)

Pour le processus P z := x + y, on a pour tout comportement b [[P]] et pour tout

de laFig. 4.5. Intuitivement, chaque comportementbpeut ˆetre caract´eris´e `a l’aide de tels sous-graphes (chacun d’entre eux correspond `a une r´eaction instantan´ee du processus). Chaque ti

repr´esente un instant logique du mod`ele polychrone (pour l’instant, nous ne faisons pas ap-paraˆıtre l’´echelle de temps physique. Elle sera mise en ´evidence sur laFig. 4.6).

Temps logique

...

t0 zt0 yt0 zt1 xt1 t1 ytn xtn tn ztn yt1 xt0

Figure 4.5 – Sous-graphes associ´es `a b∈[[z := x + y]] respectant l’ordre4b.

Ces sous-graphes peuvent donner lieu `a diverses interpr´etations de mise en œuvre : les ordres d’arriv´ee des param`etres d’entr´eexetyvarient durant l’´evolution du syst`eme ; la production de la sortiezest plus longue `a certains instants logiques. Dans ce qui suit, nous nous baserons sur des notions d´efinies `a la section 4.2.1 pour exposer intuitivement une fa¸con d’aborder le “temps r´eel” dans le mod`ele polychrone.

Contraintes temps r´eel. Le d´eploiement des sous-graphes de la Fig. 4.5 sur une ´echelle de temps continu mod´elise une ex´ecution effective. Les instants physiques auxquels les ´ev´enements apparaissent y sont d´enot´es par les τk sur la Fig. 4.6. Du point de vue du mod`ele polychrone, le sous-graphe5 de l’instant logique t0 sur la Fig. 4.6 peut ˆetre “´etir´e” autant qu’on veut, pourvu que l’ordre partiel 4b soit respect´e. Par exemple, on pourrait imaginer un ´etirement par rapport `a l’´echelle de temps continu qui fournit la valeur dezt0 entre les instants physiques

τ4 et τ5. L’introduction d’une ´echelle de temps physique peut ˆetre vue d’une certaine mani`ere comme un pas vers la prise en compte de contraintes temps r´eel (i.e., sp´ecification des bornes de temps de r´eaction). Typiquement, on peut imposer que la r´eaction `a l’instantt0 se produise strictement entre les instants τ0 et τ4. Dans ce cas, le sous-graphe consid´er´e de b ne peut ˆetre ´etir´e qu’entre ces deux instants physiques. Nous observons ainsi que le fait de consid´erer des contraintes temps r´eel sur le mod`ele polychrone d’un syst`eme se traduit de mani`ere intuitive, par la d´efinition d’unintervalle de clˆoture6 pour chaque sous-graphe caract´erisant un compor-tement. Ce genre de contraintes est g´en´eralement impos´e par l’environnement du syst`eme. Par exemple, cela peut ˆetre `a travers une clause de la forme : “´emettre des sorties tant d’unit´es de tempsau plus apr`es avoir re¸cu des entr´ees”. Le syst`eme se voit ainsi imposer un d´elai critique `

a ne pas exc´eder lors de son fonctionnement. Ce qui se traduit simplement dans le mod`ele po-lychrone par le choix d’une longueur maximale d’´etirement correspondant `a ce d´elai, pour tout sous-graphe d’un comportement du processusSignalsp´ecifiant le syst`eme.

On doit naturellement se poser la question de la v´erification des contraintes induites par le choix d’un intervalle de clˆoture pour un comportement (en d’autres termes, est-ce que tous les sous-graphes caract´erisant ce dernier satisfont les contraintes de l’intervalle ?). Cela s’inscrit dans le cadre de la validation du mod`ele d’un syst`eme. Plusieurs approches sont envisageables pour y r´epondre. Celle que nous consid´erons dans cette th`ese, propos´ee initialement par A.

5. Par abus de langage, nous nous autorisons `a utiliser le terme “´etirement” pour ces graphes.

6. Tout ´etirement “licite” des sous-graphes d’un comportement admissible ne doit pas exc´eder cet intervalle d´efini sur l’´echelle de temps continu.

Temps logique Temps physique

...

t0 xt0 zt0 yt0 zt1 xt1 t1 ytn xtn tn ztn τ4 τ7 τ8 τ9 τ14 τ0 τ1 τ2 τ3 τ10 τ11 τ12 τ13 yt1 τ5 τ6

Figure 4.6 – Sous-graphes associ´es `ab∈[[z := x + y]] sur une ´echelle de temps physique. Kountouris [140], est enti`erement bas´ee sur le mod`ele polychrone. Une pr´esentation d´etaill´ee en est donn´ee dans la section 4.4.3. La technique utilis´ee consiste `a d´eriver `a partir d’un pro-gramme Signal un autre programme (servant d’observateur), qui refl`ete des propri´et´es non fonctionnelles du programme de d´epart. En l’occurrence, ce programme observateur d´etermine des dur´ees de calculs effectu´es dans le programme initial. Pour cela, il prend en compte des param`etres caract´erisant une plate-forme (par exemple, des dur´ees d’ex´ecution d’op´erations ´el´ementaires comme la somme de deux entiers cod´es sur 32 bits) et des dates d’acquisition d’entr´ees. `A partir de ces informations, il calcule des dates de production des sorties. La dur´ee globale des calculs peut alors ˆetre d´eduite. En utilisant une telle technique, nous pouvons iden-tifier et ´ecarter les comportements qui ne respectent pas la contrainte impos´ee par l’intervalle de clˆoture. D’autres approches de validation reposent sur l’utilisation de techniques analytiques `

a l’image de celles qu’offre l’alg`ebre Max-Plus [9]. Enfin, des techniques bas´ees sur les mod`eles temporis´es peuvent aussi ˆetre mentionn´ees. Par exemple, dansTaxys [65], les automates tem-poris´es servent de support pour l’analyse temporelle.

Les contraintes impos´ees par l’environnement permettent de d´eterminer l’intervalle de clˆoture pour les sous-graphes caract´erisant un comportement. Il existe un autre type de contraintes, induites cette fois-ci par le support d’ex´ecution. Il s’agit de dur´ees minimales n´ecessaires `a la r´ealisation des op´erations effectu´ees par un syst`eme. En g´en´eral, on dispose d’une estima-tion des temps d’ex´ecuestima-tion des op´eraestima-tions ´el´ementaires (comme les op´eraestima-tions arithm´etiques ou logiques) sur une plate-forme. C’est un moyen d’avoir a priori une id´ee du temps minimal requis pour une ex´ecution globale. La prise en compte de ces contraintes dans un mod`ele du syst`eme peut entraˆıner le rejet de certains comportements pour la mise en œuvre consid´er´ee. Ce sont les comportements au sein desquels des sous-graphes ne sont pas suffisamment ´etir´es pour que la longueur de l’´etirement soit sup´erieure aux dur´ees minimales impos´ees par la plate-forme consid´er´ee (pour que ceux-ci satisfassent les contraintes, ils doivent ˆetre ´etir´es davantage).

La Fig. 4.7 illustre les deux types de contraintes temps r´eel que nous venons de distinguer. Ici, g1, g2, g3, g4 et g5 symbolisent des ´etirements de sous-graphes caract´erisant un mˆeme comportementb (i.e., ils expriment des propri´et´es fonctionnelles identiques ; ils se diff´erencient uniquement `a travers l’´etirement). On remarque que g1, g2, g3 et g4 respectent l’intervalle de clˆoture d´efini par l’environnement tandis que ce n’est pas le cas de g5. En revanche, par rapport aux contraintes impos´ees par la plate-forme d’implantation, g1 exhibe une ex´ecution plus rapide que ne le permet la plate-forme consid´er´ee. Dans ce contexte particulier, la prise en compte des contraintes temps r´eel entraˆınera le rejet du comportement b car il ne respecte pas toujours celles-ci. Ainsi, le mod`ele polychrone concret d’un syst`eme temps r´eel (c’est-`a-dire,

de contraintes deux types

d´elai min. requis impos´e par l’environnement

(intervalle de clˆoture) d´elai max. d’ex´ecution

par une plate-forme

g1 g2 g3 g4 g5 d’ex´ecution particuli`ere

Figure4.7 – Deux types de contraintes sur le d´elai d’ex´ecution.

o`u les contraintes du support d’ex´ecution et de l’environnement sont prises en compte) r´esulte d’une restriction du nombre de comportements du mod`ele abstrait associ´e.

Interruptions dans une ex´ecution temps r´eel. Lors d’ex´ecutions d’un syst`eme temps r´eel, des interruptions sont susceptibles de se produire. Par exemple, des calculs peuvent ˆetre inter-rompus afin de r´ealiser des communications ou des synchronisations (ce qui a pour cons´equence de rallonger la dur´ee des calculs). Du point de vue du mod`ele polychrone abstrait, ces interrup-tions ne “brisent” pas les instants logiques. En effet, les calculs ´etant enti`erement refl´et´es par les sous-graphes caract´erisant chaque comportement du mod`ele, toute ´eventuelle interruption est mise en ´evidence par un ´etirement de ces sous-graphes. Une longue interruption se traduit donc par un long ´etirement des sous-graphes. Par exemple sur laFig. 4.6, le sous-graphe de l’instant logique tn peut ˆetre interpr´et´e comme le r´esultat induit par des interruptions par rapport au sous-graphe de l’instant t0 (la production de l’´ev´enement ztn dans le graphe de l’instant tn

consomme un d´elai plus long que dans celui de l’instantt0, apr`es r´eception des ´ev´enements xtn

etytn).

Nous avons vu que tout processusSignalest clos par ´etirement. Autrement dit, il contient tous les comportements possibles du syst`eme sp´ecifi´e (y compris donc ceux qui peuvent r´esulter de la survenue d’interruptions lors de ses ex´ecutions). Ces comportements traduisent les mˆemes propri´et´es fonctionnelles et ne se diff´erencient qu’`a travers l’´etirement. Par cons´equent, le choix d’un repr´esentant quelconque de cet ensemble est suffisant pour ´etudier les aspects fonctionnels du syst`eme mod´elis´e par le processus. Cette caract´eristique du mod`ele polychrone permet de se concentrer sur les aspects purement comportementaux du fonctionnement d’un syst`eme temps r´eel, tout en restant capable d’aborder les aspects non fonctionnels.

Une autre fa¸con de mod´eliser les interruptions consiste `a consid´erer des signaux d’entr´ee suppl´ementaires dont la pr´esence d´enote l’occurrence d’´ev´enements `a la base de celles-ci. Dans

ce cas, la production des sorties sera diff´er´ee ou non en fonction du statut de ces nouveaux signaux. Dans cette seconde fa¸con de repr´esenter les interruptions, on est amen´e `a briser les instants logiques. Pour cela, on proc`ede au raffinement de l’´echelle temporelle.

Raffinement temporel. Le m´ecanisme de sur-´echantillonnage du langageSignal, introduit pr´ec´edemment (cf. section 4.1.2), permet le raffinement temporel de descriptions polychrones : `

a partir d’une ´echelle de temps logique donn´ee, on peut d´efinir une ´echelle plus fine, grˆace `a laquelle on peut observer de possibles d´ecalages temporels d’´ev´enements produits par le syst`eme durant son ´evolution. Ce raffinement temporel ne modifie pas l’ordre partiel 4b dans les sous-graphes associ´es `a tout comportementbdu processus. Seule l’´echelle de temps change. Puisqu’il y a potentiellement plus de points d’observation sur une ´echelle de temps sur-´echantillonn´e, les sous-graphes peuvent ˆetre ´etir´es de fa¸con `a pr´eciser certains d´ecalages temporels non visibles entre des ´ev´enements sur l’´echelle initiale. Par exemple, la production de la valeur de z dans le processus P≡ z := x + y n´ecessite un certain d´elai apr`es r´eception des valeurs de x et y. Nous pouvons donc imaginer un sch´ema d’ex´ecution2-step, compos´e dedeux instants logiques : le premier d´enote l’acquisition des entr´ees (i.e., valeurs de x et y) et le second, la production des sorties (i.e., valeur de z). Cela revient tout simplement `a d´ecomposer en deux, par sur-´echantillonnage, chaque instant logiquetk de la Fig. 4.5. De fa¸con similaire, on peut continuer `

a raffiner la description jusqu’`a la mise en ´evidence des d´ecalages7entre les instants d’acquisition d’une part et ceux de production d’autre part. On irait alors vers un sch´ema d’ex´ecutionn-step

(o`und´enote le nombre d’instants logiques r´esultant du sur-´echantillonnage de l’´echelle de temps initiale). Plus g´en´eralement, le raffinement temporel d’un processus est d´efini comme suit :

D´efinition 15 (raffinement temporel) Soitp un processus d´efini sur un ensemble de points d’observation T1, le raffinement temporel de p sur un ensemble de points d’observation T2 tel que T1⊂ T2 est d´efini par la clˆoture par ´etirement dep sur T2.

Nous observons ainsi que des comportements temps r´eel peuvent ˆetre d´ecrits de fa¸con pr´ecise dans le mod`ele polychrone. Le plongement de l’ensemble des points d’observation dans une ´echelle de temps physique se fait alors tr`es facilement.

∗ ∗

Le mod`ele polychrone offre `a travers ses caract´eristiques un cadre formel int´eressant pour d´ecrire et ´etudier diff´erents aspects li´es `a la conception de syst`emes temps r´eel. Dans les chapitres suivants, nous nous attacherons `a montrer la pertinence de ce mod`ele `a travers l’utilisation du langageSignal, qui en est le formalisme associ´e.