Publication Type
Journal Article
Version
publishedVersion
Publication Date
1-2013
Abstract
Linearizability is an important correctness criterion for implementations of concurrent objects. Automatic checking of linearizability is challenging because it requires checking that: 1) All executions of concurrent operations are serializable, and 2) the serialized executions are correct with respect to the sequential semantics. In this work, we describe a method to automatically check linearizability based on refinement relations from abstract specifications to concrete implementations. The method does not require that linearization points in the implementations be given, which is often difficult or impossible. However, the method takes advantage of linearization points if they are given. The method is based on refinement checking of finite-state systems specified as concurrent processes with shared variables. To tackle state space explosion, we develop and apply symmetry reduction, dynamic partial order reduction, and a combination of both for refinement checking. We have built the method into the PAT model checker, and used PAT to automatically check a variety of implementations of concurrent objects, including the first algorithm for scalable nonzero indicators. Our system is able to find all known and injected bugs in these implementations.
Keywords
Linearizability, refinement, model checking, PAT
Discipline
Programming Languages and Compilers | Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
IEEE Transactions on Software Engineering
Volume
39
Issue
7
First Page
1018
Last Page
1039
ISSN
0098-5589
Identifier
10.1109/TSE.2012.82
Publisher
Institute of Electrical and Electronics Engineers (IEEE)
Citation
LIU, Yang; CHEN, Wei; LIU, Yanhong A.; SUN, Jun; ZHANG, Shao Jie; and DONG, Jin Song Dong.
Verifying linearizability via optimized refinement checking. (2013). IEEE Transactions on Software Engineering. 39, (7), 1018-1039.
Available at: https://ink.library.smu.edu.sg/sis_research/4996
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/TSE.2012.82