2015
DOI: 10.1145/2796550
|View full text |Cite
|
Sign up to set email alerts
|

Verifying Linearisability

Abstract: Linearizability is a key correctness criterion for concurrent data structures, ensuring that each history of the concurrent object under consideration is consistent with respect to a history of the corresponding abstract data structure. Linearizability allows concurrent (i.e., overlapping) operation calls take effect in any order, but requires the real-time order of non-overlapping to be preserved. The sophisticated nature of concurrent objects means that linearizability is difficult to judge, and hence, over … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
13
0

Year Published

2016
2016
2024
2024

Publication Types

Select...
5
2

Relationship

2
5

Authors

Journals

citations
Cited by 31 publications
(13 citation statements)
references
References 101 publications
0
13
0
Order By: Relevance
“…The operational model for durable linearizability is formalised in terms of an Input/Output automaton (IOA) [18]. This framework is often used for proving linearizability via refinement [9]. The set acts(A) is partitioned into internal actions, internal(A) and external actions, external(A).…”
Section: An Operational Model For Durable Linearizabilitymentioning
confidence: 99%
See 1 more Smart Citation
“…The operational model for durable linearizability is formalised in terms of an Input/Output automaton (IOA) [18]. This framework is often used for proving linearizability via refinement [9]. The set acts(A) is partitioned into internal actions, internal(A) and external actions, external(A).…”
Section: An Operational Model For Durable Linearizabilitymentioning
confidence: 99%
“…Any step of the implementation that refines do(op) is a step that persists the corresponding operation op (i.e., a persistence point, see Section 5). Persistence points in durable linearizability are analogous to linearization points in linearizability [9]. Note that a thread may only invoke an operation if it is ready.…”
Section: An Operational Model For Durable Linearizabilitymentioning
confidence: 99%
“…(The work by Gotsman et al [2013] checks memory safety and discovers memory leaks as well.) For a more detailed overview of manual techniques, we refer to the survey by Dongol and Derrick [2015].…”
Section: Related Workmentioning
confidence: 99%
“…Many papers have been devoted to verifying linearizability of concurrent object implementations [1]; however, these typically only consider behaviours of the concurrent object at hand in isolation -they do not provide any guarantees to the client programs that use concurrent objects. Therefore, letting P[O] denote a client program P that uses object O, we consider the following question:…”
Section: Introductionmentioning
confidence: 99%
“…2 Concurrent objects and their clients Figure 1 presents a simplified version of a non-blocking stack example due to Treiber [10], which has become a standard case study from the literature. 1 The implementation has fine-grained atomicity, and each line of the push and pop operations corresponds to a single atomic step. Synchronisation is achieved using an atomic compare-and-swap (CAS) instruction, which takes as input a (shared) variable gv, an expected value lv and a new value nv: CAS(gv, lv, nv) = atomic { if gv = lv then gv := nv ; return true else return false } The Treiber stack implements the abstract stack specification in Figure 2, where ' ' and ' ' delimit sequences, ' ' denotes the empty sequence, and ' ' denotes sequence concatenation.…”
Section: Introductionmentioning
confidence: 99%