Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet François Boisson
J'ai trouvé cette définition sur Google (cf ci dessous avec la source),
j'ai l'impression que chacun arrange la définition suivant ses besoins. En
gros, il faut que le temps de réponse soit prédictible avec certitude
quitte dans certains cas à ce que la réponse ne soit pas assurée. Il est
demandé que la réactivité du système et son taux d'informations traitées
soient constants. 
C'est le bazar dans les définition des systèmes temps réels on dirait mais
la notion est intéressante.

FB
PS: Pour l'horloge, il n'y aurait pas un raté dans l'étalonnage du CPU au
début tout simplement?

Définition vue:
Un système temps réel est un système
-> qui interagit avec un environnement externe qui lui-
même évolue avec le temps
-> qui réalise certaines fonctionnalités en relation avec
cet environnement
-> qui exploite des ressources limitées
 Systèmes en temps réel
Philippe Mabilleau Ing.
Fonctionnalité d'un système temps réel

Deux contraintes à vérifier pour qu 'un système temps
réel soit fonctionnel

Exactitude logique (
logical correctness
): sorties
adéquates en fonction des entrées, assurant le
comportement désiré pour le système suite à des
événements et aux données communiquées

Exactitude temporelle (
timeliness
): rencontre des
contraintes temporelles. Les sorties sont présentées
au bon moment

GEI 455 Systèmes en temps réel
Philippe Mabilleau Ing.
Niveaux de contraintes temporelles:

Souple
(soft)
: système dont la performance est
dégradée mais sans engendrer des conséquences
dramatiques si les contraintes temporelles ne sont pas
rencontrées

Sévère
(hard)
: système dont l'incapacité de rencontrer
les contraintes temporelles cause la faute du système

Ferme
(firm)
: contrainte sévère mais où une faible
probabilité de manquer les limites temporelles peut être
tolérée



Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet Le Sensei...
> La bonne valeur est 70m/s, soit 70cm/ms.

Euh, je me trompe peut-être, mais 70cm/ms != 70m/s
70m/s == 7000cm/s == 7cm/ms

Bref, ce thread (dont je n'ai même pas suivi le sujet...) m'a l'air
bourré de petites fautes de calcul, et on court au troll !!


pgpTlLqzE3foh.pgp
Description: PGP signature


Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet Yves Rutschle
On Fri, Nov 15, 2002 at 02:28:40PM +0100, Charles Goyard wrote:
> Ainsi parlait Olivier Rioland :
> > obstacle sur un TGV roulant à 250 km/h, 10 ms représente 40 m !
> 
> Euh... Non. Ton exemple donne du 4km/s, soit du 14400km/h. Imagine des
> pilotes de Grand Prix qui font un tour de circuit en 2 secondes :)

Attention: le TGV, il va vite; et il est silencieux (en
fait, le son du TGV n'arrivera que longtemps après votre
mort) :-)

/Y



Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet Yves Rutschle
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



Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet fabien . b . villard

>> OK, alors qu'est ce qui _est_ temps-réel ?
>Un système temps réel exécute une tâche en un temps connu et toujours le même.
>Ce qui n'est pas le cas avec un Unix "standard"... Et quand je dis "tâche",
>c'est au sens "processus", dans le noyau. Pas un calcul ou un programme qui
>est un ensemble de tâches multiples ! (bien qu'au final, ça puisse revenir au
>même...)

  En fait le besoin est de reagir a un evenement
exterieur asynchrone. Il faut donc pouvoir arreter
toute tache en cours pour traiter un evenement plus
prioritaire, et cette reaction doit etre immediate,
dans le referentiel de temps absolu, et non dans le
referentiel de temps d'un processus au sein d'une machine
multi-processus. La reaction ne peut etre dependante
du bon vouloir du scheduler, donc. Un peu comme si le
processus etait effectivement seul sur la machine. D'ou
la notion de "temps-reel" par rappport a "temps relatif".
La reaction elle-meme peut etre longue, ou courte, c'est
relatif. Mais elle doit traiter l'evenement avant qu'il
devienne obsolete, quelle que soit la notion d'obsolescence
dans le domaine traite.

  Quant a Linux preemptif depuis recemment il faut
preciser : Linux comme tous les unix est preemptif depuis
les origines. Par contre le noyau n'est preemptable que depuis
recemment, et seulement si on veut. Ca veut dire que certaines
operations du noyau qui jusqu'a present etaient jugees
atomiques et donc ininterruptibles, on ete declarees interruptibles
sous certaines conditions de conservation de l'atomicite. Ce
qui a necessite notamment la creation de verrous speciaux.
  A noter que le noyau OpenVMS est preemptable depuis belle
lurette.


  Fab.








*
Ce message et toutes les pieces jointes (ci-apres le "message") sont
confidentiels et etablis a l'intention exclusive de ses destinataires.
Toute utilisation ou diffusion non autorisee est interdite. 
Tout message electronique est susceptible d'alteration. 
La SOCIETE GENERALE et ses filiales declinent toute responsabilite au 
titre de ce message s'il a ete altere, deforme ou falsifie.

This message and any attachments (the "message") are confidential and
intended solely for the addressees.
Any unauthorised use or dissemination is prohibited. 
E-mails are susceptible to alteration.   
Neither SOCIETE GENERALE nor any of its subsidiaries or affiliates 
shall be liable for the message if altered, changed or falsified. 

*



Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet Charles Goyard
Ainsi parlait Olivier Rioland :
> obstacle sur un TGV roulant à 250 km/h, 10 ms représente 40 m !

Euh... Non. Ton exemple donne du 4km/s, soit du 14400km/h. Imagine des
pilotes de Grand Prix qui font un tour de circuit en 2 secondes :)

La bonne valeur est 70m/s, soit 70cm/ms.


-- 
Charles, en combi anti-G



Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet Olivier Rioland
En réponse à Didier Chalm <[EMAIL PROTECTED]>:

> 
> On Friday 15 November 2002 13:27, Georges Mariano wrote:
> 
> > OK, alors qu'est ce qui _est_ temps-réel ?
> 
> Ma définition personnelle à moi que j'ai :
> 
> Un système temps réel exécute une tâche en un temps connu et toujours le
> même.

Selon moi, c'est plutôt au niveau du temps de réponse :

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

Sous linux, ce temps est de l'ordre de 10 ms (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). Un temps plus faible n'est pas humainement perceptible mais 
peut avoir des conséquences physiques désastreuses (ex : pour la détection d'un 
obstacle sur un TGV roulant à 250 km/h, 10 ms représente 40 m ! S'il faut 
arrêter le train, on est souvent à 40 m près ...). Un temps de réponse trop bas 
pourrait être rassurant, mais ça diminue de façon notable les performances du 
micro-processeur.

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

Olivier



Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet Yves Rutschle
On Fri, Nov 15, 2002 at 01:27:50PM +0100, Georges Mariano wrote:
> OK, alors qu'est ce qui _est_ temps-réel ?

Vaste question :-)

Un système temps-réel "dur" (Hard real time) est un système
qui doit garantir un temps de réponse. S'il faut donner une
commande à ton ABS toutes les 50ms, il faut garantir que la
commande soit là. En général, ces systèmes sont nécessaires
pour tout ce qui bouge.

Le temps-réel "mou" (Soft real time) suit la même idée, mais
rater une réponse n'est pas fatal (Suivant les systèmes,
"rater" ne veut pas dire la même chose: pour certains, on
peut se permettre de "sauter" une sortie, pour d'autres on
peut se permettre d'arriver en retard).

Exemple du premier type: Tu décodes du MPEG que tu affiches
sur un écran. Idéalement, tu veux donner 25 trames par
secondes à l'écran. Si tu rates une trame, il est acceptable
de la sauter (et de répeter la dernière trame). Dans ce cas,
arriver en retard ne sert à rien: l'écran ne t'attend pas,
donc passé la limite de temps, on peut aussi bien laisser
tomber le décodage qu'on était en train de faire.

Exemple du second type: Un système de détection incendie
doit faire sonner les sirènes dans les 5s après qu'un
détecteur a detecté un feu. C'est la norme qui le dit. Mais
si tu le fais après 6s, le système marche quane même, et est
quand même utile (tu as une seconde de moins pour paniquer).
(Bon, et tu rates la certification de ton matériel, mais
c'est une autre histoire).

Il y a bien entendu des combinaisons entre tout ça: des
systèmes où certaines choses sont temps réel "dur" mais
d'autres non. D'où l'interêt de RTLinux ou RTAI: on fait le
temps-réel dur correctement (en dehors de Linux), et on
utilise Linux pour le reste (stocker des choses sur disque,
parler au réseau etc).

De façon génerale, les OS "normaux" (Linux, Windows etc) ne
sont pas temps-réel "dur"; on peut les utiliser pour du
temps-réel mou si on fait attention à avoir une charge
processeur connue et deterministe (Et même comme ça, c'est
pas idéal: quand tu fais un read() sur un fichier, tu ne
sais pas combien de temps ça va prendre, et il n'y a pas de
façon simple de dire "fait un read, mais laisse tomber si ça
prend plus de 500ms". On peut le faire en fork-ant avant de
faire le read, avec le deuxième process qui attend 500ms
puis interrompt le processus qui fait le read... c'est un
peu bordélique et pas efficace.) . Pour faire du temps-réel
dur, il faut utiliser d'autres noyaux tels que VxWorks (sans
doute le plus connu), eCos, RTLinux, Nucleus... En général,
ces OS ont un paramètre supplémentaire à leurs appels
systèmes: read( fd, buffer, size, timeout )...

Voilà voilà. J'espère avoir été raisonnablement clair :-)

/Y



Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet Didier Chalm
On Friday 15 November 2002 13:27, Georges Mariano wrote:

> OK, alors qu'est ce qui _est_ temps-réel ?

Ma définition personnelle à moi que j'ai :

Un système temps réel exécute une tâche en un temps connu et toujours le même.
Ce qui n'est pas le cas avec un Unix "standard"... Et quand je dis "tâche", 
c'est au sens "processus", dans le noyau. Pas un calcul ou un programme qui 
est un ensemble de tâches multiples ! (bien qu'au final, ça puisse revenir au 
même...)

Le débat est lancé ! ;-)

-- 
  [EMAIL PROTECTED]   EPSHOM
  Service Informatique   BREST - FRANCE



Re: [HS] Temps reel [Re: horloge a la bourre]

2002-11-15 Par sujet Georges Mariano
On Fri, 15 Nov 2002 12:11:02 +
Yves Rutschle <[EMAIL PROTECTED]> wrote:

> Ça améliore le temps de réaction du noyau, ça ne le rend pas
> temps-réel.

> sera aussi. Ce qui donnera de meilleurs temps de réponse,
> mais ne le rendra pas temps-réel.


OK, alors qu'est ce qui _est_ temps-réel ?

(pour ma culture générale ;-)

A+
-- 
mailto:[EMAIL PROTECTED] tel: (33) 03 20 43 84 06   
INRETS, 20 rue Élisée Reclus fax: (33) 03 20 43 83 59   
BP 317 -- 59666 Villeneuve d'Ascq   
http://www3.inrets.fr/estas/mariano