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 :
- Un capteur FREIN permet de savoir si l'utilisateur appuie sur le frein
ou non. Ce capteur doit être testé régulièrement à la période de 100ms. L'appui
sur le frein arrête temporairement la régulation. La fin du freinage entraîne la
reprise de la régulation.
- Un commutateur de commande permet d'envoyer des commandes au sous système.
L'enchaînement de ce commutateur produit une interruption. La nature de la commande
doit alors être recherchée. Elle peut être l'unde des suivantes :
- REGULIER pour mettre en route la réulation à la vitesse courante,
- ACCELERER pour augmenter la vitesse.
- Un organe de contrôle du positionnement de l'accélérateur. Ce positionnement
doit être mis à jour toutes les 100ms.
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 :
- En phase "régulation", la valeur est déterminée pour maintenir la vitesse constante.
- En phase "accélération", la valeur est déterminée pour augmenter la vitesse courante.
- En phase "reprise", la valeur est déterminée pour augmenter la vitesse courante.
Losque la vitesse courante atteint la vitesse désirée, elle délivre un message de
vitesse atteinte à la tâche de "Contrôle de régulation" pour que celle-ci commande
le changement de phase.
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)