Efficient and Simple Implementations of the Wait-Free Queue Classes of the Real-Time Specification for Java

The Real-Time Specification for Java provides protected, non-blocking, shared access to objects accessed by both regular Java threads (java.lang.Threads) and the time-critical NoHeapRealtimeThreads. Such access is offered via a set of wait-free queue classes. These classes are provided explicitly to enable communication between the real-time NoHeapRealtimeThreads and the regular Java threads; they have a unidirectional nature with one side of the queue (read or write) for the real-time threads and the other one (write or read, respectively) for the non-real-time ones. Efficient implementations of these queue classes are presented in this paper. The implementations are designed to have the unidirectional nature of these queues in mind and they are more efficient, with respect to space complexity, compared to previous general bi-directional wait-free implementations, without losing in time complexity.

[1]  Hermann Kopetz,et al.  The non-blocking write protocol NBW: A solution to a real-time synchronization problem , 1993, 1993 Proceedings Real-Time Systems Symposium.

[2]  Giorgio C. Buttazzo HARTIK: A real-time kernel for robotics applications , 1993, 1993 Proceedings Real-Time Systems Symposium.

[3]  Yi Zhang,et al.  A simple, fast and scalable non-blocking concurrent FIFO queue for shared memory multiprocessor systems , 2001, SPAA '01.

[4]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[5]  Mark Moir,et al.  Lock-Free Transactions for Real-Time Systems , 1996, RTDB.

[6]  James H. Anderson,et al.  Efficient object sharing in quantum-based real-time systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[7]  Marina Papatriantafilou,et al.  Wait-free snapshots in real-time systems: algorithms and performance , 1998, Proceedings Fifth International Conference on Real-Time Computing Systems and Applications (Cat. No.98EX236).

[8]  James H. Anderson,et al.  A framework for implementing objects and scheduling tasks in lock-free real-time systems , 1996, 17th IEEE Real-Time Systems Symposium.

[9]  Philippas Tsigas,et al.  Space efficient wait-free buffer sharing in multiprocessor real-time systems based on timing information , 2000, Proceedings Seventh International Conference on Real-Time Computing Systems and Applications.

[10]  Lui Sha,et al.  Priority Inheritance Protocols: An Approach to Real-Time Synchronization , 1990, IEEE Trans. Computers.

[11]  Alan Burns,et al.  Asynchronous data sharing in multiprocessor real-time systems using process consensus , 1998, Proceeding. 10th EUROMICRO Workshop on Real-Time Systems (Cat. No.98EX168).

[12]  Mark Moir,et al.  Real-time object sharing with minimal system support , 1996, PODC '96.

[13]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[14]  Philippas Tsigas,et al.  Simple and Fast Wait-Free Snapshots for Real-Time Systems , 2000 .

[15]  Yi Zhang,et al.  Non-blocking data sharing in multiprocessor real-time systems , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[16]  James H. Anderson,et al.  Real-time computing with lock-free shared objects , 1997, TOCS.

[17]  James A. Gosling,et al.  The java language environment: a white paper , 1995 .

[18]  James H. Anderson,et al.  Implementing wait-free objects on priority-based systems , 1997, PODC '97.

[19]  David R. Cheriton,et al.  Non-blocking synchronization and system design , 1999 .

[20]  R. Rajkumar Real-time synchronization protocols for shared memory multiprocessors , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[21]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[22]  Giuseppe Lipari,et al.  HARTIK 3.0: a portable system for developing real-time applications , 1997, Proceedings Fourth International Workshop on Real-Time Computing Systems and Applications.

[23]  James H. Anderson,et al.  Wait-free object-sharing schemes for real-time uniprocessors and multiprocessors , 1997, Proceedings Real-Time Systems Symposium.

[24]  James H. Anderson,et al.  A lock-free approach to object sharing in real-time systems , 1997 .