Wait-free computing: an introductory lecture
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.
wait-free computation concurrency process crash atomic register fault-tolerance non-blocking synchronization renaming problem shared memory system snapshot problem