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 several new helping schemes that can be generally applied to e ciently implement a variety of di erent 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.
James H. Anderson, Srikanth Ramamurthy, Rohit Jain