Temps réel sous Linux
Suivant les contraintes temporelles imposées par le projet, plusieurs possibilités s’offrent pour le développement applicatif sous Linux. Depuis les processus ordonnancés en soft realtime (temps réel souple) par le noyau standard et les extensions comme PREEMPT_RT, jusqu’aux micro-noyaux visant le hard-realtime (temps réel strict) comme Xenomai, ce cours vous propose un cheminement logique et illustré dans le panorama des solutions temps réel disponibles avec Linux.
De nombreux travaux pratiques permettent de valider et d’approfondir les concepts enseignés.
Objectifs
- Comprendre les problématiques d’ordonnancements multi-tâches et multi-coeurs.
- Connaître les possibilités et limitations du temps réel natif de Linux.
- Comprendre les apports de PREEMPT_RT et Xenomai.
Pré-requis
Une connaissance de Linux (niveau utilisateur) est nécessaire et une certaine aisance avec la ligne de commande du shell est recommandée.Public visé
Développeur/euse ou chef de projet devant concevoir, dimensionner ou maintenir un système soumis à des contraintes temporelles.Programme de la formation
Programmation multitâche et multicœur
Multitâche sous Linux : processus, threads, espaces d’adressage, mutex, IPC.
Travaux pratiques : création de processus, de threads, synchronisation des threads, utilisation de la mémoire partagée, mutex inter-processus, files de message.
Programmation multicœur : multiprocesseur, multicœur, hyperthreading, migrations de tâches, affinités des tâches et des interruptions, confinement de processus, fréquence de fonctionnement du processeur.
Travaux pratiques : migration de processus, affinité des threads, affinité des interruptions.
Ordonnancement temps partagé
Ordonnancement : états des tâches, commutations.
Schedulers : goodness, O(1), CFS, priorité et nice.
Travaux pratiques : observation du comportement des tâches à priorités modifiées.
Temps réel natif de Linux
Scheduling Fifo et Round Robin : configuration, priorités temps réel, garde-fou.
Limitation du temps réel natif : interruptions monolithiques, améliorations avec interruptions threadeds, réveil d’une tâche temps réel, amélioration avec préemptibilité du kernel.
Problèmes temps réel classiques : lancement de tâches en parallèle, inversion de priorités, reprise de mutex.
Travaux pratiques : tâches FIFO de priorité maximale, perturbation des tâches par des interruptions, mesure de latence d’interruption et de réveil des tâches, inversion de priorités, héritage de priorités des mutex.
Temps réel amélioré avec PREEMPT_RT
Patch PREEMPT_RT : principe, disponibilité, application et compilation du noyau.
Effets du patch : préemptibilité complète, threaded interrupts.
Instrumentation et mesures : RT-test, cyclictests, workbench, ftrace.
Travaux pratiques : observation des threaded interrupts, mesure de latence d’interruption.
Approches du hard realtime avec Linux
Principes : temps réel strict sous Linux, RT-Linux, RTAI, Xenomai
Installation et tests de Xenomai : patch, bibliothèque, outil latency.
Aperçu de l’API de Xenomai : tâches, sommeil, timers, communication et synchronisation.
Conclusion
Discussions libres sur l’ensemble des thèmes abordés
Travaux pratiques : expérimentations libres suivant les demandes des stagiaires.
Téléchargez le programme de la formation au format PDF.
Organisation pédagogique
Il est possible de participer à ce cours en mode présentiel en notre site d’Évry (91) ou à distance. Notre salle de formation est équipée pour la visioconférence interactive et chaque stagiaire peut intervenir à tout moment oralement ou en partage d’écran. Les machines de travaux pratiques sont pré-installées avec la distribution Ubuntu.
Les travaux pratiques ont lieu sur des PC Linux (accessibles à distance). Des démonstrations sont présentées avec des cartes cibles à processeur ARM courantes (Raspberry Pi, BeagleBone…).
Intervenant : notre intervenant pour cette formation est Christophe BLAESS, auteur de plusieurs ouvrages sur le développement sous Linux et expert de Linux embarqué et temps réel.
Validation des acquis
La validation des acquis durant la session est estimée par auto-évaluation des stagiaires avant et après la session sur les thèmes abordés durant le cours.
Satisfaction
Un questionnaire d’évaluation est remis aux stagiaires à l’issue de la formation pour connaître leur taux
de satisfaction sur différents critères, ainsi que leurs remarques et suggestions d’amélioration.
Le pourcentage de satisfaction pour cette formation en 2023 était de 95,5%.
Qualiopi
Nous sommes certifiés Qualiopi, ce qui peut permettre la prise en charge de votre formation par votre Opérateur de Compétences.
La certification qualité a été délivrée au titre de la catégorie d’actions suivante : actions de formation.
Certificat numéro B04664 valide jusqu’au 23/06/2025.
Après la formation
Vous pourrez continuer à accéder au support de cours (disponible en PDF sur notre site web) et le cas échéant au dépôt Github des exemples.
Notre intervenant est disponible pour répondre par mail aux questions qui peuvent se poser suite à la formation.
Si vous souhaitez une assistance plus complète pour la mise en pratique de votre projet spécifique, nous pouvons vous proposer un contrat de support technique.
Support de la formation « Temps réel sous Linux »
Notre support de cours est disponible gratuitement sous license Creative Common CC-by-SA.
Découvrez le déroulement typique des journées de formation.
Dates, devis, inscriptions
- Durée de la session : deux jours (14 heures)
- Tarif : 1260€HT / participant. Notre tarif est dégressif en cas d’inscription de plusieurs stagiaires de la même entreprise à la même session.
- Délai d’inscription minimal: 2 jours ouvrés.
Si vous voulez inscrire plusieurs participants ou si vous souhaitez une session personnalisée intra-entreprise, merci de nous contacter pour obtenir un devis correspondant à votre demande.
Pour vous inscrire à une prochaine session, remplissez le formulaire ci-dessous et nous vous enverrons un projet de convention de formation sous 24 heures. Votre inscription sera définitivement confirmée lorsque nous recevrons la convention contre-signée.