5.FreshMinutes.IT – Java & IT

5 minutes pour consolider ses connaissances en Java et dans les Nouvelles Technos.
  • Accueil
  • À propos
  • Contact, Twitter, Tumblr & Buzz

Java Real Time – Faire du temps réel avec Java

Eric Vialle | Dimanche 1 juin 2008 | 1:55


Montre pour Java Temps RéelLe temps réel est utilisé dans de nombreux domaines, essentiellement dans les milieux où l’informatique doit se faire oublier: les telecoms, la finance, l’industrie, l’automobile, l’aéronautique… Un système temps réel a des contraintes de temps d’exécution, il doit délivrer des résultats dans un temps imposé. Les technologies temps réel sont l’apanage des langages bas niveau, tel que le C et le C++, Mais Java peut se faire une place au soleil. Nous allons voir qu’est ce permet de faire le Java Temps Réel, mais aussi comment l’utiliser.

Que fait le Java RTS ?

Communication Asynchrones

On distingue deux sortes de communications asynchrones:

  • Asynchronous event handling: le developpeur peut planifier les réponses aux évènements externes à la JVM.
  • Asynchronous transfer of control: fournit au développeur une manière pour un thread d’interrompre un autre thread de façon sécurisée.

Une horloge suisse

La précision de l’horloge est accrue. La JVM vous fournit une précision à la nanoseconde (10^-9 seconde) et non milliseconde (10^-3 seconde) comme avec les JVM classiques.

Accés direct en mémoire

Il est possible d’accéder directement à la mémoire physique, ce qui le rend semblable à J2ME. Il est possible de créer des pilotes de périphériques écrit en Java pur.

Gestion de la mémoire

Le Garbage Collector efface les objets qui ne seront plus utilisés afin de libérer de la mémoire. Il se déclenche manuellement ou bien souvent à l’improviste: ce qui peut gener les performances de votre système.

Il ya deux nouveaux types de zones mémoire, permettant de maitriser les appels du Garbage Collector:

  • javax.realtime.ImmortalMemory: les objets dans cette mémoire ne seront jamais effacés par le Garbage Collector. Ils seront effacés à la fin de l’exécution du programme.
  • javax.realtime.ScopedMemory: les objets créés dans un process particulier ne seront effacés que lorsque ce process aura quitté la section où les objets ont été créé.

Des Threads temps réel

Avec une JVM classique, vos threads héritent de la classe java.lang.Thread. Il existe avec les JVM RTS, deux autres sortes de Thread. De nouveaus types de threads ont été introduits.

  • javax.realtime.RealtimeThread. Ce thread hérite de la classe Thread. Cette classe permet d’acceder à des services temps réels tel que le transfert asynchrone de contrôle, mémoire non-heap, et les services avancés de planification
  • javax.realtime.NoHeapRealtimeThread. Ce thread hérite de la classe RealTimeThread. Il a pour spécificité de ne jamais être interrompu par le Garbage Collector.

Comment le mettre en œuvre ?

Pour faire du temps réel avec Java, il vous faut une JVM respectant les spécifications Java RTS, autant dire que ce n’est pas la JVM de base. Cette version, basée sur J2SE 5 est payante! Vous pouvez néanmoins obtenir une version d’essai.

Il existe aussi une excellente JVM temps réels réalisée par BEA: JRockit. Cette JVM est dans certains plus performants que la JVM de base. Elle est utilisée dans certaines applications militaires.

Les JVM temps réels doivent avoir un système d’exploitation sous jacent. Oubliez Windows et votre Ubuntu de base, vous devez avoir un système d’exploitation temps réel. Sun supporte officiellement deux OS temps réels:

  • Sun Solaris (x86 et SPARC)
  • Linux RTAI, dont les distributions SUSE Linux Enterprise Real Time 10 et Red Hat Enterprise MRG 1.0

Sources:

  • Introduction au Java Temps Réel
  • Java RTS sur le site de Sun
  • Cours d’informatique sur les systèmes temps réels


Catégories
J2SE, Java
Tags
Garbage Collector, Real Time, rts, temps réel
Flux rss des commentaires
Flux rss des commentaires
Trackback
Trackback

« Sécuriser ses applications Web Les Présentations de JavaOne 2008 disponibles »

4 Responses to “Java Real Time – Faire du temps réel avec Java”

  1. AsTeR dit :
    Dimanche 1 juin 2008 à 10:42

    Blog très interressant, je pense que je vais suivre un peu l’actualité technique ici maintenant.

    Est-ce que cette JVM est dévelopée par sun ?

  2. Eric dit :
    Dimanche 1 juin 2008 à 10:53

    Merci Aster!

    Cette JVM RTS est développée par Sun.
    Concernant JRockit, elle est développée par BEA (qui appartient à Oracle).

    Ces deux JVM sont payantes.

    Il n’existe pas à ma connaissance de moyen de faire du temps réel gratuitement, et encore moins respectant l’esprit Open Source.

  3. Eric dit :
    Lundi 16 juin 2008 à 10:23

    Il existe une autre machine virtuelle Java temps réel produite par Aonix: http://www.silicon.fr/fr/news/2008/06/15/aonix_presente_sa_machine_virtuelle_java_temps_reel_multic_ur

  4. foufou dit :
    Mercredi 4 février 2009 à 10:59

    je veux utiliser l’horloge pour déclancher une tache2 mais après qu’une tache2 fini l’exécution.
    comment faire attendre l’orloge pour que la tache1fini et declanhe la tache2.

Leave a Reply

Cliquez ici pour annuler la réponse.

Articles récents

  • Push & communications asynchrones sur iOS (iPhone/iPad)
  • Optimiser le temps de chargement pour le web mobile avec iPhone, jQTouch, Struts 2 et Tomcat
  • La philosophie du Domain Driven Design User Group et l’état des lieux * Users Group en Février 2010
  • Introduction au NoSQL (et de Redis) ou le compte rendu du NoSQL User Group Paris de Février 2010
  • Gérer le Cache-Control HTTP dans une application Web Java EE avec Tomcat
  • Compiler son code? “It’s so 2000s” ou un apercu de Play et JRebel
  • Le blog change d’adresse
  • Le Paris JUG a fêté ses 2 ans: compte-rendu

Navigation

  • Actualités Flux pour tous les articles classés dans Actualités
  • Architecture IT Flux pour tous les articles classés dans Architecture IT
  • Base de données Flux pour tous les articles classés dans Base de données
  • Java Flux pour tous les articles classés dans Java
    • Dévelopement Tips Flux pour tous les articles classés dans Dévelopement Tips
    • EDI Flux pour tous les articles classés dans EDI
    • J2ME Flux pour tous les articles classés dans J2ME
    • J2SE Flux pour tous les articles classés dans J2SE
    • Java EE Flux pour tous les articles classés dans Java EE
    • Tutoriel Flux pour tous les articles classés dans Tutoriel
  • Non classé Flux pour tous les articles classés dans Non classé
  • NoSQL Flux pour tous les articles classés dans NoSQL

Promo

Mots Clefs

adobe apache application web Base de données benchmark bugs c# checkstyle dérivation eclipse find bugs findbugs flex framework play google gzip http iPhone jar Java Java User Group java web start JVM microsoft mysql object objet open source optimisation oracle performance plugin pmd polymorphisme qualité recrutement rich internet application serveur silverlight struts struts 2 sun test Tomcat web

WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.

Twitter

  • J'ai testé OnLive Games sur mon Mac en Wifi: vraiment impressionnant que les possibilités du cloud gaming 2011-01-17
  • More updates...

Livres Pour Aller Plus Loin…

Blogoliste

  • Berthou.com
  • Le blog de hugu
  • PHP – Le Blog de Fatiha
  • techno.blog(java4it)
Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Flux rss des commentaires valid xhtml 1.1 design by jide powered by Wordpress get firefox