• Aucun résultat trouvé

Problemes de ot de donnees inter-processus



EMESDE FLOT DE DONN 

EES INTER-PROCESSUS 109

Lemme 5.9

int est un pfd continue. Preuve

L'espace des fonctions est F = ff:v=x]f j v 2 int^x 2 X ^f 2 Lg. Soient (fn)n2N

L. Il faut montrer que v=x]tn2Nfn =tn2Nv=x]fn. v=x]tn2Nfn(y) =  tn2Nfn(y)  y 6=x v  y =x . Mais tn2Nv=x]fn(y) =tn2N  fn(y)  y 6=x v  y =x =  tn2Nfn(y)  y 6=x v  y =x . Donc v=x]tn2Nfn=tn2Nv=x]fn.

Lemme 5.10

Soient SPc = (Qb $bf a ;!ja2 b

$gq^0) et Y la solution du probleme int. Soit  : int!2Z la fonction de nie t.q.(>) =

Z

, (?) = et((ab)) = faa+ 1:::bg. Le resultat suivant est vrai: (8 (q  ))(8x)((q  )2

b

Q^x 2X ) (x)2(Y(q)(x))). Preuve

Preuve similaire a la lemme 5:7 p:107].

5.2 Problemes de ot de donnees inter-processus

L'objet d'un probleme de ot de donnees inter-processus est l'analyse des ot de donnees pour une composition asynchrone d'automates etendus communicants17.

On les decrit d'abord de maniere generale (comme une classe abstraite de problemes) et ensuite on obtient des instances en particularisant certains elements de leur de ni-tion (ex. en prenant L comme 2X ouX !const).

On a deux types de problemes de ot de donnees inter-processus:

1. Le probleme global peut ^etre decompose en sous-problemes plus petits, un pour chaque automate etendu communicant (et cela parce que le ot de donnees global peut ^etre decompose en ot locaux correspondant a chaque aec). Dans ce cas la solution est obtenue en resolvant chaque sous-probleme (dans n'importe quel ordre).

Plus formellement, si le probleme globale pfd peut ^etre decrit comme une fa-mille de problemes (pfdi)i2I (ou chaque probleme pfdi est de ni comme dans la de nition 5:1 p:97]) alors resoudre pfdrevient a resoudre chaque pfdi.

L'analyse d'activite des variables appartient a cette categorie.

2. Le probleme associe a la composition asynchrone ne peut pas ^etre decompose en sous-problemes et cela est d^u au fait qu'il existe de dependances (ou interferences) entre les ot de donnees locaux. Comme on a prevu que les ensembles de variables pour chaque aec sont disjoints deux a deux il resulte que les seules dependances sont dues au transfert de donnees entre les aecs.

La propagation des contraintes (constantes ou intervalles) ou l'analyse d'utilite des donnees appartiennent a cette categorie.

Pour resoudre ce type de problemes on a plusieurs choix:

(a) On compose de maniere asynchrone les automates (une solution co^uteuse a cause du nombre exponentiel d'etats du produit asynchrone).

Plus formellement: soit pfdi = (SiLFTi]Xi

0E

i), i2 I les problemes de ot de donnees associes a chaqueaec.

Soit Sr le produit asynchrone jjji2ISi (auquel, dans le cas de la propagation des constantes/intervalles on ajoutejCint

Sj nouvelles variables18).

Soit pfd un probleme de ot de donnees de ni comme dans la de nition 5:1 p:97]: (SrLrFrTr]Xr 0E r) t.q. Lr = L0  Q i2IL19 et Fr  Lr !

Lr (avec les restrictions imposees dans la de nition 5:1 p:97] sur l'espace de fonctions), Tr : $r ! Fr (qui prennent en compte aussi les nouvelles va-riables: a l'etiquette b] c?s(y) ou b] c!s(e), c 2 Cint correspond la m^eme fonction de transfert que pour l'etiquette b] y := vcs, respectivement l'eti-quette b] vcs := e, ou vcs est la nouvelle variable correspondant a la le interne cet au signal s),Xr

0 :Qr !Lr et E

r : (Qr !Lr)!(Qr !Lr). On resout pfden utilisant les techniques indiquees dans la section 5:1 p:97]. (b) On construit l'union des aecs de la speci cation. On obtient un probleme

dont la solution, pour les analyses qu'on considerent, concide (et dans le m^eme temps est moins co^uteuse) avec la solution precedente.

18:On abstrait les contextes de lesC int

!(SD) parC int

S!V, ou Vest le treillisconstou

int

19:ouL

5.2. PROBL 

EMESDE FLOT DE DONN 

EES INTER-PROCESSUS 111

Toutefois, avec ce type de probleme on ne peut pas obtenir des invariants de la forme: dans l'etat de contr^ole global (q1:::qn) la valeurv du parametre de signal s dans la le interne c est constante (ou v 2 ab], ab 2

Z

). Les invariants qu'on peut obtenir sont de type: la valeurv du parametre de signal

s dans la le interne cest constante (ou appartient a un intervalle entier). Le fait que les solutions concident s'explique, de maniere informelle, par le fait qu'on utilise un operateur de conuence qui collecte l'information (au lieu de la raner) et donc dans l'aec obtenu par le produit asynchrone d'aecs initiaux, on peut simpli er les losanges obtenus par l'entrelacement. Notam-ment, on considere seulement les n chemins purs (ceux qui sont aussi des chemins d'aecs composants) obtenus par la projection de n'importe quel chemin du losange.

Dans le cas de l'analyse de l'utilite on observe d'abord que, si dans un chemin quelconqueq1

v:=:::

;!q2

;!:::q3

x:=v

;!q4, t.q. xv sont des variables et entreq2

etq3, dans le chemin, il n'y a pas d'autre de nition de v, on remplace par

l'etiquette de n'importe quelle transition (sauf la premiere et la derniere) et si la variablexest utile dans l'etatq4 alorsv est utile dans q2 (m^eme apres le remplacement). On peut etendre ce raisonnement dans le cas d'un losange

dans l'aec produit asynchrone20: #q1

v:=:::

;!i q#2 q#3

x:=v

;!i q#4 (on considere aussi que dans le losange il existe un chemin entre #q2 et #q3 t.q. par sa projection on obtient le chemin mentionne ci-dessus: q1

v:=:::

;!i q2

;!i :::q3

x:=v

;!i q4). L'information concernant la variable v, dans l'etat #q2, collectee sur tout che-min du losange qui est obtenu a partir de est incluse (m^eme egale21) dans celle collectee sur.

Il nous reste le cas de chemin q#1

c!s(v) ;!i q#2

;!:::q#3

c?s(x)

;!j q#4, ouxv sont des variables, c 2 Cint, i 6= j et entre #q2 et #q3 dans  il n'y a pas de transition etiquetee avec c!s(:::). Si x est utile dans #q4 alors vcs est utile dans #q3 et ensuite dans #q2 et donc v est utile dans #q1. Mais dans l'aec union on a introduit la transition q1

(0x:=v)

;! q4 specialement pour ce cas. Donc on peut conclure quev est utile dans un etat de contr^ole global #qssi elle est utile dans l'etatq (ou vq appartiennent au m^eme aec).

Le raisonnement precedent peut ^etre applique dans le cas de la

propaga-20:par !qon note un etat de contr^ole global dont la projection sur unaecinitial est l' etat de contr^ole

q

21:On tient compte aussi du fait que lesaecs initiaux ne partagent pas leurs variables et donc on ne peut pas remplacer une transition de par une transition:::

v:=::: ;! j

tion des constantes/intervalles. Le cas de la propagation de l'information par l'intermediaire du losangeest simple: la propagation de l'information com-posee equivaut a une((composition))de la propagation par l'intermediaire de chemins purs. Dans le cas du chemin  on peut utiliser le raccourci de la transition q1

(0x:=v)

;! q4 et donc on arrive a la m^eme conclusion: la projection de l'information calculee sur une variablev dans un etat #q est identique avec celle de l'etatq (qv appartiennent au m^eme aec).

Dans la suite on considere seulement cette formulation d'un probleme de ot de donnees inter-processus (notre approche est similaire a celle de Dwy95] pour les analyses de ^ot de donnees des programmesada).

Denition 5.2 (Probleme de ot de donnees inter-processus)

Soient (Si)i21::n des stes avec lespfd intra-processus associes: (SiLiFiTi]Xi

0Ei)i21::n.

Un probleme de ot de donnees inter-processusassocie a la composition asynchrone des stes est le probleme de ot de donnees intra-processus (SLFT]X0E), ou:

1. S est le -ste obtenu par l'union de (Si)i21::n: (Q$f

a

;!ja2$gq0) = Sn

i=1

Si. 2. L'espace des proprietesL est le treillis produit cartesien de treillis: Qn

i=1

Li.

3. L'espace des fonctions estF  L! L t.q. les conditions pour F de la de nition 5:1 p:97] sont accomplies.

4. Les fonctions de transfert T : $!F accomplissent les conditions: (a) T( ) = 1L,

(b) T( i)(`1:::`i:::`n) = (`1:::Ti( )(`i):::`n),i21 .. n,

(c) T( i k j0)(`1:::`i:::`j:::`n) = (`1:::fji( )(`i):::`j:::`n), ou

fji : $ !(Lj !Li) et + ( i k j0). 5. L'operateur de combinaison est]2futg. 6. 2f!"g est la direction de ot.

7. X0 :Q!Lest uneapproximation initialede la solution qui satisfait les conditions de l'observation 2:2 p:33]: X0(q0) = (Xi

0(qi

0))i21::n et X0(q) = (:::Xi

5.2. PROBL 

EMESDE FLOT DE DONN 

EES INTER-PROCESSUS 113

q 2 Qi. Ci-dessus signi e n'importe quelle valeur de Li ( d'ailleurs cette valeur ne sera pas changee dans le point xe de l'operateur de ot car dans un processus seulement ses variables peuvent ^etre ecrites et, comme on verra ulterieurement que les treillis sont lies aux variables, il resulte qu'un processus peut modi er seulement les elements du son treillis).

8. L'operateur de ot estE : (Q!L)!(Q!L) ou, pour q 2Q:

E(X)(q) = X0(q)] U a2 U q0 2 8 < : Posta(q) si  = Prea(q) si  = ! T(a)(X(q0)) .

On s'interesse a lasolutiondupfdqui estlfp(E) ougfp(E) (en fonction de l'operateur de combinaisont respectivement u).

Dans la suite on considereSP la speci cation (SC(Ai)i21::n), ou lesaecs sontAi = (XiSi), i 2 1 .. n avec les stes sous-jacents Si = (Qi$(Xi)f

a

;!ija 2$(Xi)gqi

0),

i21 .. n.

Soit SP0 l'union des aecs Sn

i=1 Ai: SP0 = (XS0), ou X = Sn i=1 Xi et S0 = Sn i=1 Si + (Q$f a

;!ja2$gq0) est leste sous-jacent de SP0

.

5.2.1 Activite des variables

Soientlivei = (Si2XiFiTi"#Livei) lespfds associes auxaecsAii21 .. n. Comme dans notre modele les processus n'ont pas de memoire partagee une analyse globale (inter-processus) d'activite des variables revient a une analyse locale (intra-processus) pour chaque processus.

Ceci revient a trouver les solutions des problemes (livei)i21::n (qui sont lfp(Livei)).

5.2.2 Utilite des donnees

Soient rlvi = (Si2XiFiTi"Rlvi0Rlvi) les pfds associes aux aecs Aii 2

1 .. n.

L'analyse de l'utilite des donnees inter-processus est l'instance ip-rlv du probleme de ot de donnees inter-processus, dont les elements sont montres a la table 5:2 p:114].

pfd Utilite Constantes Intervalles

S S

0, leste sous-jacent de la specication SP 0 2X Qn i=1 (Xi !V) oua X !V L X + n S i=1 Xi V est le treillis const int F =ff:v=x]f jv2V^x2X^f 2Lg F fZ:A(ZnB)jAB Xg V est le treillis

const int

voir les sections

T 5:2:2 p:113] 5:2:3 p:115] 5:2:4 p:117] ]  tL  ! X 0 Rlv 0 Const 0(q 0) = >L Int 0(q 0) = >L Const 0(q 0) = ?L,q 0 6 =q 0 Int 0(q 0) = ?L,q 0 6 =q 0 E Rlv Const Int

Tab.5.2 { Problemes de ot de donnees inter-processus

5.2. PROBL 

EMESDE FLOT DE DONN 

EES INTER-PROCESSUS 115

T( i) = Z:(Use( iZ) (Z nDef( iZ))), ou Def : $ 2X

! 2X et Use : $2X !2X sont Def( iZ) =  fyg  ( = b] y:=e_ = b]c?s(y))^i6= 0 Z  sinon Use( Z) =  vars(b)vars(e)  = b] y:=e^y2Z vars(b)  sinon

et la fonction vars : AEX BEX ! 2X rend les variables de X qui apparaissent dans une expression arithmetique ou logique.

Observation 5.4

Cette observation complete l'observation 5:3 p:106] dans le cas inter-processus. Dans le cas d'une action b]c!s(e) on fait distinction entre les deux cas: c2Cint ou c2Cext. Dans le premier cas Use(b] c!s(e)) = vars(b) parce que l'ensemble vars(e) sera pris en compte dans la(les) transition(s) inter-processus etiquetees par des etiquettes

x:=e.

Dans le deuxieme cas on est toujours dans le cas de l'observation 5:3 p:106].

Lemme 5.11

(8qp)(qp 2Qp )Rlv(qp)Xp).

Observation 5.5

Soit Rlv la solution du problemeip-rlv. Dans la suite on utilise au lieu de Rlv une autre fonction Rlv0 qui calcule en plus l'utilite des signaux22.

Soit L0 le treillis complet: 2X(CS) ou X = Sn

i=1

Xi. On montre le calcul de cette fonction a la table 5:3 p:116]. On utilise les notations ci-dessus (pour la speci cation, treillis, etc.).

5.2.3 Propagation des constantes

Soientconsti = (SiXi !constFiTitXi!CONST!Consti

0Consti) lespfds as-socies aux aecs Aii21 .. n (ainsi qu'ils sont de nis dans la section 5:1:4 p:106]).

La propagation des constantes inter-processus est l'instance ip-const du probleme de ot de donnees inter-processus, dont les elements sont montres a la table 5:2 p:114].

Les fonctions de transfert T : $!F sont de nies t.q.:

1. T(b]y :=ei)(`1:::`i:::`n) = (`1:::Ti(b] y:=e)(`i):::`n),i21 .. n,

procedure CalculRlv (Rlv :Q!LvarRlv :Q!L) begin foreach (q 2Q) Rlv 0(q) :=Rlv(q) foreach (q ( b]c?s(x)) ;! q 0 ^x2Rlv(q 0)) Rlv 0(q 0) :=Rlv 0(q 0)f(cs)g foreach (q (x:=e0) ;! q 0) Rlv 0(q) :=Rlv 0(q)(Rlv 0(q 0)\(C int S)) foreach (q ( b]c!s(e)) ;! q 0) if (c2C ext ^vars(e) Rlv 0(q)) Rlv 0(q) :=Rlv 0(q)f(cs)g end.

Tab. 5.3 { Utilite des donnees et signaux

2. T(b]c?s(y)i) =  f:Env(cs)=y]f  c2Cext f:?=y]f  c2Cint , 3. T(b]c!s(e)i) = 1L, 4. Sihx:=ei=hb1]c?s(x)ikhb2]c!s(e)i, avechb1]c?s(x)i2$(Xi) ethb2]c!s(e)i2 $(Xj) alorsT(x:=e0) = f:Evalf(e)=x]#?L.

ou les fonctions Env et Evalf sont celles de la section 5:1:4 p:106].

Si Y :Q ! L est la solution du probleme precedent (dans ce cas lfp(Const)) alors on prend au lieu de Y les fonctions (Yi)i21::n comme solution: Yi :Qi !(Xi !const),

Yi(qi)(xi) =Y(qi)(xi).

On a aussi un resultat similaire a la lemme 5:7 p:107]:

Lemme 5.12 (Correction de la propagation des constantes)

Soient SPc = (Qb $bf

a

;! ja2 b

$gq^0) et Y = lfp(Const) la solution du probleme const. Soit :const!2Z la fonction de nie t.q.(>) =

Z

,(?) = et(x) =fxg, pourx2constnf?>g. Le resultat suivant est vrai: (8(  ))(8x)((  )2

b Q^x2 n S i=1 Xi ) (x)2(Y(q)(x))). Preuve