Formation « 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 de la formation

  • 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 ou chef de projet devant concevoir ou maintenir un système embarqué


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 nos locaux d’Évry (91) ou à distance. Notre salle de formation est équipée pour la visioconférence interactive, chaque stagiaire peut intervenir à tout moment oralement et en partage d’écran.

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 ce cours 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 participantes et participants en fin de 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.

Logo Qualiopi

La certification qualité nous 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 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 dans votre domaine 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 licence Creative Common CC-by-SA.

Découvrez le Déroulement typique des journées de formation.

Dates, devis, inscriptions

  • Durée en session à distance : 2 jours (14 heures).
  • Tarif : 1260 €HT / participant. Tarif dégressif si plusieurs inscriptions de la même société pour 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.

    Date session

    Entreprise


     

    Participant à la formation
      

    Responsable de l'inscription (si différent du participant)
      

    (*) champs obligatoires

    Mise à jour 01/08/2024