Généralités sur le temps réel et les systèmes d'exploitation
- Temps réel.
- Notion de déterminisme, de "schedulability".
- lOS temps partagés et temps réel.
- Normes de l'IEEE et de l'ARINC.
- DO178b.
- Extensions temps réel POSIX 1003.1b.
- Sémaphores, Process Memory Locking, Memory Mapped Files and Shared Memory Objects.
- Priority Scheduling, Realtime Signal Extension, Timers.
- Interprocess Communication, Synchronized Input and Output, Asynchronous Input and Output.
Mise en oeuvre de POSIX 1003.1b (sous Linux)
- Implémentation des sémaphores POSIX.
- Gestion de l'inversion de priorité sous POSIX.
- Cas spécifique des futex sous Linux.
- Le scheduling temps réel sous Linux.
- Les politiques de scheduling, les priorités, étude de cas.
- Gestion de l'affinité aux processeurs.
- Gestion de l'inversion de priorité.
- Mémoire partagée de type POSIX.
- Analyse de la gestion mémoire.
- Rappels sur le point de vue déterministe des IPC POSIX, mémoire partagée, messages et sémaphores, sous Linux.
- Comparaisons avec les IPC SV.
- Les signaux POSIX. Signaux traditionnels et signaux temps réel. Implémentation des signaux.
- Gestion de la date et des timers POSIX.
- Extensions haute résolution de la gestion du temps.
- Entrées sorties asynchrones. Analyse des implémentations POSIX et Native. Librairie libaio.
Travaux pratiques
Mise en oeuvre du "memory lock" du "mapping" de fichiers et de la mémoire partagée de type POSIX. Implémentation des signaux temps réel. Mise en oeuvre de la librairie libaio.
Mise en oeuvre avec un RTOS
- Présentation de Xenomai et de ses API POSIX.
- Extensions temps réel non portables de xenomai.
- Présentation de RTEMS.
- Interface POSIX 1003.1b de RTEMS.
Travaux pratiques
Mise en oeuvre avec une application de mesure de latence sous Xenomai, RTEMS.
Les limitations de la norme
- Apport des standards ARINC 654, 653 et l'interface APEX pour la mise en oeuvre d'applications temps réel dans des milieux à risque, avionique, construction automobile ...
- Guide DO178b pour l'avionique.
- Les schedulers adaptés au temps réel. Sporadic Scheduler, Adaptative Partition Scheduler, Earliest Deadline First scheduler, Constant Bandwidth Scheduler.
Travaux pratiques
Exemples d'implémentations avec AIR (ARINC Interface sur RTEMS) et l'hyperviseur temps réel Xtratum.
Mise en oeuvre de différents schedulers sous RTEMS et Linux.