Sommaire Indexe Rechercher Liens A Propos
[LinuxFocus Image]
[Barre de Navigation]
  Nouveaut�s   Archives

Linux Temps R�el (RT- Linux)

par Ismael Ripoll


Qu'est ce que le Temps R�el ?

Les O.S. et le Temps R�el

L'avenir de RT-Linux

Conclusions

Concepts de base du Temps R�el (RT). Le Temps R�el au sens strict avec RT-Linux

Qu'est ce que le Temps R�el ?

Avant d'introduire RT-Linux il est n�cessaire de pr�ciser plusieurs points en rapport avec le temps r�el. On dira que:

" Un syst�me Temps R�el est un syst�me d'information dont les corrections ne d�pendent pas uniquement du r�sultat logique des algorithmes mais aussi de l'instant o� ces r�sultats ont �t� produits."

Il ne suffit pas que le r�sutat soit correct, il doit être obtenu en un temps sp�cifi�. Remarquez que d'apr�s cette d�finition, un syt�me Temps R�el n'a pas besoin d'être rapide, comme on pourrait être amen� � le croire. Par exemple: le syst�me de guidage d'un navire peut apparaître comme n'�tant pas un syst�me Temps R�el, � cause de sa faible vitesse et qu'habituellement on a "assez" de temps (en minutes) pour prendre une d�cision avant d'agir. N�anmoins, d'apr�s notre d�finition c'est effectivement un syst�me RT.

Remarque : nous avons definit un "Syst�me Temps R�el" et non un Syst�me en Temps R�el. Les "Syst�me en Temps R�el" sont g�n�ralement des syt�mes rapides capables de donner l'illusion de la r�alit�. Typiquement ce sont les simulations et les jeux intercatifs qui ont besoin de donner � l'utilisateur l'apparence de la continuit� du temps et un maximums. Plus il y a d'images g�n�r�es par unit� de temps, meilleur c'est.

Considerons plus en d�tail le concept de "restriction temporelle". Supposons que l'on cherche � contrôler la vitesse d'un moteur soumis � une charge variable, et que l'on souhaite le r�guler avec un PID (Proportionel-Int�gral-D�riv�). La r�gulation PID est, selon nos crit�res, une fonction qui prend un certain nombre de param�tres -- dans cet exemple, la vitesse du moteur -- et fournit la valeur du signal de commande � appliquer au moteur -- la tension d'alimentation du moteur. La th�orie qui repose derri�re l'algorithme PID, qui d'ailleurs est g�n�rale, consid�re que le temps de calcul est n�gligeable, c'est � dire que le temps qui s'�coule entre la lecture de la vitesse du moteur et l'envoi de la commande est tr�s court. Dans des circonstances normales, les syt�mes prennent un peu de temps. Une autre caract�ristique de ce type de r�gulations est qu'elles doivent être ex�cut�es p�riodiquement, en d'autre termes, l'algorithme PID doit être ex�cut�s r�guli�rement. Si le temps entre deux appels cons�cutifs de la fonction PID est trop grand, le moteur peut atteindre une vitesse ind�sirable. Pour r�sumer :La fonction PID peut être vue comme un programme qui doit être ex�cut�s p�riodiquement (Pi); depuis le temps �coul� entre le d�marrage et l'ach�vement ne doit pas d�passer un interval de temps maximal sp�cifi� par la conception du PID (Di) et en fonction de la vitesse du processeur, le code du PID n�cessite un certain temps (Ci).

Pi: P�riode de la tâche i.

Di: Temps limite pour la tâche i.

Ci: Temps de calcul maximal pour la tâche i.

Si le syst�me consiste en une seule tâche, alors, il n'y a pas de probl�mes de Temps R�el: soit le processeur peut ex�cuter la tâche dans le temps impartis soit il ne le peut pas. Au cas o� le processeur n'est pas assez rapide, on le remplace par un autre plus v�loce.

Le probl�me de Temps R�el apparaît quand le syst�me est constitu�s de plusieurs tâches et qu'il est n�cessaire de diviser la puissance du ou des processeurs entre elles. Ceci exclu toute utilisation d'un syst�me � temps partag� classique comme Linux. Bien sur, faut-il pr�ciser qu'il est inutile d' essayer d'�crire des programmes faisant appel au temps r�el sous Windows...? Un conseil bien meilleur est de n'�crire aucune sorte de programmes pour cette plateforme.

Tous les Syst�me Temps R�el ne sont pas identiques, ce n'est pas la même chose de commander un syst�me de freinage ABS d'une voiture, le syst�me d'injection de combustible d'un moteur d'avion ou la d�compression et la visualisation d'un fichier mpeg. Dans le premier et le second cas, un petit surcroit de temps d'ex�cution peut couter des vies humaine ou de graves pertes de mat�riel; dans le trosi�me, il y a simplement d�gradation de la qualit� du syst�me (l'image pourra rester fig�e et quelques portions perdues). Le premier type de syst�me est appel� Syst�me Temps R�el physique (Hard Real-Time Systems), et le second Syst�me Temps R�el logique (Soft Real-Time System). Nous concentrerons notre propos sur le premier type.

La conception d'un Syst�me Temps R�el passe par plusieurs phases: Premi�rement, on identifie la tâche � r�aliser et les contraintes temporelles qui doivent être satisfaites. Deuxi�mement le code est �crit.L Finallement le temps d'ex�cution de chaque tâche est mesur� et un test de rendez vous horaire est r�alis� pour v�rifier qu'aucune tâche ne d�passera son temps limite pendant le fonctionnement du syst�me. Le test de rendez vous horaire consiste � appliquer un certain nombre de tests � l'ensemble des tâches. Si elles passent ces tests, il sera alors possible de garantir qu'aucun temps limite ne sera d�pass�. Si aucontraire les tests ne sont pas concluants, il est n�cessaire de reprendre la conception depuis le d�but, en choisissant un processeur plus rapide ou en utilisant d'autres algorithmes pour impl�menter les tâches.

En r�sum�: Les tâches sont identifi�es par trois valeurs de temps : P , D et C. La raison d'être du syst�me est de garantir que toutes les tâches (dans toutes leurs configurations d'ex�cution) satisferont les temps limites. Pour garantir les temps d'ex�cution, le syst�me doit être pr�visible. Dire qu'un syst�me est Temps R�el ou que ce syst�me est pr�visible est pratiquement la même chose.

Quelle est la relation entre le syst�me d'exploitation et le Temps R�el ?

LA correction s�mantique de la r�ponse est de la responsabilit� du programmeur ettandis que la correction temporelle d�pend du syst�me d'exploitation (OS Pour Operating System en anglais. NDT).

L' O.S. doit supporter et organiser l'ex�cution de toutes les tâches. C'est aussi l'affaire de l'O.S. de g�rer toutes les interruptions. Il doit offrir:

  • L'algorithme de pr�vision
  • Les m�canismes de communication inter-processus (s�maphores, messages, etc.)
  • G�rer les interruptions.
  • Activer tâches � chacune de leur p�riode.

Contrairement aux O.S. normaux, le but d'un Syst�me d'Explotation Temps R�el est de minimiser la complexit�. IL n'est pas n�cessaire d'avoir un syst�me d'exploitation qui fait beaucoup de choses, ce qui est vraiment important est d'ex�cuter les tâches telles que pr�vues et rapidement.

Il vaut mieux un O.S. qui prend normalement 10 unit�s de temps pour accomplir un changement de contexte et qui en prend 12 dans les pires cas, qu'un autre OS qui en moyenne prend 3 unites de temps mais qui peu de temps en temps aller j'usqu'� 20.

On ne sera surpris de d�couvrir que les O.S. Temps R�el sont "plus lents" que les normaux. Dans certain cas, afin d'avoir des comportements pr�visibles, il pourra même être n�cessaire de d�sactiver la m�moire cache avec la perte de performances associ�e. La m�more cache, les processeurs avec des unit�s pipelines et les algorithme de pr�diction de sauts sont des ennemis clairement d�sign�s de la pr�visibilit� et par cons�quent des Syst�me Temps R�el.

Les Extensions POSIX Temps R�el.

POSIX sont les initiales de "Portable Operating System Interface" (Interface Portable pour Syst�mes d'Exploitation) (Quel peut être un O.S. sans X � la fin ?). C'est un standard qui tend � obtenir la poratbilit� des logiciels aux niveau du code source. En d'autres termes, un programme qui estdestin� � un syst�me d'exploitation qui respecte POSIX devrait se compiler et s'ex�cuter sous n'importe quel syst�me POSIX, même s'il provient d'un fabricant diff�rent. Le standard POSIX d�finit l'interface que l'O.S. doit offrir aux applications: le jeux d'appels syst�me. POSIX est d�velopp� par l'IEEE (Institute of Electrical and Electronic Engineering) et standardis� par ANSI (American National Standards Institute) et ISO (International Standards Organisation). Evidemment POSIX est bas� sur UNIX. La majorit� des O.S. (y compris Windows NT) tendent � être compatibles POSIX aux travers de leur diff�rentes versions.

DrawObject

Le travail sur la d�finition POSIX est divis� en plusieurs groupes de travail qui comptent dans leur rang des fabricants d'ordinateurs, des soci�t�s de logiciel, des fonctionnaires et des gourous en informatique. Chaque groupe sse charge de concevoir un aspect du syst�me d'exploitation. Par exemple, le groupe nomm� POSIX.4 s'occupe des aspects Temps R�el.

Les extension POSIX.4 -- renomm�es 1003.1b depuis 1993 -- autorisent l'usage d'un O.S. dans des situations Temps R�el. Bien sur la grande majorit� de ces extensions traitent de la gestion du temps et des priorit�s des processus. Il existe aussi des appels syst�mes pour faciliter la communication inter-processus.

Les extensions POSIX sont con�ues pour am�liorer le contrôle de la gestion des ressources de l'O.S..

Linux 2.0 implante beaucoup des extensions POSIX pour le Temps R�el... mais cet aspect de LInux est quelque chose que nous traiterons dans un prochain article. La Version 2.2, sera tr�s probablement compatible POSIX 1003.1b � 100%.

Linux Temps R�el

RT-Linux a �t� d�velopp� au D�partement d'Informatique de l'Institut des Mines et de Technologie de New Mexico par Victor Yodaiken et Michael Barabanov. Il fait partie du travail fourni par Michael pour son Master en informatique. La derni�re version disponible est la 0.6. Pour l'instant il n'est disponible que pour les architectures Intel.

RT-Linux r�soud le probl�me d'une fa�on radicallement diff�rente. Au lieu de modifier le noyau de Linux, pour le rendre pr�visible, il construit directement sur le processeur (i386) un petit noyau -- ind�pendant de celui de Linux -- avec un gestionnaire de tâches. Le noyau de Linux tourne au dessus de lui partageant le processeur avec les autres tâches Temps R�el. Linux partage alors le noyau avec d'autres tâches. Plus pr�cisement, Linux ets une tâche en arri�re plan et ne tourne que lorqu'aucune autre tâche Temps R�el n'est active.

Je pense que beaucoup de lecteurs seront perturb�s � ce point, peut être que beaucoup pensent que l'O.S. est tout puissant et qu'il n'est pas possible de le manipuler.

DrawObject

Il est même encore plus surprenant de savoir qu'il est possible d'installer ou de d�sinstaller le gestionnaire de tâches dynamiquement, car il est compil� comme un module.

Le code du noyau Linux (comme tout O.S.) d�sactive g�n�ralement les interruptions comme moyen de synchronisation ou pour implanter des sections critiques. S'il y a une inturruption de l'horloge pendant que Linux d�sactive les interruptions, elle reste bloqu�e et il y a par cons�quent il y a une grande impr�cision temporelle. RT-Linux implante une solution �l�gante: tous les appels � cli,sti et iret (appels asssemleur qui modifient l'�tat des interruptions) sont remplac�s par S_CLI, S_STI et S_IRET qui les �mulent. De la sorte, Linux ne peut jamais d�sactiver les interruptions.

Le gestionnaire de tâche par d�faut qui est livr� avec RT-Linux est pr�emptif, � priorit�s fixes et consid�re la tâche Linux comme celle de plus basse priorit�. Si les tâches Temps R�el consommes tout le temps du processeur, alors la tâche Linux n'aura plus de temps CPU affect� et pourra donner l'impression que le syst�me set arrêt�.

Avec RT-Linux nous n'avons pas seulement un Syst�me Temps R�el mais aussi un O.S. classique. On peut surfer sur le web en même temps que l'on interroge et commande un syst�me physique.

Installation de RT-Linux

Les fichiers de la distribution peuvent être trouv� �: http://luz.cs.nt.edu/~rtlinux.

Pour "transformer" un syst�me Linux en RT-Linux, il faut appliquer un patch aux sources du noyau et le recompiler. Voici la recette. Assumons que le fichier rtlinux-0.6-2.0.33.tgz est dans le r�pertoire /usr/src et qu'il a �t� extrait dans /usr/src/rtlinux-0.6. Assumons aussi que toutes les options pour le noyau ont �t� configur�e (make config), alors

# cd /usr/src/linux
# patch       -p1 <../rtlinux-0.6-2.0.33/kernel_path
# make dep; make clean; make zlilo; make modules; make modules_install
# reboot

Le nouveau noyau apparaît identique au noyau normal, toutefois il est d�j� prêt � se transformer en Syst�me Temps R�el. Dans le r�pertoire /usr/src/rtlinux-0.6-2.0.33/testing on trouvera divers programmes de d�monstration.

En plus des exemples qui sont fournis avec la distribution (dans le r�pertoire testing), on peut t�l�charger un autre exemple pr�par� par Oleg qui permet de cr�er un chronogramme d'ex�cution des tâches. Un fichier de cette d�mo est un gestionnaire de tâches avec des modifications qui permettent nons seulement de g�rer les tâches, mais aussi d'envoyer des informations concernant les d�cisions qu'il prend. Cette information est r�cup�r�e et stock�e dans un fichier qui peut être affich�e graphiquement apr�s. Le r�sultat montre dans quel ordre les diverses tâches ont �t� ex�cut�es et comment celles de plus hautes priorit�s pr�valent sur celles de plus basse priorit�. La tâche Linux n'est pas repr�sent�e.

Chaque tâche est repr�sent�e par un axe horizontal. Les rectangles repr�sentent les moments o� les tâches utilisent le processeur (� un instant donn�, seule une tâche peut être ex�cut�e car nôtre syst�me est mono-processeur).Dans cet exemple, le temps limite de chaque tâche est �gal � leur p�riode. Cette derni�re est repr�sent�e par un interval temporel repr�sent� par: ) pendant lequel la tâche doit être ex�cut�e. Les tâches de la partie sup�rieure ont les plus hautes priorit�s et sont capables de prendre la main sur d'autres comme cela arrive par exemple � l'instant 600.

L'avenir de RT-Linux

Il existe d�j� une version multi-processeurs de RT-Linux. Les services offerts sont intentionnellement minimaux, il n'est pas n�cessaire d'inclure des fonctions non strictement n�cessaires afin de garder un syst�me aussi pr�visible que possible. N�anmoins, il existe d�j� certaines extension qui permettent de travailler avec des s�maphores et de contrôler les tâches Temps R�el des processus Linux au travers de /proc/sys.

La cr�tion du manuel didacticiel pour RT-Linux a commenc� il y a quelques semaines.

Conclusions

Avant l'arriv�e de RT-Linux, beaucoup d'ing�nieurs qui voulaient utiliser les Syst�me Temps R�el �taient forc�s d'utiliser MS-DOS et de concevoir tous les pilotes n�cessaires, ou d'acheter un Syst�me Temps R�el (� des prix tr�s prohibitifs). Maintenant les d�veloppeurs ont un syst�me d'exploitation complet pour les applications Temps R�el sur le même syst�me que celui qu'ils vont utiliser. En fait, on peut même avoir plusieurs applications Temps R�el qui tournent en même temps que l'on surf sur le web sans probl�mes.

Notre prochain article de cette s�rie examinera plusieurs exemples d'applications Temps R�el et comment �crire nos propres applications Temps R�el.


Traduit par Jonh Perr  

 

© 1998 LinuxFocus
Ce site Web est maintenu par Miguel A Sepulveda.