Archive d’étiquettes pour : ML

Logo FreeRTOS con TUX de fondo

Linux en temps réel (RTOS) – Fait maintenant partie de ton noyau

Sais-tu que pendant que tu as ouvert ton navigateur pour lire ceci… ton ordinateur a décidé de donner la priorité à ce processus en laissant beaucoup d’autres derrière lui ? Veux-tu savoir comment il fait ? Qu’est-ce que cela signifie lorsque Linux devient un RTOS ? Eh bien, lis la suite et je vais te montrer. Et attention, car si tu t’intéresses au monde de l’OS des pingouins, nous allons te raconter plus d’un fait que tu ne connais peut-être pas...💥.

Comment fonctionne le planificateur du noyau Linux ?

Le planificateur Linux fonctionne comme dans l’exemple ci-dessus : en gros, il décide dans quel état mettre les processus (en cours d’exécution, interruptible, non interruptible, zombie ou arrêté) et leur ordre d’exécution pour améliorer ton expérience. Pour leur ordre d’exécution, chaque processus a un niveau de priorité. Imaginons qu’un processus d’arrière-plan s’exécute et que tu ouvres le navigateur. Le planificateur interrompra ce processus d’arrière-plan et concentrera les ressources sur l’ouverture du navigateur, en veillant à ce qu’il s’exécute rapidement et efficacement.

Le concept d’expropriation (préemption)

Expropriation sur Linux🐧 ? Ce n’est pas ce à quoi tu penses… L’expropriation est une fonctionnalité fondamentale, car elle permet d ‘interrompre les processus si un processus plus prioritaire fait irruption. Dans la version 2.6 de Linux, la possibilité d’exproprier les processusa été ajoutée au noyau, c’est-à-dire que le noyau peut interrompre les processus. Les systèmes qui ne sont pas préemptibles doivent mettre fin à la tâche en cours pour passer à la suivante.

Dans le cas de Linux, depuis la version 2.6.24, c’est le Completely Fair Scheduler (CFS) qui est utilisé comme ordonnanceur. Ce planificateur est régi par la garantie d’un accès “équitable” au processeur.

Ordonnanceur complètement équitable : comment décider quel processus doit être exécuté à quel moment afin d’avoir un accès équitable à l’unité centrale ?

Il existe deux types de priorités : statiques et dynamiques.

  • Static (Niceness) : peut être défini par l’utilisateur. Plus la valeur est faible, plus le programme est important et plus il consomme de temps processeur.
  • Dynamique: ce paramètre est défini en fonction du comportement du programme. Il peut s’agir de programmes liés aux E/S (programmes qui ont besoin de beaucoup de temps processeur car ils sont généralement en attente) ou de programmes liés au processeur (qui ont besoin de moins de temps processeur, car ils effectuent généralement des tâches intensives qui pourraient faire planter d’autres processus).

Comment le planificateur établit-il ses priorités ?

Le système d’exploitation tient à jour deux listes de programmes :

  • Liste 1 : les programmes qui ont encore le temps d’être utilisés.
  • Liste 2 : les programmes qui t’ont fait perdre du temps.

Lorsqu’un programme utilise son temps, le système calcule le temps dont il devrait disposer la prochaine fois et le déplace dans la deuxième liste. Lorsque la première liste devient vide, les deux listes sont échangées. Cela permet au système de fonctionner efficacement. Linux 2.6, avec le noyau entièrement préemptible, a considérablement amélioré la réactivité du système. Désormais, le noyau peut être interrompu sur des tâches de faible priorité pour répondre à des événements prioritaires.

 

PREEMPT_RT dans le noyau Linux

Grâce à une nouvelle mise à jour du noyau, Linux peut être contrôlé avec une précision millimétrique. Un RTOS signifie que le système sera précis pour les tâches critiques, comme dans les centres médicaux. Cependant, Linux n’étant pas prévu pour cela, le fait qu’il fasse désormais partie du noyau apporte certaines fonctionnalités, même si elles n’en font pas un RTOS.

Fonctionnalité Amélioration
Une intégration simple et une maintenance simplifiée
  • Moins de dépendance à l’égard des correctifs externes : accès direct aux mises à niveau sans gestion des correctifs.
  • Une maintenance plus facile : des mises à jour plus faciles et moins de problèmes de compatibilité.
Stabilité et performances améliorées
  • Test et validation : stabilité et performance accrues grâce à des tests rigoureux.
  • Développement continu : amélioration continue des fonctionnalités et des performances.
Accessibilité pour les développeurs
  • Facilité d’utilisation : permettre des fonctionnalités en temps réel plus accessibles.
  • Documentation et soutien : plus de documentation et de soutien dans la communauté.
Concurrence avec les systèmes dédiés
  • Compétitivité accrue : positionner Linux comme une alternative aux RTOS dédiés.
Cas d’utilisation étendus
  • Applications critiques : Adoption de Linux dans les systèmes critiques où la précision est essentielle.

Pourquoi PREEMPT_RT a-t-il mis si longtemps à faire partie du noyau ?

Outre les problèmes financiers et le manque d’intérêt de la communauté pour une approche en temps réel de Linux, un problème technique s’est posé: le printk. Printk es una función que imprime mensajes en el búfer de registro del kernel. El problema con esta función es que producía retrasos cada vez que se llamaba. Este retraso interrumpía el flujo normal del sistema, y alejado este problema, PREEMPT_RT se pudo incorporar al kernel.

En quoi le fait que Linux devienne un système d’exploitation en temps réel te concerne-t-il ?

Pour l’utilisateur moyen: rien. Cependant, si tu es un développeur, cette innovation dans le noyau de Linux sera une avancée avec laquelle il faudra compter. Jusqu’à présent, les développeurs qui ont besoin d’une précision en temps réel optaient pour d’autres systèmes d’exploitation conçus pour cela. Avec la nouvelle fonction PREEMPT_RT intégrée au noyau Linux, cela ne sera plus nécessaire. Cette fonction permet à Linux d’arrêter n’importe quelle tâche pour donner la priorité à une demande en temps réel, ce qui est essentiel pour les applications qui exigent une faible latence.

Cas d’utilisation : sécurité domestique

Imaginons que tu utilises chez toi un assistant vocal qui contrôle à la fois l’éclairage et le système de sécurité. S’il détecte une intrusion alors que tu es chez toi, il devrait activer en priorité les alarmes et te prévenir immédiatement. Dans ce cas, les lumières ou la musique peuvent attendre ; ce qui compte vraiment, c’est ta sécurité. Cette capacité à réagir immédiatement dans les situations critiques peut faire toute la différence.

Pourquoi le temps réel est-il nécessaire ?

Comme nous l’avons vu dans le cas d’utilisation, les RTOS peuvent accomplir des tâches imprévues, et également les accomplir dans des délais spécifiques et prévisibles. Dans les charges de travail qui nécessitent de la précision, les RTOS jouent un rôle essentiel. En l’occurrence, on voit souvent des RTOS dans les applications IoT:

  • Véhicules: Les voitures pionnières comme Tesla peuvent freiner immédiatement si elles détectent un obstacle.
  • Systèmes critiques: dans les avions ou en médecine, les systèmes doivent fonctionner dans des délais stricts.
  • Industrie: Dans les processus industriels, un léger retard peut provoquer des défaillances.
Le rôle de l’IA et de l’apprentissage automatique

L’IA et l’apprentissage automatique jouent également un rôle clé dans les RTOS et l’IoT. Ils pourraient prédire des événements et favoriser une prise de décision rapide et efficace.

Conclusion

En bref, Linux Real Time va enfin devenir une réalité. L’intégration de Linux en tant que système d’exploitation en temps réel marque un tournant et ouvre de nouvelles perspectives pour les tâches critiques dans des secteurs tels que la santé, la robotique et l’IoT. Grâce à la fonction PREEMPT_RT intégrée au noyau, Ubuntu Linux garantit une plus grande précision. Cependant, il ne faut pas oublier que le système d’exploitation Penguin🐧 n’est pas 100 % RTOS, il n’a pas été conçu pour cela. Nous verrons donc si les entreprises adapteront la solution de Canonical à leurs besoins en temps réel, ou si elles continueront à opter pour d’autres solutions telles que FreeRTOS ou Zephyr. Tu veux continuer à te former sur Linux ? Nous te proposons des certifications officielles. Et si tu n’en as pas assez… nous nous adaptons à toi avec des formations personnalisées 👇.

Formation intensive sur les systèmes Linux

Linux est à l’ordre du jour… si tu ne veux pas rester à l’écart des dernières exigences technologiques, nous te recommandons nos cours Canonical Ubuntu 👇.

Formation officielle SIXE chez Canonical, créateur d’Ubuntu

2024 - SIXE Ingénierie | Formation, conseil, services professionnels et projets clés en main | IBM, Lenovo, Canonical, Red Hat , HCL, Sealpath & SUSE Partenaire commercial autorisé. Entreprise inscrite au catalogue des entreprises de cybersécurité d'INCIBE.
HQ - Madrid | Barcelone | Paris | Bruxelles
SiXe Ingeniería
×