FFCNCERCERXIO24
Stage inter entreprise
Durée :
2 jour(s)
Présentation
De nombreux projets industriels sont sous contraintes “temps réel”. Des systèmes d’exploitation (RTOS = Real Time Operating Systems) proposent nativement ces fonctionnalités, ce qui n'est pas le cas de Linux. Après des rappels sur la notion de temps réel, nous verrons quelles sont les solutions pour rendre le noyau Linux “préemptif”. Nous étudierons les deux principales technologies disponibles, PREEMPT_RT et Xenomai.
Nous évaluerons les performances, étudierons l’API de développement d’applications (basée sur la norme POSIX), puis comment les mettre au point en utilisant l’outil Ftrace.
Objectifs
- Expliquer les principes en temps réel
- Présenter la norme POSIX
- Exploiter l’ordonnancement Linux en mode “temps réel” (politique POSIX “SCHED_FIFO”)
- Exploiter le patch PREEMPT_RT
-
Programme
Introduction
Présentation du temps réel
- Qu'est-ce que le temps réel ?
- Préemption en mode temps réel
- Algorithme RMS (Rate Monotonic Scheduler)
- Inversion de priorité (et héritage)
- Quelques exemples de RTOS
- Présentation de la norme POSIX
Utilisation de Linux pour RT
- Linux et temps réel
- Correctifs hérités ("low-latency" et "preempt-kernel")
- PREEMPT_RT
- Approche co-noyau (RTLinux, RTAI, Xenomai)
Programmation RT avec POSIX et travaux pratiques
- Principes de programmation RT
- Processus
- Threads
- Signaux
- Compteurs et horloges
- Sémaphores et Mutex
- Conditions
- Extensions POSIX pour le temps réel
- Profilage d'un programme temps réel avec Ftrace
Programmation RT avec Xenomai et travaux pratiques
- Principes de programmation Xenomai
- Notion de “personnalité” Xenomai (skin)
- Architecture et conception d'applications
- Développement de drivers temps réel (RTDM)
Synthèse et conclusion
-
Points forts
La formation a le gros avantage d’associer un travail pratique à chaque concept présenté.
La formation est basée sur une machine virtuelle (VirtualBox) ce qui garantit l’installation sur des PC Linux ou Windows.
Les travaux pratiques sont réalisés sur des cartes physiques (Raspberry Pi 3) permettant de mettre en place de véritables contraintes temps réel. Les images de test sont disponibles pour Yocto et Buildroot, principaux outils “build system” pour Linux embarqué. -
Modalités pédagogiques
Exposés théoriques, travaux pratiques, étude de cas, retours d’expérience d’experts dans l’industrie.
La formation a le gros avantage d’associer un TP à chaque concept présenté. Il n’est pas nécessaire de disposer d’une carte de développement car nous utilisons l’émulateur open source QEMU.
La formation est basée sur une machine virtuelle (VirtualBox) ce qui garantit l’installation sur des PC Linux ou Windows. Elle peut être réalisée sur place, à distance ou de manière hybride.
-
Public cible et prérequis
Développeurs Linux et chefs de projets Linux.
Les participants doivent avoir une base technique d’utilisation de Linux comme plateforme de développement, d’utilisation du « shell » Linux (bash) et des notions de base en langage C pour tirer pleinement profit de cette formation.
-
Responsables
Laurent PAUTET
Enseignant-chercheur à Télécom Paris. Chef d’équipe de recherche (ACES) Systèmes embarqués autonomes et critiques. Ses recherches portent sur les systèmes en temps réel, les plates-formes déterministes et les processus de conception des systèmes critiques. Celles de ACES concernent les systèmes concurrents, dont il faut garantir des propriétés non fonctionnelles (performance, sécurité).
Pierre FICHEUX
CTO de la division Smile ECS (Embedded & Connected Systems). Auteur de 5 livres sur Linux embarqué (éditions Eyrolles, de 2002 à 2017) et de livres blancs édités par Smile, consacrés aux logiciels open source pour l'embarqué et l'IoT (Linux embarqué, Android, Linux RT). Il enseigne également le développement des drivers Linux, Linux embarqué et temps réel dans plusieurs écoles d'ingénieurs.
Prochaine(s) session(s)
- Du 21/11/2024 au 22/11/2024 à Paris
- Du 26/05/2025 au 27/05/2025 à Paris
- Du 02/10/2025 au 03/10/2025 à Paris