A Library of Concurrent Objects and Their Proofs of Correctness

Answering the first question is one of definition; the second, of method. While there is no general agreement on an answer to the first, we choose the correctness condition called linearizability, which has recently captured the attention of the research community. Informally, we say an implementation of a concurrent object O is correct if and only if each concurrent history H accepted by O is “equivalent” in some sense to some legal sequential history, where (1) legality is defined in terms of the (sequential) type semantics of the object and (2) the “equivalent” sequential history preserves the real-time ordering of operations in H.

[1]  Dennis Shasha,et al.  Concurrent set manipulation without locking , 1988, PODS '88.

[2]  Leslie Lamport,et al.  Concurrent reading and writing , 1977, Commun. ACM.

[3]  Jeannette M. Wing,et al.  A Simulator for Concurrent Objects , 1990 .

[4]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[5]  Maurice Herlihy,et al.  Axioms for concurrent objects , 1987, POPL '87.

[6]  Maurice Herlihy,et al.  Specifying Graceful Degradation , 1991, IEEE Trans. Parallel Distributed Syst..