Linux, vrai temps réel ou pas ? - Débats - Linux et OS Alternatifs
Marsh Posté le 09-09-2005 à 19:52:12
linux de base n'est pas un OS temps réel
maintenant, il y a plusieurs projets pour le rendre temps réel qui utilisent chacun des approches différentes. Tu trouveras plus de détails sur kerneltrap ou lwn.net
maintenant, le temps réel, ce n'est pas que le système répond vite, c'est qu'il répond en un temps donné connu :
http://fr.wikipedia.org/wiki/Syst% [...] _r%C3%A9el
Marsh Posté le 09-09-2005 à 19:54:47
Linux n'est pas à l'origine temps réel, mais plusieurs projets existent et obtiennent des résultats probant puisque certains font leurs pains dessus [1].
[1] http://www.lynuxworks.com/
*grilled
Marsh Posté le 09-09-2005 à 20:11:16
In practice, the RT-Linux approach has proven to be very successful. Worst case interrupt latency on a 486/33Mhz PC measures well under 30 microseconds, close to the hardware limit |
http://www.linuxdevices.com/articles/AT3694406595.html ( et ca a été écrit en 97 )
Marsh Posté le 09-09-2005 à 20:15:17
Si nous testons cet exemple dans les conditions de charge du système LINUX standard du début de l'article, nous obtenons le résultat ci-dessous à l'oscilloscope. La mesure du jitter donne la valeur de 25.6 µs comparés aux 17.6 ms du noyau LINUX standard, ce qui correspond environ à un rapport 1000. |
http://www.enseirb.fr/~kadionik/em [...] time9.html
Marsh Posté le 09-09-2005 à 21:34:49
Salut,
Il est vrai que Linux n'est pas un "vrai" OS temps réel. Avec un noyau 2.4 classique (non patché), une interruption peut attendre 20ms avant d'être traitée. Si on le patch, avec le patch low latency d'Ingo Molnar par exemple, l'interruption est traité en général dans la milliseconde (au pire dans les 5 ms).
Le noyau 2.6 semble apporter pas mal de nouveautés au niveau du scheduler. Par exemple, on peut choisir sa politique de scheduling (par exemple un serveur de fichier utilisera une politique d'ordonnancement favorisant les accés disques). Le scheduler a à priori une complexité en O(1), ce qui veut dire que quel que soit la charge du système, le scheduling reste toujours aussi réactif.
Oliv'
Marsh Posté le 09-09-2005 à 21:44:26
vrai temps réel ou pas , dès le moment où tu as plusieurs processus, ils seront toujours intérrompus
edit: vendredy
Marsh Posté le 09-09-2005 à 21:55:30
Pas avec tous les OS. Par exemple sous OS 20, si t'as un processus de priorité supérieure à tous les autres... il peut, sous certaines conditions, bouffer 100% du temps CPU
Marsh Posté le 09-09-2005 à 22:01:40
0liv a écrit : Pas avec tous les OS. Par exemple sous OS 20, si t'as un processus de priorité supérieure à tous les autres... il peut, sous certaines conditions, bouffer 100% du temps CPU |
ça c'est une question d'ordonancement, il existe beaucoup de façons d'ordonancer
Marsh Posté le 09-09-2005 à 22:11:03
exact
tout ça pour dire que OS20 qui est un OS temps réel deviendra inefficace si on lui impose des charges de scheduling d'une station de travail
Marsh Posté le 10-09-2005 à 19:01:13
Le noyau comporte de moins en moins de zone non préemptible (grace entre autres à Montavista), il se rapproche donc du temps réel.
Si ça vous interesse, je vous conseil de regarder du coté de RTAI, c'est un patch qui rend Linux temps réel et qui permet de rivaliser sans problème avec VxWorks par exemple. Je peux vous donner plus d'info sur ce patch si vous voulez.
vw
Marsh Posté le 11-09-2005 à 10:36:36
Vu que j'ai reçu quelques questions en messages privés, je réponds ici.
RTAI ajoute au noyau un ordonnanceur temps réel à priorités fixes. Ce noyau auxiliaire traite directement les tâches temps réel et délègue les autres tâches au noyau LINUX, considéré comme la tâche de fond de plus faible priorité.
Quand une interuption est reçue par le système, RTAI regarde si une des tâches temps réel en a besoin, si ce n'est pas le cas, l'IT est redistribuée au noyau.
Cela implique que l'on a deux espaces dans lesquels on peut programmer :
- L'espace temps réel (équivalent à la programmation de driver dans le noyau), dans lequel il est facile de crasher le noyau.
- L'espace utilisateur, hors temps réel.
Il y a des canaux de communication entre les deux espaces.
RTAI offre cependant la possibilité de faire du temps réel dans l'espace utilisateur, il y a simplement un peu plus de temps de propagation car il y a plusieurs couches logiciels à traverser. L'avantage est qu'on dispose des protection de l'espace utilisateur et qu'il est plus compliqué de faire planter le noyau. On utilise donc l'espace utilisateur en debug et on déploi dans l'espace kernel temps réel.
Article à lire :
http://pficheux.free.fr/articles/l [...] e4_img.pdf
Marsh Posté le 11-09-2005 à 11:54:24
y'avais eu un linux mag sur le temps réel sous linuxil me semble, voir sur leur site
Marsh Posté le 11-09-2005 à 12:23:43
Effectivement. L'article que j'ai mis en lien est celui de Linux Mag sur le temps réel.
Marsh Posté le 21-09-2005 à 14:00:46
Juste pour compléter, il me semble que RTAI possède également un ordonnanceur Monotonic Rate et EDF
Marsh Posté le 09-09-2005 à 19:46:23
Bonjour a tous
J'ai entendu dire dans un autre forum qui traite d'un sujet complètement différent de l'informatique que Linux est un OS temps réel mou et encore a condition d'être patché.
Le terme de mou viens du fait que d'aprés l'auteur du post, un Linux ne répondrait a une interuption qu'en quelques ms alors que WindowsCE etant un OS temps réel dur répondrait dans les mêmes conditions en quelques dizaine de micro-secondes.
Qu'est-ce que vous en pensez ? Donnez moi des infos pour argumenter.
Je ne cherche pas a troller mais je ne connais pas du tout WindowsCE (qui je trouve n'est pas du tout convivial et qui plante régulièrement lors de synchro).
Yugo