• Aucun résultat trouvé

4.4 Abstraction sur valeurs

5.1.1 Fondements th´eoriques

La nature polychrone de Signal permet de mod´eliser un syst`eme au sein duquel chaque composant peut avoir son horloge propre. Cela en fait un langage adapt´e pour d´ecrire un syst`eme selon une architecture de type GALS (celle-ci ´etant caract´eris´ee par des composants faiblement coupl´es). Ses parties asynchrones, form´ees essentiellement par les m´ecanismes et protocoles de communication, seront alors repr´esent´ees par des mod`eles synchrones correspondants. Il se pose ensuite la question de l’´equivalence des comportements du mod`ele polychrone ainsi obtenu, et de la mise en œuvre asynchrone du syst`eme. En d’autres termes, il s’agit de d´eterminer les condi-tions sous lesquelles on peut passer d’un comportement synchrone `a un comportement asyn-chrone et inversement, de fa¸con ´equivalente comme l’illustre laFig. 5.1. Sur la trace synchrone dessin´ee, on remarque que les contraintes de synchronisation entre les diff´erents ´ev´enements sont mises en ´evidence `a travers la pr´esence du symbole d’absence (“⊥”). Cela n’est pas le cas sur la trace asynchrone associ´ee, o`u ces informations sont perdues. Seul l’ordre des valeurs affect´ees aux variables est pr´eserv´e. Afin de pouvoir d´ecider de l’´equivalence de ces deux traces pour un mˆeme syst`eme, deux notions fondamentales ont ´et´e d´efinies : l’endochronieet l’endo-isochronie1.

3 5 4 ... ... ... z y x 5 2 9 7 1 8 ... ... ... z y x ... ... ... z y x reconstruction de la trace synchrone trace asynchrone trace synchrone 4 5 2 7 1 9 3 5 8 8 5 2 4 3 7 5 9 1 d´esynchronisation

Figure 5.1 – D´esynchronisation d’un comportement synchrone et resynchronisation du com-portement asynchrone r´esultant.

Endochronie. La Fig. 5.2 montre les hi´erarchies d’horloges [39] associ´ees `a deux processus

Signal. Celle de gauche, qui consiste en un seul arbre d’horloges, caract´erise un processus

en-1. On parle aussi d’“isochronie” [29], qui est en effet une notion similaire, mais plus g´en´erale (nous y revien-drons dans le paragraphe consacr´e `a l’endo-isochronie).

dochrone2. Les horloges sont organis´ees selon une hi´erarchie bas´ee sur l’inclusion d’ensembles d’instants. Par exemple,h2 eth3 sont incluses dansh1. L’horloge la plus rapide du processus se trouve `a la racine. Lorsqu’un processus n’est pas endochrone, il ne peut ˆetre repr´esent´e par un seul arbre d’horloges. Sur laFig. 5.2, c’est le cas pour le processus de droite. On peut le rendre endochrone en construisant une horloge plus rapide que ses trois racines. Celle-ci deviendra alors la racine unique.

processus non endochrone processus endochrone

h1

h3 h2

Figure 5.2 – Hi´erarchies d’horloges dans un processusSignal.

Grˆace `a la hi´erarchie d´efinie dans l’arbre d’horloges, un processus endochrone sait, `a partir d’un flot de valeurs significatives (i.e. des stimulations externes, donc asynchrones), reconstruire exactement le flot de ses entr´ees ainsi que celui de ses sorties. En d’autres termes, pour faire le lien avec la d´efinition que nous avons donn´ee au chapitre 3 (section 3.1.2), le syst`eme se base sur l’arbre d’horloges associ´e au processus qui le mod´elise pour d´ecider quand les entr´ees sont prises en compte.

D´efinition 20 (endochronie) Un processuspest endochrone sur un sous-ensemble (´eventuelle-ment vide)E ⊆vars(p) ssi

∀b, b∈p, (b|E)= (b|E)

≈⇒b≶b

Le processus p est dit endochrone s’il est endochrone sur l’ensemble de ses signaux d’entr´ee.

Dans la d´efinition ci-dessus, le membre gauche de l’implication sp´ecifie que les comporte-ments b etb′ du processusp ont la mˆeme classe d’´equivalence de flots, sur les signaux associ´es aux variables de l’ensembleE. En d’autres termes, par rapport `a ces signaux, l’ordre des valeurs observ´ees dans best identique `a celui des valeurs observ´ees dansb. Seules les synchronisations peuvent varier. Dire quepest endochrone revient simplement `a consid´erer quebetb′ sont alors ´equivalents modulo ´etirement. En effet, si l’on dispose de flots identiques de valeurs, les instants de consommation et production de valeurs ´etant a priori enti`erement d´etermin´es dans un pro-cessus endochrone, alors les comportements produits par le propro-cessus ont forc´ement les mˆemes synchronisations. Celles-ci sont induites par l’arbre d’horloges associ´e `ap. Au final,betb′ ´etant caract´eris´es par des flots de valeurs et des synchronisations identiques, ils sont ´equivalents mo-dulo ´etirement (d’o`u le membre droit de l’implication).

L’importance du d´eterminisme a d´ej`a ´et´e soulign´ee en ce qui concerne les syst`emes temps r´eel. Il facilite l’´etude des comportements d’un syst`eme puisque ceux-ci sont pr´evisibles. Dans

2. Une hi´erarchie form´ee de plusieurs arbres d’horloges caract´erise un processus qualifi´e d’exochrone (cf. chapitre 3 - section 3.1.2) : les r´eactions du processus d´ependent de l’environnement, qui d´ecide quels arbres d’horloges sont activ´es au sein de chaque r´eaction.

le mod`ele polychrone, le d´eterminisme d’un processus est caract´eris´e par le fait que ses com-portements d´ependent enti`erement, et `a tout instant d’ex´ecution, du statut et des valeurs des entr´ees du processus.

D´efinition 21 (d´eterminisme) Un processus p est d´eterministe sur un sous-ensemble quel-conque E ⊆vars(p) ssi, pour tous b1, b2∈(p)≶, pour tout t∈tags(b1)∩tags(b2) :

(b1|E)|t= (b2|E)|t⇒(b1)|≤t= (b2)|≤t

Le processuspest dit d´eterministe s’il est d´eterministe sur l’ensemble de ses signaux d’entr´ee.

Il en r´esulte la propri´et´e suivante [147] :

Propri´et´e 1 Tout processus endochrone est aussi d´eterministe.

L’endochronie est un crit`ere ad´equat pour ´etudier l’´equivalence entre les observations in-ternes (synchrones) et exin-ternes (asynchrones) d’un syst`eme.

Endo-isochronie. L’endo-isochronie d´efinit les conditions suivant lesquelles la composition synchrone est ´equivalente `a la composition asynchrone (c’est-`a-dire impliquant des commu-nications de type “send / receive”). Ainsi, les communications asynchrones entre processus endo-isochrones peuvent ˆetre enti`erement remplac´ees par des mod`eles synchrones de protocoles de communication. P P’ E P E P’ E

processus endo−isochrones desynchronisation des deux processus suivant une architecture de type GALS

Figure 5.3 – Processus endo-isochrones et d´esynchronisation sur une architecture de type GALS.

Les processusP etP compos´es sur laFig. 5.3 (`a gauche) sont tous les deux endochrones. La restriction de leurs comportements `a l’ensemble des variables communesE est aussi endochrone (on dit aussi qu’ils communiquent de fa¸con endo-isochrone). Ces processus peuvent ˆetre d´eploy´es sur une architecture GALS tout en pr´eservant les comportements d´efinis par leur composition synchrone. Pour cela, chacun d’entre eux est muni d’une interface endo-isochrone (repr´esent´ee par une duplication deE sur laFig. 5.3). Ces interfaces ´echangent des informations dont elles ont besoin l’une de l’autre (typiquement, un signal d´efini dans l’un des processus et utilis´e dans l’autre). Les instants auxquels ces informations doivent ˆetre acquises sont facilement d´eduits du fait que E est endochrone. Avant de d´efinir l’endo-isochronie, on pr´ecise d’abord ce qu’on entend par composition asynchrone.

D´efinition 22 (composition asynchrone) Etant donn´e un comportement´ b appartenant `a un processus p tel que X = vars(p), et un comportement b d’un autre processus p tel que

X′ = vars(p′), la composition parall`ele p k p′ admet les comportements b′′ relˆach´es sur les signaux communs `a bet b′ (i.e. E =X∩X′)

pkp={b′′ | ∃(b, b)∈p×p, b|X\X ≶b′′|X\X′∧b|E ⊑b′′|E∧b′′|X′\X ≶b|X′\X ∧b|E ⊑b′′|E}

D’autre part, on d´efinit l’invariance de flots qui permet d’assurer que le raffinement d’une sp´ecification synchrone p | p en une mise en œuvre asynchrone p k p, pr´eserve les flots de valeurs des signaux pour tout comportement.

D´efinition 23 (invariance de flots) La composition de deux processuspetpest flot-invariante ssi, pour tout comportement b p | p, pour tout comportement b p k p, (b|E) = (b|E)

implique b≈b avec E repr´esentant les signaux d’entr´ee de p |p.

Nous d´efinissons `a pr´esent l’endo-isochroniequi repr´esente l’autre notion fondamentale avec l’endochronie, n´ecessaire pour concevoir des applications distribu´ees suivant une approche com-positionnelle, `a partir de sp´ecifications polychrones des diff´erents composants.

D´efinition 24 (endo-isochronie) Deux processus endochrones p et p sont endo-isochrones3 ssi (p|E) | (p′

|E) est endochrone (avecE =vars(p)∩vars(p′)).

L’endo-isochronie est une version plus restrictive de l’isochronie [29]. En effet, elle impose `

a toute paire de processus que la restriction `a leur “partie communication” soit endochrone. C’est un crit`ere suffisant mais pas n´ecessaire pour que la paire soit isochrone. La d´efinition de l’endo-isochronie s’inscrit donc dans une d´emarche plutˆot constructive.

La composition de deux processus endo-isochrones est flot-invariante [147].

∗ ∗

De fa¸con globale, la conception d’un syst`eme suivant une architecture globalement asyn-chrone localement synasyn-chrone, utilisant le mod`ele polyasyn-chrone, consiste `a mod´eliser le syst`eme en un ensemble de composants endochrones, qui communiquent de fa¸con endo-isochrone. L’en-dochronie et l’endo-isochronie sont deux crit`eres v´erifiables statiquement. La section suivante pr´esente la mise en œuvre de l’approche dansPolychrony.