On Fri, Nov 15, 2002 at 02:08:28PM +0100, Olivier Rioland wrote: > Selon moi, c'est plutôt au niveau du temps de réponse :
Pas mal, mais beaucoup trop vague. > Prenons le cas où un processus A est en train d'être > exécuter par la machine (une tâche de fond). Un événement > extérieur intervient devant lancer un processus B. Alors > il faut que le processus A cède la place au processus B en > un temps maximum connu (généralement une centaine de > micro-secondes, parfois moins) avec une tolérance minimum > (ex : le temps d'attente est supérieur à 1 ms dans > seulement 2% des cas). Non; si ton ABS fait un cycle toutes les 40us, le temps d'attente ne doit jamais être supérieur à 40us. Si dans 2% des cas (500 fois par secondes!) tu es à 1ms, il ne va pas falloir longtemps pour que tu t'arrêtes dans un mur. En fait, ton exemple est exactement l'opposé du temps réel: dans tout système Linux, quand j'appuie sur ma souris, je m'attend à ce que le click soit pris en compte dans les 50ms. Dans 5% des cas, ça peut prendre 500ms. Une fois par mois, ça prend plusieurs seconde (pasque je suis en train de swapper ou qqch dans le genre). Et dans le cas géneral, je n'ai pas de limite supérieure de temps. Donc, le "temps maximum" doit être effectivement connu, mais nettement plus précisément que ça... et dans le cas de l'ABS (ou du missile), le temps maximum doit être *garanti*. (Incidemment, il n'y a pas de temps de réponse "généralement" accepté à 100 micro-secondes: ça dépend entièrement de ce que tu fais). > Sous linux, ce temps est de l'ordre de 10 ms Comment tu mesures? La dernière fois que j'ai mesuré ça, j'avais un process qui attendait un signal sur une entrée d'interruption; quand le process se reveillait, il changeait l'état d'une sortie. Entre l'activation de l'entrée et le changement de la sortie, j'ai mesuré 100uS. Sur un strong-arm à 220MHz, donc pas une bête de course. > (correspondant à la fréquence moyenne d'arrivée d'infos de > la part d'un utilisateur humain quand il tape au clavier > très vite). Quel rapport entre la vitesse de frappe et le temps de réponse du système??!? Si je tape plus vite, il répond plus vite? Je pense que tu confonds des choses qui n'ont rien à voir, ou alors tu n'es pas clair. > Des OS temps réel existent pour plateforme intel, comme > par exemple QNX, mais ils sont chers. L'idée de proposer > un système temps réel basé sur le noyau Linux est donc > plutôt intéressante (je ne connais cependant pas de cas > concrets où ça a été utilisé). En général, pour faire du temps réel, il vaut mieux ne pas utiliser une plateforme Intel (basé sur *86), car l'architecture rend l'evaluation du temps de réponse presque impossible (les instructions ne prennent pas toutes le même temps d'execution; certaines peuvent durer des éternités quand on commence à faire des rep; si je me souviens bien, toutes les interruptions n'arrivent pas à la même vitesse non plus). Cela dit, eCos par exemple est gratuit, se trouve qq part sur www.redhat.com (pas taper -- RedHat fait aussi de très bonnes choses dans le domaine de l'embarqué, c'est juste leur distribution qui n'est pas très bonne ;-) ). /Y