Extending the concurrency model of the real-time specification for Java
The current RTSJ (Real-Time Specification for Java) threading model is dualized: a programmer has to decide between the high predictability offered by the region-based model and the flexibility offered by the garbage collection. So far, there is no unique type of thread which offers both the high predictability of a non-heap thread and the flexibility of a real-time thread in a single entity. Furthermore, this lack has a serious impact on the programmer who has to deal with new and sometimes non-trivial to use mechanisms, such as specific queues of objects or new types of threads, in order to avoid the priority inversion caused by the garbage collector. In order to tackle the concern properly and provide an improved and more generalized programming model, 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 paper 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. Copyright (C) 2010 John Wiley & Sons, Ltd.
concurrency models rtsj real-time java memory management