Laziness pays! Using lazy synchronization mechanisms to improve non-blocking constructions

Summary. We present a simple and efficient wait-free implementation of Lazy Large Load-Linked/Store-Conditional (Lazy-LL/SC), which can be used to atomically modify a dynamically-determined set of shared variables in a lock-free manner. The semantics of Lazy-LL/SC is weaker than that of similar objects used by us previously to design lock-free and wait-free constructions, and as a result can be implemented more efficiently. However, we show that Lazy-LL/SC is strong enough to be used in existing non-blocking universal constructions and to build new ones.

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

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

[3]  Mark Moir Laziness pays! using lazy synchronization mechanisms to improve non-blocking constructions , 2000, PODC '00.

[4]  Yehuda Afek,et al.  Wait-free made fast , 1995, STOC '95.

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

[6]  Josep Torrellas,et al.  The Augmint multiprocessor simulation toolkit for Intel x86 architectures , 1996, Proceedings International Conference on Computer Design. VLSI in Computers and Processors.

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

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

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

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

[11]  Christopher D. Filachek Evaluation and Optimization of Lock-Free and Wait-Free Universal Constructions for Large Objects , 1997 .

[12]  Mark Moir,et al.  Transparent Support for Wait-Free Transactions , 1997, WDAG.

[13]  Maurice Herlihy,et al.  A Methodology for Implementing Highly Concurrent Data Objects , 1992, OPSR.

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