Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Goal-oriented programming, or composition using events, or threads considered harmful
Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications
Scheduling Fixed-Priority Tasks with Preemption Threshold
RTCSA '99 Proceedings of the Sixth International Conference on Real-Time Computing Systems and Applications
Scheduling Tasks with Mixed Preemption Relations for Robustness to Timing Faults
RTSS '02 Proceedings of the 23rd IEEE Real-Time Systems Symposium
A Profile for High-Integrity Real-Time Java Programs
ISORC '01 Proceedings of the Fourth International Symposium on Object-Oriented Real-Time Distributed Computing
An architecture for highly concurrent, well-conditioned internet services
An architecture for highly concurrent, well-conditioned internet services
Concurrent and Real-Time Programming in Java
Concurrent and Real-Time Programming in Java
Hard Real-time Computing Systems: Predictable Scheduling Algorithms And Applications (Real-Time Systems Series)
Ravenscar-Java: a high-integrity profile for real-time Java: Research Articles
Concurrency and Computation: Practice & Experience - 2002 ACM Java Grande—ISCOPE Conference Part I
Techniques and patterns for safe and efficient real-time middleware
Techniques and patterns for safe and efficient real-time middleware
Extensions to fixed priority with preemption threshold and reservation-based scheduling
Extensions to fixed priority with preemption threshold and reservation-based scheduling
Event-driven programming for robust software
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
A type system to assure scope safety within safety-critical Java modules
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
Why events are a bad idea (for high-concurrency servers)
HOTOS'03 Proceedings of the 9th conference on Hot Topics in Operating Systems - Volume 9
Asynchronous event handling in the real-time specification for Java
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
An efficient and predictable implementation of asynchronous event handling in the RTSJ
JTRES '08 Proceedings of the 6th international workshop on Java technologies for real-time and embedded systems
Real-Time Java Platform Programming: Second Edition
Real-Time Java Platform Programming: Second Edition
Refactoring Asynchronous Event Handling in the Real-Time Specification for Java
ECRTS '09 Proceedings of the 2009 21st Euromicro Conference on Real-Time Systems
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
A predictable Java profile: rationale and implementations
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Use of PERC Pico in the AIDA avionics platform
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Real-Time Systems and Programming Languages: Ada, Real-Time Java and C/Real-Time POSIX
Real-Time Systems and Programming Languages: Ada, Real-Time Java and C/Real-Time POSIX
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
Concurrency and Computation: Practice & Experience
The cardiac pacemaker case study and its implementation in safety-critical Java and Ravenscar Ada
Proceedings of the 10th International Workshop on Java Technologies for Real-time and Embedded Systems
Hi-index | 0.00 |
Over the last few years, the Java Community Process (under the auspices of Java Specification Request 302) has been developing a subset of Java augmented by the Real-Time Specification for Java (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 on a thread-based model. This paper reviews the advantages and disadvantages of the two models and gives the pragmatic reasons that SCJ has adopted the former model. It describes the SCJ approach and gives a simple example of how it can be used, illustrating the difference in style between the RTSJ and SCJ code. The paper then considers the compatibility of the SCJ model with the RTSJ. 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 optimizations that are possible when mapping handlers to server threads are inhibited, even though the programming restrictions necessary for these optimizations 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 allows the optimizations. However, there is a resulting increase in the necessary run-time support, particularly for multiprocessor implementations. Copyright © 2011 John Wiley & Sons, Ltd.