Examen de Temps réel du 15 mars 2001


Tous documents autorisés. Durée 2h.


Exercice 1 - Ordonnacement temps réel(5 points)

On considère les trois tâches périodiques suivantes à échéance sur requête :
Tp1(r0=0, C=5, P=10)
Tp2(r0=0, C=7, P=25)
Tp3(r0=0, C=2, P=50)
où r0 est la date de premier réveil de la tâche, C son temps d'exécution maximal et P sa période.

A - On effectue un ordonnancement selon Rate Monotonic de ces trois tâches périodiques.
La condition d'acceptabilité est-elle vérifiée ?
Donner le chronogamme d'exécution résultant sur la période d'étude de la configuration. (2 points)

B - On considère les quatre tâches apériodiques suivantes :
Tap1(r0=0, C=3)
Tap2(r0=2, C=5)
Tap3(r0=5, C=1)
Tap4(r0=26, C=8)
On utilise un traitement d'arrière plan pour ordonacer ces tâches apériodiques au sein de la configuratiob de tâches périodiques précédente où la tâche Tp1 fonctionne comme un serveur de scrutation. Tracer le chronogramme d'exécution résultant et donner le temps de réponse de chacune des tâches apériodiques. (1,5 points)

C - La tâche Tp1 n'est plus serveur de scrutation et les tâches apériodiques sont maintenant des tâches aprériodiques à contraintes strictes définies avec les paramètres suivants :
Tap1(r0=0, C=3, R=6)
Tap2(r0=2, C=5, R=38)
Tap3(r0=5, C=1, R=33)
Tap4(r0=26, C=8, R=50)
Les tâches apériodiques peuvent-elles s'ordonnacer dans les temps creux de la configuration périodique ? Donner le chronogramme d'exécution résultant pour les tâches apériodiques. (1,5 points)

Exercice 2 - Méthodes de construction des applications temps réel (5 points)

On considère l'application ascenseur telle que vous l'avez étudiée en exercices dirigés.

A - Donnez et expliquez le diagramme SART auquel vous avez abouti en ce qui concerne le sous système ascenseur. Vous ferez clairement apparaître les niveaux de décomposition des process vers les process élémentaires. (2 points)

B- On ajoute dans chaque cage d'ascenseur un dispositif d'alarme qui peut être déclenché par les utilisateurs de l'ascenseur pour signaler un problème survenu dans l'ascenseur (hormis l'arrêt entre étage de l'asenceur qui est détecté automatiquement). L'action qui en résulte est de stopper l'ascenseur au prochain palier et d'ouvrir les portes de l'ascenseur tandis qu'un opérateur humain est averti.
Comment intègrez vous cette nouvelle fonctionnalité dans le diagramme SART établi lors des exercices dirigés ? (3 points)

Exercice 3 - Programmation asynchrones (10 points)

On s'intéresse à un système simplifié de régulation de vitesse dans une voiture. Les relations avec l'environnement sont constituées des éléments suivants : La mesure de la vitesse courante du véhicule est à la charge d'un autre sous système. Pour cet exercice, la valeur de cette vitesse est donc disponible dans une variable partagée avec l'autre sous système.
La conception de l'application a conduit à l'architecture de tâches donnée sur le schéma ci-après.
La tâche de "Contrôle de vitesse" est une tâche périodique de période 250ms, qui détermine la nouvelle valeur de l'accélérateur demandée selon les paramètres. Cette valeur dépend de la phase de fonctionnement. Lorsque le frein est pressé, elle est en phase inactive et fournit une valeur nulle de l'accélérateur. Sinon, elle fonctionne selon trois phases actives possibles :
La tâche de "Commande accélérateur" est une tâche périodiquede période 100ms qui calcule la position de l'accélérateur en fonction de la dernière valeur fournie par la tâche de "Contrôle de vitesse".
Précisons les messages vers la tâche de "Contrôle de régulation". La tâche "Gestion capteur" envoie un message FREIN_ON ou FREIN_OFF lors des changements d'appui sur la pédale de frein.La tâche "Gestion commade" envoie les messages REGULER ou ACCELERER lors de la réception de ces commandes. La tâche "Contrôle de vitesse" envoie un message V_ATTEINTE lorsqu'elle est en phase de reprise de régulation et que la vitesse désirée est atteinte.
La tâche de "Contrôle de régulation" envoie un message à la tâche de "Contrôle de vitesse" pour lui signifier les changements de phase.

A - Définir les modules d'interfaces de périphériques. (1 point)

B - Comment peut-on définir les modules "Vitesse désirée" et "Vitesse courante". (1 point)

C - Définir le graphe de transitions d'états de la tâche de "Contrôle de régulation" et les messages vers la tâche "Contrôle de vitesse" qui résultent de ces transitions. Définir l'interface du module qui implante ce graphe. (2 points)

D - En prenant pour base d'implantation les tâches Ada, quel mécanisme de communication proposez-vous d'utiliser pour assurer la communication entre "Contrôle de régulation" et "Contrôle de vitesse" dune part, et celle entre "Contrôle de vitesse" et "Commande accélérateur" d'autre part. Vous justifierez votre choix. (1 point)

E - On s'intéresse à l'ensemble constitué par la tâche "Gestion commande" et la file de messages vers la tâche "Contrôle de régulation". Porposer une implantation possible avec un seul objet protégé (Vous pouvez utiliser le paquetage des files donné en exercice dirigé). Vous justifierez votre proposition. (2 points)

F - Décrire globalement le fonctionnement de la tâche "Contrôle de régulation". (1 points)

G - Décrire globalement le fonctionnement de la tâche "Contrôle de vitesse". (1 points)

H - Décrire globalement le fonctionnement de la tâche "Commande accélérateur" et de la tâche "Gestion capteur". (1 points)