Asynchronous event handling in the real-time specification for Java

MinSeong Kim, Andy Wellings
2007 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems - JTRES '07  
The Real-Time Specification for Java (RTSJ) was first released in June 2000 due to the needs arisen for safety-critical and real-time systems. The primary objective of the RTSJ was to provide a platform that allows programmers to correctly reason about the temporal behaviour of executing software. The RTSJ has been implemented for both open source and proprietary implementations, providing a foothold for research and deployment in serious applications. As a consequence, its strengths and
more » ... ses are becoming clear. One of the areas that requires further elaboration is asynchronous event handling (AEH). The primary goal for asynchronous event handlers in the RTSJ is to have a lightweight concurrency mechanism, on top of predictable and bounded behaviour. This can only be achieved by using a real-time thread to execute as many handlers as possible. Although the RTSJ provides both the flexibility of threads and the efficiency of events, it is generally unclear how to map handlers to real-time threads effectively to achieve the primary motivation, the lightweightness requirement, without causing side-effects (e.g. priority-inversion). Furthermore the RTSJ is silent on how events can be implemented and how their timing requirements can be guaranteed. As a result, most RTSJ implementations simply mapped a released handler to a real-time thread and this results in a 1:1 relationship and therefore undermining the original motivation. The current RTSJ is also criticised as lacking in configurability as applications were unable to finely tune the AEH components to fit their particular needs. As a result, various handlers with different characteristics must be handled in an implementationdependent manner and programmers do not have comprehensive configurability over their AEH subsystem. The main purpose of this thesis is, therefore, first to propose an alternative implementation guideline to guarantee timing requirements of a large number of concurrent asynchronous events in the system while achieving the primary goal of AEH, and second to refactor the current AEH API in the RTSJ to give programmers comprehensive configurability in order for them to be able to specifically tailor AEH components to fit the application's particular needs. By attaining the purpose of this thesis, the development of an efficient (hence scalable) and configurable (hence flexible) RTSJ application using asynchronous event handlers in the real-time Java architecture can be better facilitated. i
doi:10.1145/1288940.1288942 dblp:conf/jtres/KimW07 fatcat:3meiwr5ztncrpm6zukpwnp7t4q