Lock-Free Transactions for Real-Time Systems

Lock-free objects are an alternative to lock-based object sharing protocols such as the priority ceiling protocol [17, 21] in preemptive real-time uniprocessor systems. An object implementation is lock-free iff it guarantees the following: if several tasks concurrently perform operations on the object, and if some proper subset of these tasks stop taking steps, then at least one of the remaining tasks must complete its operation in a finite number of its own steps. This definition precludes the use of critical sections, because if a task stops taking steps while within a critical section, then other tasks are prevented from accessing that critical section. In several related papers, we have presented general techniques that can be used to implement lock-free objects in real-time uniprocessor systems [3, 18] and to schedule tasks that share such objects [3, 4]. Related research includes work on techniques for implementing specific lock-free objects (such as read/write buffers) [13, 19, 20], and work on synchronization mechanisms that are similar to lock-free objects but are implemented using kernel support [12, 19, 20].

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

[2]  Maurice Herlihy,et al.  A methodology for implementing highly concurrent data objects , 1993, TOPL.

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

[4]  Kevin Jeffay,et al.  Kernel Support for Live Digital Audio and Video , 1991, NOSSDAV.

[5]  Miron Livny,et al.  On being optimistic about real-time constraints , 1990, PODS '90.

[6]  Donald F. Towsley,et al.  Experimental Evaluation of Real-Time Optimistic Concurrency Control Schemes , 1991, VLDB.

[7]  Greg Barnes,et al.  A method for implementing lock-free shared-data structures , 1993, SPAA '93.

[8]  K. Harathi,et al.  Interruptible Critical Sections , 1994 .

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

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

[11]  Mark Moir,et al.  Universal constructions for multi-object operations , 1995, PODC '95.

[12]  Amos Israeli,et al.  Disjoint-access-parallel implementations of strong shared memory primitives , 1994, PODC '94.

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

[14]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.

[15]  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.

[16]  Victor Bradley Lortz An object-oriented real-time database system for multiprocessors , 1994 .

[17]  Henry Massalin,et al.  Synthesis: an efficient implementation of fundamental operating system services , 1992 .

[18]  Chung Laung Liu,et al.  Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment , 1989, JACM.

[19]  James H. Anderson,et al.  Proceedings of the twelfth annual ACM symposium on Principles of distributed computing , 1993, PODC 1993.

[20]  Joseph Y.-T. Leung,et al.  On the complexity of fixed-priority scheduling of periodic, real-time tasks , 1982, Perform. Evaluation.

[21]  Ragunathan Rajkumar,et al.  Synchronization in Real-Time Systems: A Priority Inheritance Approach , 1991 .

[22]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[23]  Paul G. Sorenson,et al.  A Real-Time System Design Methodology* , 1975 .

[24]  Lui Sha,et al.  A Real-Time Locking Protocol , 1991, IEEE Trans. Computers.

[25]  Ragunathan Rajkumar,et al.  Synchronization in Real-Time Systems , 1991 .

[26]  James H. Anderson,et al.  Real-time computing with lock-free shared objects , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.

[27]  Alan Burns,et al.  Hard Real-Time Scheduling: The Deadline-Monotonic Approach , 1991 .

[28]  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.

[29]  Paul Gordon Sorenson,et al.  A methodology for real-time system development. , 1974 .

[30]  Mark Moir,et al.  Universal Constructions for Large Objects , 1995, IEEE Trans. Parallel Distributed Syst..

[31]  Aloysius Ka-Lau Mok,et al.  Fundamental design problems of distributed systems for the hard-real-time environment , 1983 .