Abstract
The "wait-free hierarchy" classifies multiprocessor synchronization primitives according to their power to solve consensus. The classification is based on assigning a number n to each synchronization primitive, where n is the maximal number of processes for which deterministic wait-free consensus can be solved using instances of the primitive and read write registers. Conditional synchronization primitives, such as Compare-and-Swap and Load-Linked/Store-Conditional, can implement deterministic wait-free consensus for any number of processes (they have consensus number ∞), and are thus considered to be among the strongest synchronization primitives; Compare-and-Swap and Load-Linked/Store-Conditional have consequently became the synchronization primitives of choice, and have been implemented in hardware in many multiprocessor architectures. This paper shows that, though they are strong in the context of consensus, conditional synchronization primitives are not efficient in terms of memory space for implementing many key objects. Our results hold for starvation-free implementations of mutual exclusion, and for wait-free implementations of a large class of concurrent objects, that we call Visible(n). Roughly, Visible(n) is a class that includes all objects that support some operation that must perform a "visible" write before it terminates. Visible(n) includes many useful objects; some examples are: counters, stacks, queues, swap, fetch-and-add, and single-writer snapshot objects. We show that at least n conditional registers are required by any such implementation, even if registers are of unbounded size. We also obtain tradeoffs between time and space for n-process wait-free implementations of any one-time object in Visible(n). All these results hold for both deterministic and randomized implementations. Starvation-free mutual exclusion and wait-free implementations of some objects in Visible(n) (e.g. counters, swap and fetch-and-add) can be implemented by O(1) non-conditional primitives. Thus we believe that basing multiprocessor synchronization solely on conditional synchronization primitives might not be the best design choice.
Original language | English |
---|---|
Pages | 80-87 |
Number of pages | 8 |
DOIs | |
State | Published - 1 Jan 2004 |
Externally published | Yes |
Event | Proceedings of the 23rd Annual ACM Symposium on Principles of Distributed Computing - St. John's, Nfld., Canada Duration: 25 Jul 2004 → 28 Jul 2004 |
Conference
Conference | Proceedings of the 23rd Annual ACM Symposium on Principles of Distributed Computing |
---|---|
Country/Territory | Canada |
City | St. John's, Nfld. |
Period | 25/07/04 → 28/07/04 |
Keywords
- Compare-and-Swap
- Load-Linked
- Lower bounds
- Store-Conditional
- Synchronization primitives
- Test-and-Set
- Wait-freedom
ASJC Scopus subject areas
- Software
- Hardware and Architecture
- Computer Networks and Communications