Set-linearizability

A central paradigm in the study of concurrent systems is providing the abstraction of a shared object that different processes may access concurrently. The object should behave as if it were accessed sequentially because, in most cases, its defition is sequential. Any concurrent implementation seeks to emulate this sequential behavior. Herlihy and Wing defined linearizability, a correctness criterion for such implementations. An implementation is linearizable if any execution of the implementation is equivalent to some sequential execution (meeting the object’s speciti cation). Herlihy provided a hiersmhical structure for understanding the power of au object to implement others. He showed that this power can be measured by the object’s ability to achieve consensus. The more processes that can use the object to achieve consensus, the more powerful the object. Another theme in the study of asyncbzonous computabilityy regards the ability of read/write memory to solve certain tasks. For example, it has been shown that the consensus and k-set agreement tasks cannot be solved with read/write memory. These results have been extended to general asynchronous computability theorems. These two approaches, the study of object-to-object implementations and that oft ask solutions, have not been satisfactorily unified. Although researchers have eharact erized the consensus task as a sequentially specitied object, k-set agreement resists such a characterization. This lack of unification prevents the results of one approach from being applied to the other. These problems stem from the fact that the study of object-to-object implementations is based on the concept of Iinearizable implementations. This paper remedies this by generalizing linearizability to .set-linearizability. Setlinearizability can be used to specify implementations of objects with non-sequential specifications and to map task specifications into object specifications. Thus, it can serve as a general foundation for the study of wait-free hierarchies and asynchronous computability.