Java en temps réel - Real time Java
Java en temps réel est un terme fourre-tout pour une combinaison de technologies qui permet aux programmeurs d'écrire des programmes qui répondent aux exigences des systèmes en temps réel dans le langage de programmation Java .
La gestion sophistiquée de la mémoire de Java, la prise en charge native du threading et de la concurrence, la sécurité des types et la simplicité relative ont créé une demande pour son utilisation dans de nombreux domaines. Ses capacités ont été améliorées pour prendre en charge les besoins de calcul en temps réel:
- Java en temps réel prend en charge un modèle de thread basé sur une priorité stricte ,
- comme les threads Java prennent en charge les priorités, les mécanismes de verrouillage Java prennent en charge les techniques d'évitement d' inversion de priorité , telles que l'héritage de priorité ou le protocole de plafond de priorité , et
- gestion des événements.
La proposition initiale d'une norme ouverte pour Java en temps réel a été présentée par Kelvin Nilsen, alors membre du corps professoral de recherche à l'Iowa State University. Un article de synthèse de suivi a été publié dans le CACM . La réponse extrêmement positive à ces premières propositions a donné lieu à une série de réunions organisées par l'Institut national des normes et de la technologie dans le but d'établir une norme ouverte pour Java en temps réel. Le NIST a finalement été informé qu'il n'était pas l'organe approprié pour établir des normes liées au langage Java, car Java était une marque déposée et que les technologies appartenaient à Sun Microsystems. Par conséquent, le NIST a terminé ses efforts avec la publication d' exigences consensuelles qui pourraient être prises en compte par les futurs efforts de normalisation devant être hébergés par Sun Microsystems.
Lorsque la communauté Java a été formée, le tout premier effort a été la spécification pour Java en temps réel, JSR001. Un certain nombre d'implémentations de la spécification en temps réel pour Java ( RTSJ ) résultante ont vu le jour, y compris une implémentation de référence de Timesys , WebSphere Real Time d' IBM , Java SE Real-Time Systems de Sun Microsystems , PTC Perc de PTC, Inc . , ou JamaicaVM des aicas .
Le RTSJ a résolu les problèmes critiques en imposant une spécification minimale pour le modèle de thread (et en permettant à d'autres modèles d'être connectés à la machine virtuelle) et en fournissant des zones de mémoire qui ne sont pas soumises au garbage collection, ainsi que des threads qui ne sont pas préemptifs par le ramasse-miettes. Ces zones sont plutôt gérées à l'aide de la gestion de la mémoire basée sur la région . La dernière spécification, 2.0, prend également en charge l'accès direct aux périphériques et le ramasse-miettes déterministe.
Spécification en temps réel pour Java
La spécification en temps réel pour Java (RTSJ) est un ensemble d' interfaces et d'améliorations comportementales qui permettent la programmation informatique en temps réel dans le langage de programmation Java . RTSJ 1.0 a été développé en tant que JSR 1 sous le Java Community Process , qui a approuvé la nouvelle norme en novembre 2001. RTSJ 2.0 est en cours de développement sous JSR 282. Une version préliminaire est disponible sur la page JSR 282 JCP . Plus d'informations peuvent être trouvées sur RTSJ 2.0
Voir également
- Spécification fonctionnelle
- Javolution - Bibliothèque Java compatible RTSJ
Références
Liens externes
- Problèmes de conception et de mise en œuvre de Java en temps réel
- Ajout de capacités en temps réel à Java
- Configuration requise pour les extensions temps réel pour la plate-forme Java
- Spécification en temps réel pour Java 2.0 (RTSJ 2.0)
- JSR-282
- Spécification en temps réel pour Java (RTSJ)
- JSR-1
- IBM WebSphere Real Time, une machine virtuelle RTSJ SE entièrement conforme
- JamaicaVM une implémentation RTSJ SE avec garbage collection déterministe
- PTC Perc une machine virtuelle en temps réel basée sur Java Standard Edition mais avec une technologie de récupération de place déterministe brevetée plutôt que RTSJ
- Système temps réel Sun Java SE
- Java en temps réel Apogee avec GC en temps réel (abandonné)
- Boîte à outils d'implémentation et de test Timesys RTSJ
- jRate (Java Real-Time Extension) une extension open-source du système frontal et d'exécution du compilateur GNU GCJ qui ajoute la prise en charge de la plupart des fonctionnalités requises par le RTSJ.
- Atelier international sur les technologies Java pour les systèmes temps réel et embarqués (JTRES 2005) JTRES 2006 JTRES 2007 JTRES 2008 JTRES 2009 JTRES 2010 JTRES 2011 JTRES 2012 JTRES 2013 JTRES 2014 JTRES 2015
- LJRT Lund Java en temps réel open source
- Ovm
- Fidji VM Java en temps réel
- VM Java en temps réel