PTR

Programmation temps réel

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.