Proving Concurrent Data Structures Linearizable
Document Type
Conference Proceeding
Publication Date
12-5-2016
Abstract
Linearizability of concurrent data structure implementationsis notoriously hard to prove. Consequently, currentverification techniques can only prove linearizability for certainclasses of data structures. We introduce a generic, sound, andpractical technique to statically check the linearizability of concurrentdata structure implementations. Our technique involvesspecifying the concurrent operations as a list of sub-operationsand passing this specification on to an automated checker thatverifies linearizability using relationships between individual sub-operations. We have proven the soundness of our technique. Ourapproach is expressive: we have successfully verified the linearizabilityof 12 popular concurrent data structure implementationsincluding algorithms that are considered to be challenging toprove linearizable such as elimination back-off stack, lazy linkedlist, and time-stamped stack. Our checker is effective, as it canverify the specifications in less than a second.
Identifier
85013288101 (Scopus)
ISBN
[9781467390019]
Publication Title
Proceedings International Symposium on Software Reliability Engineering ISSRE
External Full Text Location
https://doi.org/10.1109/ISSRE.2016.31
ISSN
10719458
First Page
230
Last Page
240
Grant
CCF-1149632
Fund Ref
National Science Foundation
Recommended Citation
Singh, Vineet; Neamtiu, Iulian; and Gupta, Rajiv, "Proving Concurrent Data Structures Linearizable" (2016). Faculty Publications. 10106.
https://digitalcommons.njit.edu/fac_pubs/10106
