Implementing wait-free objects on priority-based systems

Wait-free objects are often implemented through the use of a “helping scheme”, whereby one process “helps” one or more other processes to complete an operation. This paper presents severaf new helping schemes that can be generally applied to efficiently implement a variety of diflerent objects on priority-based uniprocessor and multiprocessor systems. Examples of such systems include lock-free multiprocessor kernels and real-time systems. Our helping schemes reduce overhead by exploiting the way in which processes are scheduled in priority-based systems. We illustrate the use of these schemes by presenting wait-free implementations of linked lists and a multi-word compare-and-swap primitive.

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

[2]  David R. Cheriton,et al.  The synergy between non-blocking synchronization and operating system structure , 1996, OSDI '96.

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

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

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

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

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

[8]  Calton Pu,et al.  A Lock-Free Multiprocessor OS Kernel , 1992, OPSR.

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

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

[11]  Brian N. Bershad,et al.  Practical considerations for non-blocking concurrent objects , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[12]  John D. Valois Lock-free linked lists using compare-and-swap , 1995, PODC '95.

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

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

[15]  Hagit Attiya,et al.  Universal operations: unary versus binary , 1996, PODC '96.