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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Modélisation</strong> <strong>des</strong> <strong>systèmes</strong> <strong>temps</strong>-<strong>réel</strong> <strong>répartis</strong> <strong>embarqués</strong><br />

VI-1.1 Sémantique <strong>des</strong> threads AADL<br />

L’intergiciel d’exécution est symbolisé par les threads AADL, et doit donc fournir les fonctionnalités<br />

correspondant à <strong>la</strong> sémantique de ces composants. Ces fonctionnalités correspondent à<br />

deux gran<strong>des</strong> catégories de services :<br />

– <strong>la</strong> gestion <strong>des</strong> fils d’exécution ;<br />

– <strong>la</strong> gestion <strong>des</strong> communications.<br />

La gestion de l’exécution <strong>des</strong> composants peut se reposer sur une bibliothèque de threads<br />

<strong>systèmes</strong> fournie par l’exécutif. Nous considérons que chaque thread AADL représente une entité<br />

autonome gérée par l’exécutif. Cette correspondance permet de transposer les constructions<br />

AADL en terme de ressources système effectivement nécessaires.<br />

VI-1.1.1 Contrôle de l’application<br />

Le standard AADL définit quatre politiques de déclenchement <strong>pour</strong> les threads, spécifiées par<br />

<strong>la</strong> propriété AADL standard Dispatch_Protocol :<br />

– périodique ;<br />

– apériodique ;<br />

– sporadique ;<br />

– tâche de fond.<br />

Un thread périodique est déclenché régulièrement, selon <strong>la</strong> période indiquée par <strong>la</strong> propriété<br />

standard Period. Un thread apériodique est déclenché par les données arrivant sur un port de<br />

donnée/événement déclencheur ou l’appel de l’un <strong>des</strong> sous-programmes dont il fournit l’accès.<br />

Un thread sporadique se comporte comme un thread apériodique, mais ne peut se déclencher<br />

avant le dé<strong>la</strong>i spécifié par <strong>la</strong> propriété Period. Enfin, un thread en tâche de fond n’est déclenché<br />

qu’au <strong>la</strong>ncement du système.<br />

VI-1.1.2 Prise en charge <strong>des</strong> communications<br />

Les communications sont typiquement assurées par un intergiciel de communication configurable.<br />

En section IV-5, page 65, nous avons défini <strong>des</strong> patrons architecturaux <strong>pour</strong> représenter<br />

différents modèles de répartition, représentés par les interfaces <strong>des</strong> threads AADL : le passage de<br />

message, l’appel de sous-programme distant et de métho<strong>des</strong> d’objets <strong>répartis</strong>.<br />

La bibliothèque de communication fournie par l’exécutif doit être capable de prendre en charge<br />

ces trois paradigmes. Pour ce<strong>la</strong>, nous interprétons les éléments d’interface comme <strong>des</strong> requêtes.<br />

Spécification VI.1 (Sémantique <strong>des</strong> éléments d’interface)<br />

Chaque élément d’interface d’un thread AADL est traduit par une requête au niveau de<br />

l’intergiciel. Les données associées à l’élément d’interface constituent les paramètres de<br />

<strong>la</strong> requête.<br />

La structure <strong>des</strong> requêtes est <strong>la</strong> suivante :<br />

– les ports sont traduits par une requête à sens unique (correspondant à un message, ou une<br />

interface oneway CORBA) dont l’unique paramètre correspond à <strong>la</strong> donnée associée au<br />

port ;<br />

– les sous-programmes fournis en interface correspondent à une requête/réponse dont les paramètres<br />

correspondent aux paramètres du sous-programme (noms et types).<br />

100 c○ 2007 Thomas Vergnaud

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

Saved successfully!

Ooh no, something went wrong!