Interview : Adeos, des noyaux dans le noyau
Posté par Vincent Caron (page perso, ). Modéré le 11 octobre 2004.
Vous avez probablement entendu parler de RTAI, alias "Linux Temps Réel"; mais saviez-vous qu'un noyau peut en cacher un autre ? Adeos permet d'héberger plusieurs noyaux sur un seul CPU et les faire coopérer : en général un noyau "temps réel dur" conçu sur mesure, et un noyau générique pour les tâches classiques (fichiers, réseau, etc). Mais ce que vous pouvez faire d'Adeos n'est limité que par votre imagination...
Une interview (en anglais) d'un développeur d'Adeos - Phlippe Gerum (francophone) - nous explique les tenants et aboutissants de son projet, tant du point de vue technique que politique.
Une interview (en anglais) d'un développeur d'Adeos - Phlippe Gerum (francophone) - nous explique les tenants et aboutissants de son projet, tant du point de vue technique que politique.
Interview de Philippe Gerum (1893 hits)
Projet Adeos (2593 hits)
RTAI (742 hits)
> Lire la dépêche (46 commentaires, moyenne: 3).
Vous avez demandé le commentaire #483949.




c'est quoi le temps réel ?
c'est quoi le temps réel ?
http://kobold.hd.free.fr/
[^]Re: c'est quoi le temps réel ?
Un système informatique est dit « Temps réel » s'il peut garantir un temps d'éxécution pour une opération donnée.
[^]Re: c'est quoi le temps réel ?
Le temps garanti n'a de valeur que s'il est assez faible bien-sûr.
Temps de l'ordre de la milliseconde exigé généralement.
Linux pré-emptif (pas du temps reel) reagit couramment en dessous de 10 millisecondes.
[^]Re: c'est quoi le temps réel ?
pas exactement.
En fait, c'est bien une histoire de garantie.
Un exemple simple.
Tu as ton xmms qui tourne. Il a besoin d'un certain temps CPU pour lire tes ogg.
Si xmms tournait en temps réél, le systeme lui permettrait d'avoir la proiorité pour faire son calcul et tu aurais toujours (moyenant problème matériel) de lire tes ogg sans coupure.
En pratique c'est vrai, mais il peux arriver que ca sacade un coup. C'est pas grave pour xmms si ca saute, mais en général, le temps réel, c'est surtout pour des application importante, genre garder le champs magnétique de ton train sans rail pour qu'il ne touche pas le sol. Une seul petite erreur peux etre fatal. Il faut donc que le systeme garantisse que l'opération sera calculer.
Je suis ptetre pas tres precis, vous pouvez soulever les trucs pas clair voire faux, bien sur ;-)
[^]Re: c'est quoi le temps réel ?
J'irai même plus loin!
Le temps réel C une garantie de temps d'execution d'une tache donnée pour une charge de système donnée!
Je mexplique :
- La garantie : qu'importe l'état du systeme, je suis sûr que ma tache sera exécutée au temps T défini
- le temps d'execution est aussi définie, le temps d'execution d'une tâche sera la même et inférieur à un temps t .
- La charge maximal du sytème aussi est aussi donnée, car même un système temps réel peut etre surchargé et la on peu plus dire qu'il est temps réel, C pour cela qu'il faut bien choisir définir la tâche du syteme pour le dimensionner.
En conclusion, il n'est pas necessaire d'avoir un gros system pour etre temps réel, mais un systeme insensible aux erreurs (matériels/logiciels tolérant aux pannes).
Dire qu'un systeme est temps réel sans C données cela ne veux rien dire, car tous systemes seraient temps réel.
J'ai même entendu pendant mes études dire que ça ne sert rien de développer en temps réel maintenant car les sytemes sont tellement rapides maintenant.
C faut! les ordinateurs actuels sont certes rapides mais il ne garantissent que mon processus s'executera à un temps t pendant un temps T.
[^]Re: c'est quoi le temps réel : Parlons Encyclo libre !
Quelques compléments d'information sur http://fr.wikipedia.org/wiki/Syst%C3%A8me_temps_r%C3%A9el(...)
[^]Re: c'est quoi le temps réel ?
J'ai entendu parler d'une installation temps réel où le temps de réponse admissible pouvait se compter en secondes. Exemple : quand le réservoir d'acide descend au dessous des 2/10e de sa capacité, ajouter un wagon d'acide dans le réservoir. Dans ce cas c'est encore du temps réeel. Le fonctionnement est continu et le temps de réponse est long mais garanti. Si ça ne fonctionne pas, la papeterie s'arrête.
[^]Re: c'est quoi le temps réel ?
Les notions de "temps réel" et de "vitesse" sont différentes!!!
Si ton système fait du contrôle commande sur une grosse chaudière, avec une constante de temps importante, les contraintes de temps se compterons en minutes!!
Après dans la pratique, lorsqu'on parle d'exécutif temps réel, on veut qu'il puisse réagir vite. Pour des applis vraiment rapides, il faudra surement un exécutif spécialisé.
On distingue généralement le temps réel "mou" où des échéances peuvent être loupées (pour xmms par exemple) du temps réel "dur" où il n'est pas possible de dépasser des échéances (le logiciel d'un ABS par ex). C'est dans ce dernier cas qu'il faut un OS très réactif.
[^]Re: c'est quoi le temps réel ?
> C'est dans ce dernier cas qu'il faut un OS très réactif.
Ou pas d'OS du tout. Bref, un logiciel qui ne fonctionne pas en mode protégé et qui ordonne directement au processeur et à la mémoire.
Qui a dit exécutable DOS ? ;)
[^]Re: c'est quoi le temps réel ?
Si DOS fonctionne sur une architecture temps-reel p'tetre.
Hors si tu veux un temps de reponse garanti, il faut que ton hard te reponde dans un temps garanti. Ce qui n'est pas le cas. Certains pensent que faire du temps reel "dur" sur un PC, c'est bien pour la pedagogie, mais pas pour une implementation reelle.
[^]Re: c'est quoi le temps réel ?
Le PC avec du hard pas déterministe ?! Tu penses à quoi exactement ?
[^]Re: c'est quoi le temps réel ?
Tout à fait d'accord, on peut avoir des applis temps réel avec des contraintes assez longues, mais toujours impératives.
Il y a aussi parfois des contraintes de temps d'éxécution minimum. Exemple : si l'airbag se déclenche trop tôt, il sera moins efficace.
On parle aussi souvent d' "ordonnanceur déterministe". Pas forcément plus rapide qu'un autre, mais son temps d'ordonnancement est prévisible, son délai de réponse à une interruption aussi.
La loi de Moore aidant, il est de moins en moins difficile de répondre à des contraintes temps réel moyennement rapides, et les systèmes non temps-réel sont aujourd'hui courants dans l'audiovisuel (lisez : multimedia) alors que c'était impensable il y a qq années.
On conjugue souvent temps-réel et embarqué (bien que ce ne soit pas forcément lié), ce qui amène d'autres contraintes : faible taille mémoire, faible consommation et échauffement donc faible fréquence CPU, faible encombrement ...
Linux est (surtout depuis la version 2.6) assez bien placé pour le temps réel "mou", et sa modularité fait le bonheur des développeurs de systèmes embarqués. Les extensions comme RTAI, MontaVista ou RTLinux ouvrent les portes du temps-réel "dur". Il suffit de jeter un coup d'½il au sondage annuel de LinuxDevices.com (http://www.linuxdevices.com/cgi-bin/survey/survey.cgi?view=archive&(...) ), on voit une nette progression de Linux à la place des "OS maison" et des softs sous DOS !
[^]Re: c'est quoi le temps réel ?
Le temps garanti n'a de valeur que s'il est assez faible bien-sûr.
Je trouve que la notion "assez faible" est trop vague pour être pertinent comme critère. Suivant les contextes on peut avoir des contraintes de temps de traitement qui s'étalent sur des échelles variées.
[^]Re: c'est quoi le temps réel ?
Je trouve que la notion "assez faible" est trop vague pour être pertinent
C'est pour cela que je donne des ordres de grandeur dans la phrase d'apres.
Ce que je veux dire, c'est que si tu veux une garantie d'une seconde, ya pas vraiment besoin d'un systeme temps reel dur. Un systeme preemptif bien configuré suffit.
Les enjeux du temps reel sont sur des reactions très rapide. Biensûr que dans la notion de temps reel c'est la garantie qui compte. Linux ne garantie rien, mais dans la pratique il reagit suffisamment. Par contre si tu veux de la milliseconde, il faut changer de principe.
Et je suis tout à fait d'accord avec les commentaires prescedents
[^]Re: c'est quoi le temps réel ?
MMmmh, garantir une seconde "dans la plupart des cas", c'est effectivement du ressort du Linux moyen. Garantir une seconde "dans tous les cas" (le seul intérêt de la garantie, finalement), c'est déjà beaucoup plus siouxe. Arriver à rendre un Linux plus réactif du tout, c'est encore faisable, il me semble.
[^]Re: c'est quoi le temps réel ?
Non tu n'as pas compris.
Tu peux avoir du temps réel avec des ordres de temps d'une heure ! Relis certains des messages plus haut.
Les enjeux du temps réel ne sont pas des "réactions très rapides". Il s'agit de prévoir ce que va faire le système, dans quel ordre, et ce sans faute.
Je connais un système où les concepteurs écrivent les ordonnancements à l'avance à l'aide d'un langage spécifique, décrivent les chronogrammes avec le temps alloué à chaque tâche et dans quel ordre (oui ils connaissent chaque tâche qui va tourner, c'est pas un desktop, hein), et là il n'y a plus de place pour le hasard. On est en mesure de GARANTIR ce qui se passe.
Ce système est développé par une équipe du CEA, j'ai fait un stage dans cette équipe (mais au sein d'un autre projet) et est utilisé sur des systèmes de grues par exemple, pour éviter que plusieurs grues ne se rentrent dedans.
[^]Re: c'est quoi le temps réel ?
Un système temps réel : etre dans une certaine fenetre temporelle.
Contrainte de une semaine : exemple, tu sors d'un cours hebdomadaire à 18h, et ton contrainte est d'etre la à 14H la semaine suivante sinon tu te fais jeter par le prof...
[+] [^]Re: c'est quoi le temps réel ?
Pour faire trés simple le temps réel est au os ce que la QoS est aux réseaux. ;-)
[^]Re: c'est quoi le temps réel ?
En fait un OS temps réel garantit plutôt que ton thread sera dispatché au moins une fois dans un temps donné.
[^]Re: c'est quoi le temps réel ?
Sans vouloir contredire toute la conversation précédente, je voudrais apporter mes deux centimes :
Les temps réel, c'est quand c'est le temps du monde réel qui donne la cadence et que c'est au logiciel de suivre. On trouve des problématiques de temps réel dans de nombreuses applications (webcam, contrôle industriel, logiciel embarqué...) et à des vitesses variées (cf les wagons d'acide).
Tout le contraire de nos PC de bureau qui peuvent ramer quand ils veulent et nous forcer à attendre...
[^]Re: c'est quoi le temps réel ?
pas mal cette définition "à l'envers" :) C'est plus clair que de parler de temps pire cas garantie.