Abstract
We consider asynchronous multiprocessors where processes communicate only by reading or writing shared memory. We show how to implement consensus, com-pare-and-swap and other comparison primitives, as well as load-linked/store-conditional (LL/SC) 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, and either comparison primitives or LL/SC, can be simulated by an algorithm that uses read and write operations only, with at most a constant-factor increase in RMR complexity.
Original language | English |
---|---|
Pages (from-to) | 109-162 |
Number of pages | 54 |
Journal | Distributed Computing |
Volume | 25 |
Issue number | 2 |
DOIs | |
State | Published - 1 May 2012 |
Keywords
- Comparison primitives
- Consensus
- Load-linked/store-conditional
- Mutual exclusion
- Remote memory references
- Shared memory
ASJC Scopus subject areas
- Theoretical Computer Science
- Hardware and Architecture
- Computer Networks and Communications
- Computational Theory and Mathematics