Real-Time Java

from Wikipedia, the free encyclopedia

Real-Time Java is a collection of programming interfaces that extends Java technology with real-time capabilities. This Real-Time Specification for Java (RTSJ) was developed as Java Specification Request  1 as part of the Java Community Process and approved as a standard in November 2001. Work is currently underway on an extended version of the RTSJ as part of JSR 282.

backgrounds

Some of the properties usually seen as strengths of Java, such as the garbage collection , which is inextricably linked to the language , as well as the native support of threads and concurrency, make direct use of Java in real-time systems impossible:

  • Like most of the operating systems for which Java is offered, Java does not support a strict priority- based threading model. The Java lock mechanisms therefore do not support any mechanisms for avoiding priority inversion, such as priority limits or priority inheritance .
  • The behavior of Java Garbage Collection can cause unlimited pauses in calculations and thus undermines all real-time guarantees of Java programs.

In order to overcome these difficulties, the Real-Time Specification for Java (RTSJ) was developed as a Java Specification Request . In Java, it enables the above-mentioned obstacles to be circumvented by introducing a corresponding threading model and it enables the Java Virtual Machine to be expanded with additional threading models. In addition, it defines special memory areas that are not cleaned up by conventional garbage collection, but by real-time-capable threads that cannot be paused by garbage collection.

Current implementations of the RTSJ make it possible to develop hard and soft real-time applications in Java. The best-known implementations include the reference implementation from Timesys, IBM's WebSphere Real Time, Sun Microsystems Java SE Real-Time Systems, Aonix PERC and JamaicaVM from aicas.

development

In the meantime, garbage collection algorithms also exist which nevertheless allow hard real-time applications in Java.

literature

  • Eric J. Bruno, Greg Bollella: Real-Time Java Programming with Java RTS . Prentice Hall, 2009, ISBN 978-0-13-714298-9 (English, bvdep.com [accessed December 6, 2011]).
  • Peter C. Dibble: Real-Time Java Platform Programming . Prentice Hall, 2002, ISBN 978-0-13-028261-3 (English).
  • Andrew Wellings: Concurrent and Real-Time Programming in Java . John Wiley & Sons, 2004, ISBN 978-0-470-84437-3 (English).
  • Benjamin Brosgol, James Gosling, Peter Dibble, Steve Furr, David Hardin, Mark Turnbull: The Real-Time Specification for Java . Ed .: Gregory Bollella. Addison-Wesley Longman, 2000, ISBN 0-201-70323-8 (English).

Web links

Individual evidence

  1. Metronome GC algorithm for hard real-time Java applications; IBM; Retrieved June 12, 2014