Constant-RMR implementations of CAS and other synchronization primitives using read and write operations

We consider asynchronous multiprocessors where processes communicate only by reading or writing shared memory. We show how to implement consensus, all comparison primitives (such as CAS and TAS), and load-linked/store-conditional using only a constant number of remote memory references (RMRs), in both the cache-coherent and the distributed-shared-memory models of such multiprocessors. Our implementations are blocking, rather than wait-free: they ensure progress provided all processes that invoke the implemented primitive are live. Our results imply that any algorithm using read and write operations, comparison primitives, and load-linked/store-conditional, can be simulated by an algorithm that uses read and write operations only, with at most a constant blowup in RMR complexity.

[1]  Maurice Herlihy,et al.  Contention in shared memory algorithms , 1993, JACM.

[2]  Prasad Jayanti A Complete and Constant Time Wait-Free Implementation of CAS from LL/SC and Vice Versa , 1998, DISC.

[3]  James H. Anderson,et al.  A Time Complexity Bound for Adaptive Mutual Exclusion , 2001, DISC.

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

[5]  Nancy A. Lynch,et al.  An introduction to input/output automata , 1989 .

[6]  James H. Anderson,et al.  Adaptive mutual exclusion with local spinning , 2006, Distributed Computing.

[7]  James H. Anderson,et al.  A fast, scalable mutual exclusion algorithm , 1995, Distributed Computing.

[8]  Thomas E. Anderson,et al.  The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors , 1990, IEEE Trans. Parallel Distributed Syst..

[9]  Sam Toueg,et al.  Some Results on the Impossibility, Universality, and Decidability of Consensus , 1992, WDAG.

[10]  Òòòðð,et al.  Shared-memory Mutual Exclusion: Major Research Trends Since 1986 , 1986 .

[11]  Leslie Lamport,et al.  A fast mutual exclusion algorithm , 1987, TOCS.

[12]  James H. Anderson,et al.  A generic local-spin fetch-and-phi-based mutual exclusion algorithm , 2007, J. Parallel Distributed Comput..

[13]  David A. Patterson,et al.  Computer Organization & Design: The Hardware/Software Interface , 1993 .

[14]  James H. Anderson,et al.  An improved lower bound for the time complexity of mutual exclusion , 2001, PODC '01.

[15]  Robert Cypher The communication requirements of mutual exclusion , 1995, SPAA '95.

[16]  Wojciech M. Golab,et al.  An O(1) RMRs leader election algorithm , 2006, PODC '06.

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

[18]  Mark Moir Practical implementations of non-blocking synchronization primitives , 1997, PODC '97.

[19]  Danny Hendler,et al.  Tight RMR lower bounds for mutual exclusion and other problems , 2008, STOC '08.

[20]  Mark Moir,et al.  On the Uncontended Complexity of Consensus , 2003, DISC.

[21]  Nancy A. Lynch,et al.  An Ω (n log n) lower bound on the cost of mutual exclusion , 2006, PODC '06.

[22]  G. S. Graham A New Solution of Dijkstra ' s Concurrent Programming Problem , 2022 .

[23]  Prasad Jayanti f-arrays: implementation and applications , 2002, PODC '02.

[24]  R. Varga,et al.  Proof of Theorem 4 , 1983 .

[25]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[26]  James H. Anderson,et al.  Local-spin mutual exclusion using fetch-and-/spl phi/ primitives , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[27]  Prasad Jayanti,et al.  Efficient and practical constructions of LL/SC variables , 2003, PODC '03.

[28]  Gary L. Peterson,et al.  Myths About the Mutual Exclusion Problem , 1981, Inf. Process. Lett..

[29]  Travis S. Craig Queuing spin lock algorithms to support timing predictability , 1993, 1993 Proceedings Real-Time Systems Symposium.