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

This document is currently not available here.

Share

COinS