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 VII – Vérification formelle de <strong>la</strong> structure <strong>des</strong> applications<br />

21 thread thread_b<br />

22 features<br />

23 rpc : requires subprogram access sspg_b;<br />

24 e1 : in event data port donnee;<br />

25 s1 : out event data port donnee;<br />

26 s2 : out event data port donnee;<br />

27 end thread_b;<br />

28<br />

29 thread implementation thread_b.impl<br />

30 calls<br />

31 seq1 : {appel1 : subprogram sspg_a;<br />

32 appel2 : subprogram sspg_b;};<br />

33 seq2 : {appel3 : subprogram access rpc;};<br />

34 connections<br />

35 cnx1 : parameter e1 -> appel1.e1;<br />

36 cnx2 : parameter e1 -> appel3.e1;<br />

37 cnx3 : parameter e1 -> appel3.e2;<br />

38 cnx4 : parameter appel1.s1 -> appel2.e1;<br />

39 cnx5 : parameter appel3.s1 -> appel2.e2;<br />

40 cnx6 : parameter appel3.s1 -> s1;<br />

41 cnx7 : parameter appel2.s1 -> s2;<br />

42 end thread_b.impl;<br />

43<br />

44 process processus<br />

45 features<br />

46 e : in event data port donnee;<br />

47 s : out event data port donnee;<br />

48 end processus;<br />

49<br />

50 process implementation processus.impl<br />

51 subcomponents<br />

52 thread1 : thread thread_a;<br />

53 thread2 : thread thread_b.impl;<br />

54 connections<br />

55 subprogram access thread1.rpc -> thread2.rpc;<br />

56 event data port e -> thread2.e1;<br />

57 event data port thread2.s1 -> s;<br />

58 end processus.impl;<br />

Listing VII.3 – Appels de sous-programmes, traduits en réseau de Petri sur <strong>la</strong> figure VII.7<br />

Le second thread, thread2 comporte deux séquences d’appel. La première est constituée de<br />

deux appels de sous-programmes ; <strong>la</strong> seconde est en fait un appel distant au sous-programme<br />

fourni par le premier thread, thread1. La circu<strong>la</strong>tion <strong>des</strong> données, indiquée par les connexions, est<br />

<strong>la</strong> suivante :<br />

– appel1 effectue un calcul à partir de e1 et transmet le résultat à appel2 ;<br />

– appel3 (exécuté sur le premier thread) effectue un calcul à partir de e1 et transmet le résultat<br />

à appel2 ainsi qu’à <strong>la</strong> sortie s2 du second thread ;<br />

– appel2 utilise les données fournies par appel1 et appel3 et renvoie le résultat vers <strong>la</strong> sortie<br />

s1 du thread.<br />

Les identificateurs de p<strong>la</strong>ce et de transition sont construits par concaténation <strong>des</strong> identificateurs<br />

<strong>des</strong> différentes conteneurs <strong>des</strong> entités AADL. Ainsi thread2_appel1_s1 est issu de <strong>la</strong> feature s1 de<br />

l’appel appel1 du thread thread2 ; <strong>pour</strong> <strong>des</strong> raisons de lisibilité nous avons omis l’identificateur<br />

c○ 2007 Thomas Vergnaud 139

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

Saved successfully!

Ooh no, something went wrong!