temps reel en java

temps reel en java - Java - Programmation

Marsh Posté le 22-02-2005 à 08:53:36    

Bonjour à tous !
 
j'aimerai savoir s'il est possible de faire du temps réel en java avec des sémaphores par exemple.  
Quelqu'un connait des truc a ce sujet ou bien un site sympa ?
merci d'avance

Reply

Marsh Posté le 22-02-2005 à 08:53:36   

Reply

Marsh Posté le 22-02-2005 à 09:07:51    

c'est pas possible de faire du temps réel en java

Reply

Marsh Posté le 22-02-2005 à 09:47:49    

vraiment sur que c'est pas possible ?

Reply

Marsh Posté le 22-02-2005 à 09:58:34    

schmur > J2ME possède un profil temps réel, J2SE ET J2EE, c'est niet de chez niet.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 22-02-2005 à 10:38:11    

ok merci
faut faire les truc soit meme alors

Reply

Marsh Posté le 22-02-2005 à 10:41:38    

non, va voir la doc de J2ME, le profil temps réel doit y être décrit.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 22-02-2005 à 11:34:16    

connais pas j2me mais je vais m'y plonger dedans
merci

Reply

Marsh Posté le 22-02-2005 à 12:09:41    

Spoiler :

(vous entendez quoi par temps réel? /o\)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 23-02-2005 à 09:13:40    

-- > un programme dont "l'horloge de vie" est claquée sur l'horloge du mur.
 
Dans la réalité, il faut qu'on puisse borner le temps d'exécution de chaque étape du programme par un nombre en rapprot avec ce qu'on fait dans la vraie vie.
 
Par exemple, en robotique, il faut pouvoir piloter un bras de robos finement, on prendra autour de la miliseconde. En fondrie, le pilotage de four à arc se fait à 2-3 min (bien que le temps de réaction réel du four soit de l'ordre de 2 heures).
 
En général, il s'agit du temps de réaction entre le moment où le programme reçoit une info et le moment où il émet des ordres issus de cette info.


Message édité par nraynaud le 23-02-2005 à 09:13:53

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 23-02-2005 à 09:37:08    

par contre j'ai pas bien compris le rapport dans le post initial entre temps réel et semaphore ... c'est bien de la prog temps réel qe tu veux shmur ? t'es sûr que tu confonds pas avec de la prog parallèle ?


Message édité par benou le 23-02-2005 à 09:37:50
Reply

Marsh Posté le 23-02-2005 à 09:37:08   

Reply

Marsh Posté le 23-02-2005 à 09:51:42    

benou > parce qu'on fait souvent de la synchronisation de tâches en temps réel, et que c'est trop la merde de respecter le planning et de partager les ressources (ordonnanceurs de 40 000 types différents, systèmes pour pas perdre sa priorité etc.).


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 23-02-2005 à 10:12:48    

nraynaud a écrit :

benou > parce qu'on fait souvent de la synchronisation de tâches en temps réel, et que c'est trop la merde de respecter le planning et de partager les ressources (ordonnanceurs de 40 000 types différents, systèmes pour pas perdre sa priorité etc.).


c'est un peu chinois pour moi, j'ai jamais fait de prog tps réel ... mais merci pour l'explication


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 23-02-2005 à 10:15:38    

benou a écrit :

j'ai jamais fait de prog tps réel


moi non plus, mais j'ai vaguement survolé les cours.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 23-02-2005 à 14:02:21    

nraynaud a écrit :

moi non plus, mais j'ai vaguement survolé les cours.


moi j'ai même pas eu de cours la dessus  :sweat:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 23-02-2005 à 14:07:49    

apparament dans java 1.5 il y a des classes semaphores.
je vais les etudier un peu

Reply

Marsh Posté le 25-02-2005 à 15:27:53    

Taz a écrit :

c'est pas possible de faire du temps réel en java


C'est quoi la définition du temps réel ?
 
Un système temps réel est un system qui analyse son environnement en continue et apporte des réponses suivant les résultats des observations.
 
Si on se borne à cette définition : JAVA permet de faire du temps réel puisqu'il possède des boucles(while, for, etc.....) et qu'il implémente un système de threads qui permet de faire plusieurs observations du système.
 
Le seule bémole serait la granularité du language, mais à ce moment là il a des questions spécifiques aux projets entrepris qu'il faut se poser :
Ai-je besoin de scruter mon système tous les 5 µ secondes, pour répondre aux besoins ?
Les gains de productivité dus à l'utilisation de JAVA(Phases de tests moins longues, durée des projets raccourcis....) ne compensent-ils pas cette faible granularité ?

Reply

Marsh Posté le 25-02-2005 à 16:15:41    

non. du temps réel c'est que tu observes et contrôle un procédé à une vitesse adaptée et que ton système d'information est capabel de respecter les contraintes temporelles sans jamais faillir. Avec Java tu ne peux pas, pour la simple et bonne raison que tu ne peux pas borner le délai de réaction. Borner strictement. Imagine ce qui se passe si le GC se déclenche au moment où tu dois prendre la décision de couper l'alimentation d'un robot parce qu'une anomalie a été détectée ? si tu prends 5ms de retard, ça peut être l'accident.

Reply

Marsh Posté le 25-02-2005 à 16:31:00    

tiens, un nouvel expert émerge.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 25-02-2005 à 17:13:41    

Taz a écrit :

non. du temps réel c'est que tu observes et contrôle un procédé à une vitesse adaptée et que ton système d'information est capabel de respecter les contraintes temporelles sans jamais faillir. Avec Java tu ne peux pas, pour la simple et bonne raison que tu ne peux pas borner le délai de réaction. Borner strictement. Imagine ce qui se passe si le GC se déclenche au moment où tu dois prendre la décision de couper l'alimentation d'un robot parce qu'une anomalie a été détectée ? si tu prends 5ms de retard, ça peut être l'accident.


 
5ms c'est géré par JAVA.
Java ne gère plus à partir de la picron seconde.
Je suis vraiment curieux de savoir combien de projet nécéssitent une précision supérieure à la picron seconde.


Message édité par EExtasEE le 25-02-2005 à 17:17:47
Reply

Marsh Posté le 25-02-2005 à 17:15:05    

the real moins moins a écrit :

tiens, un nouvel expert émerge.


Qui ça moi ?  :jap:  

Reply

Marsh Posté le 25-02-2005 à 17:19:12    

c'est plutot EExtasEE qui a raison
RT n'a rien a voir avec une reponse dans un temps defini (d'ailleurs c'est une des grosses pieges du RT)
il s'agit de pouvoir assure la bonne reponse lors de l'evenement qui la demande et pas d'assurer que ca arrive dans grand max x m ou µ secondes

Reply

Marsh Posté le 25-02-2005 à 17:28:08    

j'adore les multis qui surgissent le vendredi.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 25-02-2005 à 17:32:02    

beemer a écrit :

c'est plutot EExtasEE qui a raison
RT n'a rien a voir avec une reponse dans un temps defini (d'ailleurs c'est une des grosses pieges du RT)
il s'agit de pouvoir assure la bonne reponse lors de l'evenement qui la demande et pas d'assurer que ca arrive dans grand max x m ou µ secondes


Merci,
d'ailleur en lisant les autres réponses au thread, j'ai vu que J2Me avait plus un profile RT que J2EE...... :lol:  
Une fois que vous avez lu ma réponse précédente, vous savez désormais que le RT ne dépend pas de l'API(Jdk) utilisée.

Reply

Marsh Posté le 25-02-2005 à 17:33:46    

nraynaud a écrit :

j'adore les multis qui surgissent le vendredi.


Multis? :heink:  

Reply

Marsh Posté le 25-02-2005 à 17:37:37    

bon le boulet, il va falloir dégager maintenant. y'a des gens qui pourraient se mettre à croire ce que tu dis.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 25-02-2005 à 17:40:44    

nraynaud a écrit :

bon le boulet, il va falloir dégager maintenant. y'a des gens qui pourraient se mettre à croire ce que tu dis.


Pardon ?

Reply

Marsh Posté le 25-02-2005 à 17:45:28    

Citation :

Un système est dit temps-réel s'il est capable de répondre à temps et tout le temps à un événement extérieur dans un intervalle temporel défini. Dans un système temps-réel, aucun dépassement du temps d'intervalle défini n'est acceptable car les conséquences d'un dysfonctionnement peuvent être dramatiques. Par exemple, la surchauffe d'un réacteur nucléaire peut entraîner de graves conséquences si il n'est pas détecté dans le temps défini. Cependant, un système temps-réel n'est pas obligatoirement un système rapide. Linux prouve qu'il peut être un système d'exploitation efficace et sûr dans ce domaine.


http://sic.epfl.ch/SA/publications [...] ge9ag.html
 
et concernant java
https://rtsj.dev.java.net/
et c'est pas le seul site traitant ca


Message édité par beemer le 25-02-2005 à 17:49:35
Reply

Marsh Posté le 25-02-2005 à 17:50:26    

allez Norbert manges un danny ça ira mieux

Reply

Marsh Posté le 25-02-2005 à 17:51:28    

1) la définition, je l'ai filé il y a 2 jours, exemples à l'appui
2) je vois pas le rapport avec linux
3) ça ne fait pas de java J2SE un truc temps-réel, même pour un four à arc.
 
 


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 25-02-2005 à 17:54:07    

arf
ce que tu comprends pas c'est que RT c'est quasi indépendant du language ou de l'API, donc que ce soir J2SE, J2Me, J2EE ou MIDP c'est pareil, c'est INDEPENDANT

Reply

Marsh Posté le 25-02-2005 à 17:56:11    

nraynaud a écrit :

1) la définition, je l'ai filé il y a 2 jours, exemples à l'appui
2) je vois pas le rapport avec linux
3) ça ne fait pas de java J2SE un truc temps-réel, même pour un four à arc.


1) et alors? j'ai pas vu ta definition ni le topic en question
2) aucun rapport mis a part le fait qu'il y a des gens qui pensent pouvoir faire du RT sous linux meme si c'est pas un os RT. mais le but de mon lien c'etait de donner une source a la definition tres pertinente que j'ai cite  
3) si tu le dis... t'as forcement raison, les autres boulets qui essaie de specifier ca font forcementfausse route  :whistle:  

Reply

Marsh Posté le 25-02-2005 à 17:56:12    

EExtasEE a écrit :

arf
ce que tu comprends pas c'est que RT c'est quasi indépendant du language ou de l'API, donc que ce soir J2SE, J2Me, J2EE ou MIDP c'est pareil, c'est INDEPENDANT


je parle de la VM.
 
Je vais être franc avec toi : tu n'as exactement *rien* à m'apprendre sur le temps réel.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 25-02-2005 à 17:58:46    

beemer a écrit :

1) et alors? j'ai pas vu ta definition ni le topic en question
2) aucun rapport mis a part le fait qu'il y a des gens qui pensent pouvoir faire du RT sous linux meme si c'est pas un os RT. mais le but de mon lien c'etait de donner une source a la definition tres pertinente que j'ai cite  
3) si tu le dis... t'as forcement raison, les autres boulets qui essaie de specifier ca font forcementfausse route  :whistle:


1) elle est dans le topic, en réponse à la question de --
2) j'en ai rien à foutre
3) s'ils sortent une spec différente, c'est bien parce que l'actuelle ne l'est pas.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 25-02-2005 à 17:59:28    

nraynaud a écrit :


Je vais être franc avec toi : tu n'as exactement *rien* à m'apprendre sur le temps réel.


c'est peut etre vrai, mais c'est pas pour autant que tu donnes l'impression d'avoir compris le but et la philosophie temps reel :D
 

Reply

Marsh Posté le 25-02-2005 à 18:00:53    

nraynaud a écrit :

je parle de la VM.
 
Je vais être franc avec toi : tu n'as exactement *rien* à m'apprendre sur le temps réel.


 
lol ah bon alors je dois surement faire erreur, si tu est modo tu peux effacer toutes les conneries que j'ai dites.
 
sorry for disturbing

Reply

Marsh Posté le 03-03-2005 à 17:30:41    

Je me permet d'ajouter ma reponse a ce flame-thread juste pour preciser un petit point qui a mon avis est a la base de la grande incomprehension qui regne ici...
 
En fait, j'ai remarque que le terme Temps Reel n'avait pas la meme signification d'un point de vue industriel que d'un point de vue 'service'.
Je m'explique; la veritable (au sens academique) definition de RT est bien celle donnee par nraynaud, a savoir
"Dans la réalité, il faut qu'on puisse borner le temps d'exécution de chaque étape du programme par un nombre en rapprot avec ce qu'on fait dans la vraie vie"
Ce qui signifie en gros qu'il faut que l'on soit en mesure de garantir un temps de reaction a une action specifique quelque soit le contexte.
En ce sens, pour faire de la programmation temps reel, il faut imperativement un systeme d'exploitation temps reel (windows ne l'est pas, certains linux s'en approchent) et des applications concues pour.
En ce sens, le java n'est absolument pas temps reel car il est impossible de garantir le temps d'execution d'une routine et ce notament a cause de la machine virtuelle et de son garbage collector.
 
Seulement voila, depuis quelques temps, j'ai entendu de nombreuses personnes issues de societes de service me parler 'temps reel' pour du java ou autre... En fait pour de nombreuses personnes, 'temps reel' se limite a du multithread/multiprocessus, bref des techniques de simulation de RT.
Comme pour ces personnes ca semble est une definition courrante, j'admet qu'on utilise ca aussi. En ce sens donc, Java est 'presque' temps reel. J'imagine que c'est de cette approche que EExtasEE nous parlait.
 
Maintenant, si on reste rigoureux c'est nraynaud qui avait juste...

Reply

Marsh Posté le 03-03-2005 à 17:41:51    

:jap:
 
 
 
 

mordicator a écrit :

de nombreuses personnes issues de societes de service


ce qui aide à confirmer des généralités sur ces gens là


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-03-2005 à 18:17:26    

mordicator a écrit :

Je me permet d'ajouter ma reponse a ce flame-thread juste pour preciser un petit point qui a mon avis est a la base de la grande incomprehension qui regne ici...
 
En fait, j'ai remarque que le terme Temps Reel n'avait pas la meme signification d'un point de vue industriel que d'un point de vue 'service'.
Je m'explique; la veritable (au sens academique) definition de RT est bien celle donnee par nraynaud, a savoir
"Dans la réalité, il faut qu'on puisse borner le temps d'exécution de chaque étape du programme par un nombre en rapprot avec ce qu'on fait dans la vraie vie"
Ce qui signifie en gros qu'il faut que l'on soit en mesure de garantir un temps de reaction a une action specifique quelque soit le contexte.
En ce sens, pour faire de la programmation temps reel, il faut imperativement un systeme d'exploitation temps reel (windows ne l'est pas, certains linux s'en approchent) et des applications concues pour.
En ce sens, le java n'est absolument pas temps reel car il est impossible de garantir le temps d'execution d'une routine et ce notament a cause de la machine virtuelle et de son garbage collector.
 
Seulement voila, depuis quelques temps, j'ai entendu de nombreuses personnes issues de societes de service me parler 'temps reel' pour du java ou autre... En fait pour de nombreuses personnes, 'temps reel' se limite a du multithread/multiprocessus, bref des techniques de simulation de RT.
Comme pour ces personnes ca semble est une definition courrante, j'admet qu'on utilise ca aussi. En ce sens donc, Java est 'presque' temps reel. J'imagine que c'est de cette approche que EExtasEE nous parlait.
 
Maintenant, si on reste rigoureux c'est nraynaud qui avait juste...


 
Point de vue industrielle, une application est temps reel quand elle garantie que tous les traitements d'entrée sont pris suffisement rapidement en compte pour avoir du sens, et que les resultats de sortie sont aussi calculés suffisament rapidement pour avoir du sens.
 
Apres, le "suffisament" est a definir suivant les contraintes du projet.
A priori on peut faire du temps reel avec Java, mais il ne faudra pas esperer pouvoir placer des contraintes tres fortes.  
 
nota: ca peut en effet dependre de la VM, et de l'algo du Garbage Collector.

Reply

Marsh Posté le 03-03-2005 à 18:19:13    

pourquoi j'ai un drapeau bleu sur ce topic ? [:heink]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-03-2005 à 19:37:14    

slvn a écrit :


Apres, le "suffisament" est a definir suivant les contraintes du projet.
A priori on peut faire du temps reel avec Java, mais il ne faudra pas esperer pouvoir placer des contraintes tres fortes.  
 
nota: ca peut en effet dependre de la VM, et de l'algo du Garbage Collector.

:jap:  

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed