Java is a very successful language for several application domains: be it desktop applications, large enterprise server applications, web services, or applets for mobile phones. With the Real-Time Specification for Java (RTSJ) and the upcoming definition of a Safety-Critical Java profile, Java enters the domain of soft and hard real-time systems.The The RTSJ is the main standard for real-time systems implemented in Java. Several commercial and research implementations of the RTSJ are available today. However, the optimal implementation of some features of the RTSJ is still an open research questions. The primary goal for asynchronous event handlers (AEH) in the RTSJ is to have a lightweight concurrency mechanism. In the article,
Applying Fixed-Priority Preemptive Scheduling with Preemption Threshold to Asynchronous EventHandling in the RTSJ [1], Kim and Wellings propose a scheduling scheme for AEH that minimizes the number of server threads needed. In the article they first define the worst-case scenario that demands the least upper bound of servers for self-suspending and non-self-suspending handlers. Based on the worst-case scenarios, it is proved that the number of servers required to execute a given number of non-self-suspending handlers depends on the number of priority levels, not on the number of handlers. It is also shown that each self-suspending handler is required to have its own server to prevent unbounded priority inversion.The RTSJ supports two kinds of real-time threads: one that can operate on the garbage collected heap and another one that avoids influence by garbage collection by using a region-based memory management. Basanta-Val et al. present in their article, Extending the concurrency model of the Real-Time Specification for Java [2], a more flexible thread model, where the thread can switch between a heap and a non-heap mode. The authors propose a simple extension to the current threading model named RealtimeThread++, in an attempt to introduce more flexibility in the RTSJ concurrency model. The article describes the extension from several points of view: (i) the programmer, identifying scenarios that may benefit from it significantly; (ii) the real-time Java technology perspective, identifying changes required in the current real-time virtual machine to support it; and (iii) the accumulated experience, relating empirical results obtained from a software prototype that supports the extension.The current practice for soft real-time systems in Java is to avoid the cumbersome programming model of scoped memories and, instead, use a real-time garbage collector. Kalibera presents in his article, Replicating , an incremental garbage collector. The realtime collector has to relocate objects in the heap to avoid fragmentation. This is usually achieved via an indirection that has to be followed on every read and write to the heap. Kalibera presents an alternative solution, based on object replication, which does not need any special handling for memory reads, but writes are more expensive: every va...