04.07.2013 Views

Modélisation des systèmes temps-réel répartis embarqués pour la ...

Modélisation des systèmes temps-réel répartis embarqués pour la ...

Modélisation des systèmes temps-réel répartis embarqués pour la ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapitre VI – Construction et configuration de l’interface avec l’intergiciel d’exécution<br />

11 Dispatch_Protocol => background;<br />

12 end Minimal_Thread;<br />

13<br />

14 thread implementation Minimal_Thread.Generic<br />

15 subcomponents<br />

16 activation_buffer : data Ipao::Activation::Buffer;<br />

17 add_request : subprogram Ipao::Activation::Add_Request;<br />

18 activate_request : subprogram Ipao::Activation::Activate_Request;<br />

19 calls<br />

20 {broker : subprogram Ipao::Mubroker::Mubroker.Generic;};<br />

21 connections<br />

22 subprogram access Protocol -> broker.Protocol;<br />

23 subprogram access Queue_Request -> boker.Queue_Request;<br />

24 subprogram access Bind_Request -> broker.Bind_Request;<br />

25 subprogram access Add_Request -> broker.Add_Request;<br />

26 subprogram access Activate_Request -> broker.Activate_Request;<br />

27 subprogram access State_Machine -> broker.State_Machine;<br />

28 data access activation_buffer -> add_request.Buffer;<br />

29 data access activation_buffer -> activate_request.Buffer;<br />

30 end Minimal_Thread.Generic;<br />

31<br />

32 process implementation Application_Node.Generic<br />

33 subcomponents<br />

34 thread1 : thread Minimal_Thread.Generic;<br />

35 thread2 : thread Minimal_Thread.Generic;<br />

36 middleware_state : data Ipao::Mubroker::Mubroker_State;<br />

37 binding_buffer : data Ipao::Bind::Buffer;<br />

38 protocol1 : subprogram Ipao::Protocol::Protocol;<br />

39 queue_request : subprogram Ipao::Bind::Queue_Request;<br />

40 bind_request : subprogram Ipao::Bind::Bind_Request;<br />

41 connections<br />

42 subprogram access protocol1 -> thread1.Protocol;<br />

43 subprogram access protocol1 -> thread2.Protocol;<br />

44 subprogram access queue_request -> thread1.Queue_Request;<br />

45 subprogram access queue_request -> thread2.Queue_Request;<br />

46 subprogram access bind_request -> thread1.Bind_Request;<br />

47 subprogram access bind_request -> thread2.Bind_Request;<br />

48 data access middleware_state -> thread1.State_Machine;<br />

49 data access middleware_state -> thread2.State_Machine;<br />

50 data access binding_buffer -> queue_request.buffer;<br />

51 data access binding_buffer -> bind_request.buffer;<br />

52 end Application_Node.Generic;<br />

Listing VI.10 – Assemb<strong>la</strong>ge <strong>des</strong> composants de l’intergiciel<br />

Nous considérons un système composé de deux threads, instanciés aux lignes 34 et 35. Les<br />

composants Minimal_Thread.Generic représentent les threads de l’exécutif de bas niveau correspondants.<br />

Ils s’exécutent en tâche de fond et appellent le µBroker, dont <strong>la</strong> <strong>des</strong>cription comportementale<br />

doit former une boucle d’exécution. Les threads minimaux instancient les sousprogrammes<br />

et les données du service d’activation, qui leur sont propre (lignes 16 à 18). En revanche,<br />

les services de protocole, de liaison, ainsi que l’état du µBroker sont partagés entre les<br />

différents threads ; il doivent être instanciés dans le processus (lignes 36 à 40) puis connectés aux<br />

threads (lignes 42 à 51).<br />

c○ 2007 Thomas Vergnaud 117

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!