Connaissances préalables recommandées :
L’étudiant doit connaître et savoir utiliser les notions suivantes :
- bases du langage C (structures, types, manipulation des pointeurs).
- fonctionnement général d’un processeur, en particulier les interruptions.
Les unités d'enseignement APR1-2 ou INF2 (informatique, langage C), et MUI (microinformatique) ou ASP
(architecture des systèmes à processeur) permettent d'acquérir ces connaissances.
Objectifs :
A l'issue de cette unité d'enseignement, l'étudiant-e sera capable de :
- décrire l'architecture d'un système d'exploitation temps-réel.
- décrire les interactions entre le matériel et le logiciel, notamment par le concept d'interruption et de tâche.
- déterminer les causes du temps de latence et de la gigue dans un système temps-réel.
- choisir une politique d'ordonnancement adéquate en tenant compte des contraintes temporelles.
- énoncer les critères d'ordonnançabilité liés à une politique d'ordonnancement.
- déterminer le temps de réponse d'une application temps-réel.
- examiner une API d'un noyau temps-réel afin de déterminer l'utilisation des différents services et fonctions disponibles.
- d'une manière générale, développer une application temps-réel d'une complexité moyenne en utilisant les différents services d'un noyau temps-réel.
- exploiter les différents mécanismes de communication et de synchronisation temps-réel en adéquation avec la complexité de l'application.
- déterminer les situations d'inversion de priorité et expliquer comment y remédier.
- identifier les situations d'inter-blocages et expliquer les mécanismes afin de les éviter.
A l'issue des travaux pratiques en laboratoire, principalement destinés à l’assimilation des connaissances et à
l’acquisition d’expérience dans le temps réel, l’étudiant-e sera en outre capable de :
- utiliser un outil de simulation d'ordonnancement temps-réel en comprenant les différents paramètres et résultats possibles.
- implémenter un traitement spécifique en réponse à une interruption matériel dans une application composée de tâches temps-réels.
- réaliser une application temps-réel (strict) d'une certaine complexité en utilisant les services offerts par un noyau temps-réel.