Caractéristiques techniques
SUSE Linux Enterprise Real Time se base sur le kernel Linux Real Time le plus récent et intègre les derniers correctifs Real Time (preempt RT) de la communauté Open Source. Ces derniers prennent en charge la préemption grâce à des verrous adaptatifs, des threads d’interruption par périphérique et un système d’héritage des priorités. Cet ensemble de correctifs prend également en charge la protection de processeur, l’attribution des ressources et les horloges haute résolution, de même que les pilotes de kernel pour la plus récente pile logicielle Open Source RDMA d’OpenFabrics Alliance (appelée OpenFabrics Enterprise Distribution, ou OFED).
Verrous adaptatifs
SUSE Linux Enterprise Real Time comporte des modifications qui permettent d’interrompre ou de rendre prioritaires des sections du kernel du système d’exploitation Linux généraliste qu’il était auparavant impossible d’interrompre. Si vous pouvez éliminer le risque d’interruption de votre processus haute priorité par un processus du système d’exploitation impossible à arrêter ou même empêcher ce type de processus de démarrer, les temps de latence s’en trouveront réduits et les temps de réponse seront plus prévisibles. Les verrous adaptatifs constituent une modification spécifique : ils peuvent être mis en veille ou suspendus de façon à libérer les ressources qu’ils monopolisent pour que les processus à priorité plus élevée puissent être exécutés. Les verrous adaptatifs réduisent les temps de changement de contexte du système d’exploitation, ce qui améliore considérablement les performances des workloads sensibles au débit.
Interruptions d’exécution des threads
Cette autre modification spécifique, qui consiste à interrompre l’exécution des threads sur le kernel, permet de donner une priorité plus élevée au kernel Real Time. Les interruptions sont des processus amorcés soit par le matériel (interruption matérielle), soit par des logiciels (interruption logicielle). Une fois lancées, elles font passer le kernel Linux du mode processus au mode interruption. Les processus exécutés en mode interruption dans un système d’exploitation généraliste ne sont pas prioritaires. Avec SUSE Linux Enterprise Real Time, ces interruptions sont liées ou encapsulées par les threads du kernel. Ces threads, qui peuvent être interrompus, permettent alors aux interruptions matérielles et logicielles de donner la priorité aux processus plus urgents définis par les utilisateurs.
Héritage des priorités
L’héritage des priorités fait référence à la capacité que possède un processus de priorité inférieure à adopter une priorité supérieure, dans le cas où un processus de priorité supérieure devrait attendre qu’un processus de priorité inférieure se termine avant de pouvoir se mettre en route. Grâce à SUSE Linux Enterprise Real Time, les services de kernel invoqués par un processus à priorité élevée n’attendront pas indéfiniment que d’autres services de kernel, invoqués par un processus à faible priorité (et contenant un sémaphore requis), accomplissent péniblement leur tâche. La priorité du processus à la priorité inférieure augmentera, ou héritera de celle du processus à la priorité supérieure, jusqu’à ce que son sémaphore soit libéré. Real Time offre également une autre glibc qui étend l’héritage des priorités à l’espace utilisateur. Les applications qui utilisent cette glibc peuvent demander que cet héritage des priorités soit appliqué à leurs mutex POSIX.
Protection et attribution du processeur
Avec SUSE Linux Enterprise Real Time, les utilisateurs contrôlent entièrement l’attribution des processus et des threads aux processeurs. Ils peuvent décider que les processus comportant des exigences en matière de temps réel s’exécutent exclusivement sur des processeurs ou des coeurs dédiés. Les processeurs qui exécutent des tâches en temps réel peuvent être complètement protégés d’autres processus qui ne leur ont pas été attribués. Ainsi, les ressources restent toujours disponibles pour les processus à priorité élevée et ne subissent que légèrement les conséquences d’une surcharge du système, ce qui augmente la fiabilité et la prévisibilité.
Horloges haute résolution
Les services de kernel liés à une horloge POSIX basse résolution (40 millisecondes) ont été remplacés par un nouveau modèle dont la résolution est d’environ 2 microsecondes. Le temps que passe le système à traiter les interruptions, les appels système, les daemons du kernel et les applications utilisateur se compte maintenant en nanosecondes.