Ouvrir le menu Fermer le menu

Windows et les extensions Temps Réel

trait de séparation
Temps de lecture : 5 min
De plus en plus d'applications, en particulier dans les marchés de l'automatisation industrielle, de la médecine et de l'acquisition et de la mesure de données, nécessitent un comportement temps réel déterministe.

Windows ne prend pas en charge de manière native une opération déterministe en temps réel, mais il existe de nombreuses « extensions temps réel Windows » qui peuvent fournir aux développeurs une solution pour tirer pleinement parti des fonctionnalités de Windows tout en préservant les exigences temps réel de leur application.

Cet article vous propose une série de pistes et de conseils pour mixer temps réel et Windows.

Windows et temps réel, le contexte

La différence entre un système d'exploitation (OS) standard et un OS en temps réel (RTOS) que l'on trouve dans de nombreux systèmes embarqués, est le temps de réponse aux événements externes. Les systèmes d'exploitation standard fournissent généralement une réponse en temps non déterministe, tout en essayant de rester réactifs envers l'utilisateur, parfois en temps réel dit « soft », mais sans garantie quant au moment où chaque tâche sera terminée. Un RTOS diffère car il fournit une réponse en temps réel « dur », fournissant une réaction rapide et hautement déterministe aux événements externes.

Lors de la commutation entre les tâches, le RTOS doit choisir la tâche la plus appropriée à charger ensuite. Il existe plusieurs algorithmes d'ordonnancement disponibles, cependant, pour fournir un système réactif, la plupart des RTOS utilisent un algorithme de planification préemptive, chaque tâche recevant une valeur de priorité individuelle. Plus la réponse requise est rapide, plus le niveau de priorité attribué est élevé, la tâche choisie pour s’exécuter est la tâche de priorité la plus élevée pouvant être exécutée. Il en résulte un système hautement réactif.

On pourrait penser que si vous intégrez votre logiciel dans un pilote Windows, le logiciel peut répondre à des exigences déterministes et temps réel, mais Windows effectuera des demandes au système d'exploitation de manière à obtenir des performances de calcul moyennes maximales et une réponse interactive rapide de l'utilisateur sans réelle garantie de temps de réponse. Il en va de même pour les applications Windows standard, même si les threads s’exécutent avec la priorité temps réel de Windows, ainsi que pour les pilotes Windows, car les mécanismes sous-jacents du système d’exploitation Windows sont les mêmes pour les deux.

Exigences relatives au comportement en temps réel

  • Le système d'exécution
  • Isolation
  • Conservation du temps réel
  • Bibliothèque d'exécution C / C ++
  • Environnement de développement
  • Popularité, flexibilité et portabilité

LxWin - La solution d'acontis est différente

Windows&Temps-réel_acontis
Windows&Temps-réel_LxWin_acontis
L'extension temps réel d'acontis, LxWin fonctionne différemment d'une extension temps réel Windows traditionnelle et offre une alternative intéressante que les utilisateurs et les concepteurs d'applications temps réel devraient envisager. Premièrement, LxWin utilise une approche plus séparée pour les applications temps réel et la partie Windows non temps réel. Plutôt que d'utiliser un RTOS propriétaire, LxWin intègre un noyau temps réel « dur » Linux au-dessus d'un hyperviseur temps réel. Cet hyperviseur est essentiel et garantit une bien meilleure isolation de Windows par rapport aux extensions temps réel traditionnelles.

Les défis de la création d'un noyau temps réel Linux

Il y a, bien sûr, encore quelques défis à utiliser Linux pour les applications temps réel. L'une des tâches les plus difficiles consiste à configurer le noyau Linux pour un comportement temps réel. Jusqu'à ce que le noyau Linux principal soit entièrement réalisé en tant que noyau temps réel, les développeurs doivent aujourd'hui patcher le noyau et configurer le noyau spécialement pour atteindre le temps réel. Ceci est souvent appelé le patch RT-PREEMPT, mais il peut s'agir de nombreux patches et tous ne fonctionnent pas parfaitement.

Cependant, avec LxWin, les développeurs n'ont pas du tout à se soucier de la configuration et de la compilation du noyau Linux. Le noyau Linux fourni avec LxWin est déjà correctement patché, configuré et testé en tant que noyau temps réel « dur » avec un comportement déterministe. En conséquence, des temps de cycle extrêmement courts jusqu'à 50 microsecondes peuvent être atteints.

Résumé des fonctionnalités les plus importantes de LxWin

  • Disponible pour Windows 7 et versions ultérieures de Windows (32 bits et 64 bits)
  • Temps de réponse rapide en quelques microsecondes et indépendance totale de Windows, si Windows tombe en panne, la partie temps réel continue de fonctionner !
  • Utilisation optimisée des systèmes multicœurs (évolutif d'un à plusieurs cœurs CPU pour la partie temps réel)
  • API temps réel intuitive et populaire (processus, threads, événements, sockets, support POSIX, ...)
  • Prise en charge des outils de développement Microsoft (Visual Studio)
  • Environnement de débogage confortable pour la partie temps réel à l'aide des outils Microsoft, les applications en temps réel seront développées et déboguées comme une application Windows normale
0