Linearizabilty allows to describe the behaviour of concurrent objects using sequential specifications. Unfortunately, as we show in this paper, sequential specifications cannot be used for concurrent objects whose observable behaviour in the presence of concurrent operations should be different than their behaviour in the sequential setting. As a result, such concurrency-aware objects do not have formal specifications, which, in turn, precludes formal verification.
In this paper we present Concurrency Aware Linearizability (CAL), a new correctness condition which allows to formally specify the behaviour of a certain class of concurrency-aware objects. Technically, CAL is formalized as a strict extension of linearizability, where concurrency-aware specifications are used instead of sequential ones. We believe that CAL can be used as a basis for modular formal verification techniques for concurrency-aware objects.
[1]
Nir Shavit,et al.
A scalable lock-free stack algorithm
,
2010,
J. Parallel Distributed Comput..
[2]
William N. Scherer,et al.
A Scalable Elimination-based Exchange Channel
,
2005
.
[3]
William N. Scherer,et al.
Nonblocking Concurrent Data Structures with Condition Synchronization
,
2004,
DISC.
[4]
William N. Scherer,et al.
Scalable synchronous queues
,
2009,
Commun. ACM.
[5]
Yehuda Afek,et al.
Fast and scalable rendezvousing
,
2013,
Distributed Computing.
[6]
Peter W. O'Hearn,et al.
Abstraction for concurrent objects
,
2009,
Theor. Comput. Sci..
[7]
Maurice Herlihy,et al.
Linearizability: a correctness condition for concurrent objects
,
1990,
TOPL.