The Java platform is usually perceived as inadequate for real-time
applications because of its lack of determinism, that is, its unpredictable
execution time.
For example, garbage collection (GC), which removes no-longer-needed Java
objects and reduces memory overhead, may automatically and transparently
freeze the system from time to time. Such behavior is obviously unacceptable
in the real-time world. (A commonly recognized goal of real-time computing is
to meet an application's time constraints.)
To address this issue, new Java Virtual Machines (JVM) are being developed
(e.g., JVM with concurrent GC). In addition, a new Real-Time Specification
for Java (RTSJ, JSR-001) has been finalized.
Unfortunately, these solutions achieve predictability to the detriment of
performance. For example, concurrent GC is less efficient than "stop the
world GC" (which requires tota... (more)