A fast mutual exclusion algorithm
ACM Transactions on Computer Systems (TOCS)
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Renaming in an asynchronous environment
Journal of the ACM (JACM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Atomic snapshots of shared memory
Journal of the ACM (JACM)
Wait-free algorithms for fast, long-lived renaming
Science of Computer Programming
Fault-tolerant wait-free shared objects
Journal of the ACM (JACM)
Atomic Snapshots in O (n log n) Operations
SIAM Journal on Computing
Fast, long-lived renaming improved and simplified
Science of Computer Programming
Fast, wait-free (2k-1)-renaming
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
The topological structure of asynchronous computability
Journal of the ACM (JACM)
Concurrent Reading While Writing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Concurrent reading and writing
Communications of the ACM
Distributed computing: fundamentals, simulations and advanced topics
Distributed computing: fundamentals, simulations and advanced topics
Distributed Algorithms
Adaptive and Efficient Algorithms for Lattice Agreement and Renaming
SIAM Journal on Computing
Linear-Time Snapshot Using Multi-writer Multi-reader Registers
WDAG '94 Proceedings of the 8th International Workshop on Distributed Algorithms
Polynominal and Adaptive Long-Lived (2k-1)-Renaming
DISC '00 Proceedings of the 14th International Conference on Distributed Computing
Algorithms adapting to point contention
Journal of the ACM (JACM)
An adaptive collect algorithm with applications
Distributed Computing
Hi-index | 0.00 |
This paper is a short introduction to wait-free computing. "Wait-free" means that the progress of a process depends only on it, regardless of the other processes (that can progress slowly or even crash). To illustrate wait-free computing, the paper considers the design of two concurrent objects, namely, a renaming object and a snapshot object. A renaming object allows the processes to acquire new names from a smaller name space despite possible process crashes. A snapshot object provides the processes with an array-like data structure (with one entry per process) offering two operations. The write operation allows a process to update its own entry. The snapshot operation allows a process to read all the entries in such a way that the reading of the whole array appears as it is was an atomic operation. A renaming protocol by Moir and Anderson and a snapshot protocol by Afek et al. are used to illustrate the beauty and subtleties of wait-free computing.