Java Real-Time System

JSR-001 is the specification of java real-time system. Currently, there are two implementation of JSR-001. One is Sun Java Real-Time System which is the first one, another is IBM WebSphere Real Time(V1.0).
Let us give a glance at their announcements:
Sun(more):

Java RTS is not only the first commercial implementation of RTSJ, it's a very robust implementation. Here are the important features and benefits offered by the RTSJ and Sun's Java RTS implementation:

  • New Real-Time Threads, Scheduling, and Synchronization

    The RTSJ introduces the concept of two new threads: real-time threads and no-heap real-time threads (a thread which cannot be interrupted by garbage collection). These threads offer more precise scheduling than with standard Java threads. They have 28 levels of priority and unlike standard Java, their priority is strictly enforced.

    Real-time threads are synchronized and are not subject to so-called priority inversion situations where a lower priority thread has a block on a resource needed by a higher priority thread and thus prevents the higher priority thread from running. Rigorous testing with partners has shown that Java RTS completely avoids any priority inversions - which is crucial for mission-critical applications.

  • New Memory Management Schemes

    The RTSJ defines two new types of memory areas that allow real-time applications to avoid unpredictable delays commonly caused by traditional garbage collectors:

    1. Immortal memory holds objects without destroying them except when the program ends. This means that objects created in immortal memory must be carefully allocated and managed.
    2. Scoped memory is used only while a process works within a particular section, or scope, of the program such as in a method. Objects are automatically destroyed when the process leaves the scope. This is a useful feature akin to garbage collection in that discrete creation and deletion is not required as in the immortal memory case - but the process must be sure to exit the scope to ensure memory is reaped.

    Neither immortal nor scoped memories are garbage collected, so using them avoids problems of GC interference.

  • Asynchronous Events Handling & Asynchronous Transfer of Control

    The RTSJ provides two mechanisms for asynchronous communication: asynchronous event handling, and asynchronous transfer of control.

    Asynchronous event handlers deal with external events (known as "happenings") which can occur outside the JVM. The RTSJ is unique in that it allows developers to schedule the response to asynchronous events in order to avoid disrupting the temporal integrity of the rest of the real-time application.

    Asynchronous Transfer of Control (ATC) provides a carefully controlled way for one thread to interrupt another thread in a safe manner.

  • Time & Timers

    The RTSJ specifies several ways to specify high-resolution (nanosecond accuracy) time including absolute time and relative time.

  • Direct Access to Physical Memory

    While still maintaining security protections, the RTSJ allows direct access to physical memory. This means that device drivers can be created written entirely in Java. Previously, Java applications had to link to native code to communicate directly with the hardware.

IBM(more):
WebSphere Real Time V1.0 is a Java Runtime Environment (JRE) with Software Development Kit (SDK) that delivers the following capabilities:

  • Real-time garbage collection: Greatly simplifies real-time application development using standard Java programming
  • Real-time Specification for Java: IBM provides a conformant RTSJ Class Library
  • Ahead-of-Time Compilation: Precompiles to achieve significantly better performance than interpreted compilation
  • Java Executable support: Improves performance with dynamic class loading

Java RTS enables developers of real-time applications to take a full advantage of Java while maintaining  the predictability of current real-time development platforms, such as QNX, and other, custom, embeded systems. With Java RTS, real-time components and non-real-time components can coexist and share data on a single system. Java RTS features are delivered via a separate real-time enable version of the Java VM. This VM can process both traditional Java SE components and Java RTS components, giving developers heretofore unforeseen flexibility.

If you have interesting in developing RTS application, please read this article.

You must have a attention that, Sun RTS only on Solaris, but IBM RTS can run on Linux.

google Tags:


你可能感兴趣的:(System)