Preemptible atomic regions for real-time Java

We present a new concurrency control abstraction for real-time systems called preemptible atomic regions (PARs). PARs a transactional mechanism that improves upon lock-based mutual exclusion in several ways. First, and foremost, PARs provide strong correctness guarantees. Any sequence of operations declared atomic will not suffer interference from other threads, even in the presence of programmer errors. In spite of this, PARs can be preempted by high priority tasks; this is essential to the minimization of blocking times. We have implemented PARs in a uniprocessor real-time Java virtual machine and evaluated their utility on a number of programs. The results suggest that programs that use PARs, depending on their semantics, can run faster and experience less jitter than those that use locks

[1]  Adam Welc,et al.  Preemption-based avoidance of priority inversion for Java , 2004 .

[2]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[3]  Keir Fraser,et al.  Revocable locks for non-blocking programming , 2005, PPOPP.

[4]  Brian N. Bershad,et al.  Fast mutual exclusion for uniprocessors , 1992, ASPLOS V.

[5]  L. Sha,et al.  Priority inversion and its control: An experimental investigation , 1988, IRTAW '88.

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

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

[8]  Hans-J. Boehm Destructors, finalizers, and synchronization , 2003, POPL '03.

[9]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

[10]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[11]  Dan Grossman,et al.  AtomCaml: first-class atomicity via rollback , 2005, ICFP '05.

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

[13]  L. Sha,et al.  The priority ceiling protocol: A method for minimizing the blocking of high priority Ada tasks , 1988, IRTAW '88.

[14]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[15]  Mathai Joseph,et al.  Finding Response Times in a Real-Time System , 1986, Comput. J..

[16]  Douglas C. Schmidt,et al.  Enhancing real-time CORBA via real-time Java features , 2004, 24th International Conference on Distributed Computing Systems, 2004. Proceedings..

[17]  D. B. Lomet Process structuring, synchronization, and recovery using atomic actions , 1977 .

[18]  John P. Lehoczky,et al.  The rate monotonic scheduling algorithm: exact characterization and average case behavior , 1989, [1989] Proceedings. Real-Time Systems Symposium.