|
Plan détaillé
I - 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.
Travaux pratiques
Comparaison des temps de création et commutation des processus et des threads.
Vitesse de communication par file de messages. Utilisation de la mémoire partagée.
Synchronisation par mutex et par variable condition. Influence de la priorité temps-partagé.
II - 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.
Travaux pratiques
Création de processus et de threads temps-réel. Mesure de précision des timers.
Effet de la préemptibilité du noyau sur la latence des interruptions.
Examen d'inversion de priorité. Héritage de priorité. Test de reprise de mutex.
III - 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.
Travaux pratiques
Compilation d'un noyau après application du patch Linux-rt. Vérification
de la préemptibilité. Utilisation de cyclictest et
comparaison avec le noyau standard. Comparaison du comportement des
exemples du chapitre précédent.
IV - 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. Real Time Driver Model
Travaux pratiques
Compilation et installation de Xenomai. Création de tâches.
Synchronisation. Vérification des priorités par rapport aux tâches
du noyau standard. Priorités par rapport au kernel Linux. Test de
précision des timers. Mesure des latences d'interruption.
Conclusion
Discussions libres sur l'ensemble des thèmes abordés.
Travaux pratiques
Expérimentations libres suivant les demandes des participants.
|