Real-Time Java
Real time Java ist eine Sammlung von Programmierschnittstellen, welche die Java Technologie um Echtzeit Fähigkeiten erweitert. Diese Real-Time Specification for Java (RTSJ) wurde als Java Specification Request 1 im Rahmen des Java Community Process entwickelt und als Standard im November 2001 verabschiedet. Aktuell wird an einer erweiterten Version der RTSJ im Rahmen des JSR 282 gearbeitet.
Hintergründe
Einige der üblicherweise als Stärken von Java angesehenen Eigenschaften wie die untrennbar mit der Sprache verbundene Garbage Collection, sowie die native Unterstützung von Threads und Nebenläufigkeit machen eine direkte Verwendung von Java in Echtzeitsystemen unmöglich:
- Java unterstützt wie die meisten der Betriebssysteme, für die Java angeboten wird, kein striktes auf Prioritäten basierendes Threading Modell. Damit unterstützen die Lock Mechanismen von Java keine Mechanismen zur Vermeidung der Prioritätsinversion wie beispielsweise Prioritätsgrenzen oder Prioritätsvererbung.
- Das Verhalten der Java Garbage Collection kann unbegrenzte Pausen bei Berechnungen verursachen und untergräbt somit alle Echtzeit Garantien von Java Programmen.
Um diese Schwierigkeiten zu meistern wurde die Real-Time Specification for Java (RTSJ) als Java Specification Request entwickelt. Aktuelle Umsetzungen der RTSJ ermöglichen es in Java harte und weiche Echtzeitanwendungen zu entwickeln. Zu den bekanntesten Implementierungen gehört die Referenzimplementierung von Timesys, IBM's WebSphere Real Time, Sun Microsystems's Java SE Real-Time Systems, Aonix PERC und JamaicaVM von aicas.
The RTSJ addresses the critical issues by mandating a minimum specification for the threading model (and allowing other models to be plugged into the VM) and by providing for areas of memory that are not subject to garbage collection, along with threads that are not preemptable by the garbage collector.
Real-Time Specification for Java
The Real-Time Specification for Java (RTSJ) is a set of interfaces and behavioral specifications that allow for real-time programming in the Java programming language. RTSJ 1.0 was developed as JSR 1 under the Java Community Process, which approved the new standard in November, 2001. Vorlage:As of, RTSJ 1.1 is being developed under JSR 282.
See also
- Functional specification
- Javolution - RTSJ Compliant Java Library (open-source)
External links
- Real-Time Specification for Java (RTSJ)
- JSR-1
- IBM WebSphere Real Time a fully conformant RTSJ SE VM
- PERC a real-time VM based on Java Standard Edition rather than RTSJ
- Sun Java Real-Time System - Real time Java Homepage
- Timesys RTSJ implementation and testing toolkit
- jRate (Java Real-Time Extension) an open-source extension of the GNU GCJ compiler front-end and runtime system which adds support for most of the features required by the RTSJ.
- JamaicaVM a Real-Time JVM from aicas
- DDC-I Scorpion Java real-time Java SE, with safety-critical and secure versions.
- International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2006) JTRES 2007 JTRES 2008
{{DEFAULTSORT:Real Time Java}} [[Category:Java programming language]]