Note « Le temps réel sous Linux »

La notion de temps réel est souvent mal comprise. Elle est parfois assimilée à tort à la notion de rapidité d’exécution, d’optimisation ou de performance de calcul.

Il s’agit plutôt d’une notion de prédictibilité du temps de réponse. On ne demande pas toujours à un système temps réel d’être rapide, mais plutôt de répondre aux stimuli internes ou externes en un temps connu et répétable.

Par défaut, le noyau Linux est optimisé pour équiper le cloud. Son code est ajusté pour offrir les meilleures performances sur des serveurs (web, application, hébergement, etc.). La prédictibilité de son temps de réponse n’est pas un critère pris en considération, et le comportement du système face à des problématiques temps réel est assez médiocre.

Lorsqu’on exécute une application sur un système Linux standard sans prendre de disposition particulière, on peut observer des fluctuations dans les temps de réponses aux évènements extérieurs (interruptions, timers, etc.) de l’ordre de quelques centièmes de secondes. Cela peut être facilement toléré par un utilisateur humain.

Pour s’assurer que ces temps de réponse soient plus précis, avec une variation de quelques millisecondes, un système Linux standard suffit, à condition de paramétrer l’ordonnancement (scheduling) de l’application selon un mode temps réel (Fifo ou Round Robin par exemple)

Si la précision nécessaire est plutôt de l’ordre de cent micro-secondes, l’utilisation d’un système Linux spécialement préparé (avec le patch PREEMPT_RT) devient nécessaire.

Enfin, pour garantir des temps de réponse avec des variations maximales de quelques dizaines de micro-secondes, on peut employer le système Xenomai, toutefois nettement plus complexe à mettre en œuvre que PREEMPT_RT.

Ces différents cas sont résumés sur la figure ci-dessous. L’axe (logarithmique) des abscisses représentant les fluctuations acceptables dans le temps de réponse.

Si vous souhaitez explorer en détail les capacités et les limites de Linux pour répondre à des contraintes temporelles, comment le configurer et l’ajuster pour répondre à votre cahier des charges, nous vous proposons deux jours de formation “Temps réel sous Linux et Xenomai.

Nous pouvons également vous accompagner dans le choix, la configuration, la mise en œuvre et la validation d’un système Linux temps réel répondant à vos besoins. N’hésitez pas à nous contacter et nous exposer vos besoins.

Vous trouverez également des informations dans le livre de notre intervenant : « Solutions temps réel sous Linux » Christophe BLAESS, Editions Eyrolles, 2019.

Mise à jour 03/08/2024