- https://doi.org/10.1007/978-3-642-32027-9_5
Mutex-Free Concurrent Objects
- Dec 28, 2012
- Michel Raynal
This chapter is devoted to mutex-free implementations of concurrent objects. Mutex-freedom means that in no way (be it explicit or implicit) is the implementation of a concurrent object allowed to rely on critical sections (locks). The chapter consequently introduces new progress conditions suited to mutex-free object implementations, namely obstruction-freedom, non-blocking, and wait-freedom. It then presents mutex-free implementations of concurrent objects (splitter, queue, stack, etc.) that satisfy these progress conditions. Some of these implementations are based on read/write atomic registers only, while others use also more sophisticated registers that can be accessed by hardware-provided primitive operations such as compare&swap, swap, or fetch&add (which are stronger than base read/write operations). To conclude, this chapter presents an approach based on failure detectors that allows the construction of contention managers that permit a non-blocking or a wait-free implementation of a concurrent object to be obtained from an obstruction-free implementation of that object.
- # Implementations Of Concurrent Objects
- # Progress Conditions
- # Atomic Registers
- # Failure Detectors
- # Critical Sections
- # Obstruction-free Implementation
- # Contention Managers
- # Wait-free Implementation
- # Concurrent Object
- # Primitive Operations