Over the last few years, JSR 302 has been developing a subset of Java augmented by the RTSJ for use in safety critical systems. The concurrency model supported by Safety Critical Java (SCJ) relies, almost exclusively, on an event-based model rather than a thread-based model. This paper reviews the advantages and disadvantages of the two models and gives the pragmatic reasons why SCJ has adopted the former model. It argues that by basing the SCJ classes on the RTSJ's BoundAsyncEvent class, some inconsistencies exist between the SCJ and the RTSJ models. Furthermore, some of the optimization that are possible when mapping handlers to server threads are inhibited, even though the programming restrictions necessary for these optimization are imposed by the SCJ specification. A revised model is presented that has a slightly more complicated API but is more consistent with the RTSJ and does allow the optimizations. However, there is a resulting increase in the necessary run-time support, particularly for multiprocessor implementations.
Download Not Available

BibTex Entry

@inproceedings{Wellings2010d,
 address = {New York, NY, USA},
 author = {Andy Wellings and MinSeong Kim},
 booktitle = {JTRES '10: Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems},
 doi = {http://doi.acm.org/10.1145/1850771.1850778},
 isbn = {978-1-4503-0122-0},
 location = {Prague, Czech Republic},
 pages = {53--62},
 publisher = {ACM},
 title = {Asynchronous event handling and safety critical Java},
 year = {2010}
}