Ticket #84 (new Feature)
Increase flexibility to describe AADL data usage by threads
Reported by: | P. Dissaux (Ellidis) | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Unknown |
Component: | framework | Version: | |
Keywords: | Cc: |
Description (last modified by jlegrand) (diff)
Increase flexibility to describe AADL data usage by threads.
See the text bellow (in french).
- Dans la version précédente la property Critical_Section s'appliquait à un Data. Désormais, elle s'applique au Process. Tu aurais pu la garder sur la déclaration des subcomponent Data du Process:
process implementation P.I
subcomponents
T1 : thread T;
T2 : thread T;
D0 : data D { Cheddar_Properties::Critical_Section => ( "T1", "2", "2", "T2", "4", "5" ); };
end P.I;
Ou bien considérer que cela fait partie de la déclaration de chaque Thread subcomponent
process implementation P.I
subcomponents
T1 : thread T { Cheddar_Properties::Critical_Section => ( "D0", "2", "2" ); };
T2 : thread T { Cheddar_Properties::Critical_Section => ( "D0", "4", "5" ); };
D0 : data D;
end P.I;
Voire à considérer que dans ce cas, cela fait pleinement partie de
l'implémentation du thread:
process implementation P.I
subcomponents
T1 : thread T.I1;
T2 : thread T.I2;
D0 : data D;
end P.I;
thread implementation T.I1
properties
Cheddar_Properties::Critical_Section => ( "D0", "2", "2"); };
end T.I1;
thread implementation T.I2
properties
Cheddar_Properties::Critical_Section => ( "D0", "4", "5"); };
end T.I2;
Enfin, cela pourrait aussi judicieusement porter sur la data access:
process implementation P.I
subcomponents
T1 : thread T;
T2 : thread T;
D0 : data D;
connections
data access D0 -> T1.S {Cheddar_Properties::Critical_Section => ( "2", "2"); };
data access D0 -> T2.S {Cheddar_Properties::Critical_Section => ( "4", "5"); };
end P.I;
thread T
features
S : requires data access D
end T;
- A quoi correspondent exactement les intervalles de temps spécifiés (à partir de quelle origine et avec quel pas ?).
La dernière solution ci-dessus permettrait d'utiliser un Time_Range plus explicite
Critical_Section: Time_Range applies to ( access connections );
(ou un list of Time_Range si on souhaite accéder plusieurs fois à la même donnée)
Voilà pour aujourd'hui, (dis moi si j'ai rien compris)
Pierre