Course objectives
En fonction des contraintes temporelles qui lui sont imposées, le développeur dispose de plusieurs possibilités pour construire une application sur Linux. Depuis les processus ordonnancés en temps-réel souple par le noyau standard jusqu’aux extensions s’appuyant sur des micro-noyaux hard-realtime (comme Xenomai), ce cours vous propose un cheminement logique et illustré dans le panorama des solutions temps-réel disponibles avec Linux. Tous les concepts théoriques présentés dans le cours font l’objet de mise en pratique par des exemples précis et des séances d’exercices complètes.
Prerequisites
Cette formation Linux Xenomai s’adresse aux personnes ayant des connaissances de Linux (utilisateur) et du langage C.
Programme
Ordonnancement sous Linux
Introduction
- Noyau et espace utilisateur Organisation du système Répartition des ressources.
Multi-tâche sous Linux
- Processus et threads Posix Synchronisation et communication entre tâches.
Systèmes multi-processeurs symétriques (SMP)
- Multi-processeur, Multi-coeur, Hyperthreading Affinités et migrations des tâches.
Temps-partagé
- Ordonnanceurs O(1) et CFS Groupement automatique des tâches. Priorités, nice.
Temps-réel souple
Fifo et Round-robin
- Passage en temps-réel Priorités Configuration des noyaux 2.6.21 et postérieurs.
Timers
- Création de timers Unix et Posix Mesures temporelles.
Interruptions
- Principe Organisation des handlers Préemptibilité du noyau Latences.
Problèmes temps-réel classiques
- Lancement de tâches en parallèle Inversion de priorité Reprise de mutex.
Temps-réel amélioré avec Linux-rt
Patch Linux-rt
- Principe Patch d’Ingo Molnar et Thomas Gleixner Compilation du noyau.
Préemption totale
- Effets de l’option de préemptibilité totale Activation à la compilation.
Threadeds interrupts
- Configuration de la priorité des handlers d’interruptions.
Instrumentation et mesures
- Outils RT-test et cyclictest.
Extensions temps-réel strict pour Linux
Principes du temps-réel strict (Hard Realtime)
- Noyau standard et extensions RT-Linux, RTAI, Xenomai…
Installation et validation de Xenomai
- Patch et bibliothèque utilisateur Compilation du noyau et des outils de test.
Applications sous Xenomai
- Tâches Xenomai Timers et tâches périodiques Communication et synchronisation.
Gestion des interruptions
- Handler d’interruption dans l’espace utilisateur.
Topics: LINUX Développement

