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.
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.
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
|