Une Comparaison Des Alternatives Linux En Temps Réel

Une Comparaison Des Alternatives Linux En Temps Réel

Nous couvrirons la latence d’interruption des alternatives Linux temps réel difficiles. La latence d’interruption est le temps qui s’écoule lorsqu’une interruption commence à l’endroit où la source d’interruption est desservie.

Selon la conception du microprocesseur, le masquage des interruptions, les contrôleurs d’interruptions et la gestion des interruptions du système d’exploitation, la latence peut être affectée.

Ce travail a été effectué dans le cadre d’un examen visant à décider de l’opportunité d’utiliser Linux dans un cadre de contrôle avancé et constant. Les cercles de contrôle s’exécutent actuellement à un rythme de 100 Hz. Une condition préalable clé du framework est que l’intégralité des comptes de contrôle doit être terminée dans la fenêtre de 10 ms accessible – sans se soucier d’un autre empilement sur le framework. Afin d’accomplir cela, il a été estimé qu’un report le plus extrême entre le moment où le début d’un contrôle intérimaire est signalé (l’occasion) et le moment où la tâche de contrôle est commencée devrait être inférieur à 0,5 ms.

Il existe différentes configurations Linux accessibles en permanence. Une partie de ceux-ci dépend de Linux seul, certains utilisent Linux avec un sous-bit et certains correctifs d’utilisation pour améliorer le fonctionnement continu de Linux. Cet article se concentre sur quatre des arrangements potentiels. Les alternatives choisies sont pour la plupart accessibles sans restriction au téléchargement à partir de sites légitimes.

À l’heure actuelle, et toutes les sous-pièces utilisées étaient traitées comme des éléments secrets. La méthodologie suivie consistait à organiser Linux et à programmer le cadre pour les différents choix, puis à mesurer les résultats. Aucun effort n’a été fait pour explorer les détails de la pièce pour décider pourquoi les conceptions ont réagi de la manière dont ils l’ont fait, et aucun effort n’a été fait pour améliorer la présentation en utilisant des correctifs personnalisés ou des arrangements personnalisés.

Les tests ont été effectués sur une charpente délicatement empilée et sur une charpente sous empilement de correspondances modérément accablant. L’empilement des correspondances a été utilisé car il était tout sauf difficile à mettre en place, il a donné une approche pour s’entraîner à l’équipement d’interface et au pilote de gadget pour l’équipement, et il a donné une situation raisonnable où des informations difficiles et des échanges doivent être envisageables tout le temps.

Cette évaluation a été effectuée sur un processeur Intel x86. Une partie des choix qui ont été essayés peuvent ne pas être confirmés sur toutes les structures de processeur.

Les Quatre Options Linux évaluées Incluent :

probablement la distribution Linux 2.4 la plus à jour téléchargée depuis kernels.org (2.4.27)
une distribution Linux 2.6 récemment disponible téléchargée depuis kernels.org (2.6.8.1)
une distribution Linux 2.4 avec RTAI téléchargé depuis rtai.org (3.1 -test5)
une distribution Linux 2.4 avec LXRT distribuée avec RTAI (3.1-test5) Toutes ces options sont définies ci-dessous :

Linux 2.4

Linux 2.4.27 était le dernier lancement 2.4 offert par la période qui fait l’objet de l’enquête. Le noyau 2.4 est juste un noyau bien équilibré qui a des lacunes bien documentées en ce qui concerne le temps réel qui est difficile. Différentes approches ont été utilisées pour créer 2.4 avec des capacités en temps réel. Linux 2.4 était en effet contenu dans l’étude scientifique comme étant une base de référence par rapport à laquelle comparer d’autres options.

Linux 2.6

Linux 2.6 a un certain nombre d’améliorations par rapport à Linux 2.4. La majorité de ces améliorations ont été conçues pour améliorer les capacités en temps réel de Linux 2.6. Certains d’entre eux incluent :

Nouvel algorithme de planificateur – L’algorithme O doit avoir des performances supérieures sous des lots plus élevés et sur des systèmes multiprocesseurs
Spot de préemption du noyau – avant 2.6, une application personnelle ne pouvait pas préempter une tâche fonctionnant en mode noyau. Avec la 2.6, la préemption est devenue possible conduisant à réduire les latences pour les applications utilisateur qui sont interactives.
Le modèle amélioré qui traite l’aide dans le noyau pour Native Posix Threading Library (NPTL) augmente les performances des opérations de thread et prend en charge davantage de threads.
Fusion d’une grande partie du projet uClinux (Linux pour les microcontrôleurs). Cela aide les processeurs qui ne disposent peut-être pas de MMU (Memory Management Unit).
Améliorations de votre sous-système de module.

Veuillez Consulter Les Ressources Répertoriées Dans La Section Des Ressources Pour Plus D’informations Sur Linux 2.6.

  • Linux 2.4 avec RTAI
  • RTAI – Real-Time Application Interface – est une extension matérielle qui est en temps réel le noyau Linux. Le projet RTAI est un projet de logiciel libre créé par le Département d’ingénierie aérospatiale du Politecnico di Milano (DIAPM). Il a évolué en une communauté regroupée coordonnée par le professeur Paulo Mantegazza de DIAPM.

RTAI est un sous-noyau qui fonctionne sous Linux. Il fournit une réponse en temps réel difficile en exécutant Linux comme tâche inactive. Les interruptions sont interceptées par RTAI où elles peuvent être traitées par un gestionnaire d’interruptions RTAI ou transmises à Linux. RTAI s’exécute uniquement dans l’espace noyau, et donc, toutes les tâches qui peuvent être RTAI doivent certainement s’exécuter dans l’espace noyau. Des versions de RTAI sont disponibles et sont utilisées à l’aide du noyau Linux 2.4 et du noyau Linux 2.6.

Le lancement 3.1 de RTAI dépendra du nano-noyau Adeos – une migration loin de la couche d’abstraction matérielle en temps réel (RTHAL) qui est au centre d’une réclamation pour contrefaçon de brevet par FSMLabs. Les futures versions de RTAI devraient inclure la fusion. RTAI/Fusion est le but de la convergence d’Adeos, LXRT, le Linux qui préempte les améliorations à faible latence du noyau. La version 0.6.2 de Fusion est en fait publiée mais n’a peut-être pas été testée en tant qu’élément de l’objectif de cet article, car elle a fini par être détaillée pour être expérimentale.

Toutes Les Tâches Difficiles Qui Sont Implémentées En Temps Réel Dans L’espace Noyau En Tant Que Tâches RTAI Pour Cette Option.

Linux 2.4 avec LXRT
LXRT est une extension de RTAI. Il permet en temps réel et dur qui est doux de fonctionner dans l’espace utilisateur en utilisant l’API RTAI. Les avantages d’être impliqué dans l’espace utilisateur avec LXRT comprennent :

  • les tâches s’exécutent sous la sécurité de la mémoire Linux
  • assistance pour les appels IPC avec les processus Linux standard
  • les tâches de l’espace utilisateur sont déboguées avec des outils de débogage standard
  • LXRT et RTAI travaillent ensemble pour produire des performances qui sont des tâches en temps réel dans l’espace utilisateur. Les modules de l’espace noyau RTAI sont néanmoins nécessaires pour LXRT, et toute exécution inclura des tâches LXRT qui s’exécutent généralement dans l’espace utilisateur et des tâches RTAI exécutées dans l’espace noyau.

Toutes les tâches en temps réel difficiles ont été implémentées dans l’espace utilisateur en utilisant le support LXRT de cette technique.

Plate-forme Matérielle

La carte CPU GE Fanuc, VMIVME-7700 a finalement été choisie pour être utilisée dans le système de contrôle. La carte est une carte VMEbus unique compte tenu du processeur Intel Celeron fonctionnant à 650 MHz. La carte est équipée de 512 Mo de SDRAM et de 128 Mo de CompactFlash. D’autres options fournies avec le tableau qui ont été trouvées dans l’évaluation sont liées à des options en temps réel :

  • Interface utilisateur 10/100 BaseT,
  • Contrôleur vidéo graphique
  • logiciel de clavier,
  • démarrage Ethernet à distance
  • minuterie programmable

La cible avait été autorisée par l’interface Ethernet à être liée au PC hôte utilisant un réseau local. Le PC hôte était un PC basé sur le x86 de la circulation Fedora Core 2 Linux. La cible avait son système de fichiers racine NFS monté sur le PC hôte.

Le contrôleur de film qui est un affichage à clavier graphique a fourni une interface pratique pour surveiller et contrôler la perspective.

L’Ethernet qui est le démarrage à distance a en fait été utilisé pour permettre à l’image du noyau d’être téléchargée sur votre cible à partir d’un hôte qui est tftp sur le PC hôte.

Le temporisateur qui est programmable un appareil pour avoir une illustration liée aux latences inhérentes aux différentes options OS considérées. L’automobiliste du chronomètre avait été fourni par GE Fanuc.