Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2851613.2851774acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Checking linearizability with fine-grained traces

Published: 04 April 2016 Publication History

Abstract

Linearizability is an important correctness criterion for concurrent objects and automatic checking of linearizability often involves searching a sequential witness in an exponentially growing space of traces. We present two acceleration techniques for checking linearizability based on fine-grained traces: one is based on speculation of linearization points, and the other is to separate read-only methods from the enumeration of serial witnesses. We have applied them to checking linearizability of eight different algorithms and the experiment shows that both can offer significant speed-up, allowing us to explore further on error analysis of concurrent objects based on fine-grained traces.

References

[1]
Source code of java.util.concurrent.ConcurrentLinkedQueue (Java Platform Standard Edition 6).
[2]
A. Bouajjani, M. Emmi, C. Enea, J. Hamza. Tractable Refinement Checking for Concurrent Objects. In POPL15, 2015.
[3]
A. Bouajjani, M. Emmi, C. Enea, J. Hamza. Verifying Concurrent Programs against Sequential Specifications. In ESOP'13, 2013.
[4]
S. Burckhardt, C. Dern, M. Musuvathi, and R. Tan. Line-up: Complete and Automatic Linearizability Checker. In PLDI10, 2010.
[5]
R. Colvin, L. Groves, V. Luchangco, and M. Moir. Formal verification of a lazy concurrent list-based set algorithm. In CAV'06, 2006.
[6]
T. Elmas, S. Qadeer, A. Sezgin, O. Subasi, and S. Tasiran. Simplifying linearizability proofs with reduction and abstraction. In TACAS'10, 2010.
[7]
M. Emmi, C. Enea, J. Hamza. Monitoring Refinement via Symbolic Reasoning. In PLDI15, 2015.
[8]
X. Feng. Local rely-guarantee reasoning. In POPL09, 2009.
[9]
S. Heller, M. Herlihy, V. Luchangco, M. Moir, W. N. Scherer III, and N. Shavit. A Lazy Concurrent List-Based Set Algorithm. In OPODIS'05, 2005.
[10]
M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, Apr. 2008.
[11]
M. Herlihy and J. Wing. Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Language and Systems, 12(3):463492, 1990.
[12]
A. Horn and D. Kroening. Faster linearizability checking via P-compositionality. In FORTE'15, 2015.
[13]
Y. Liu, W. Chen, Y. A. Liu, J. Sun, S. J. Zhang, and J. S. Dong. Verifying linearizability via optimized refinement checking. IEEE Transactions on Software Engineering, vol. 99, PrePrints, 2013.
[14]
M. M. Michael. High performance dynamic lock-free hash tables and list-based sets. In Parallel Algorithms and Architectures (SPAA02), 2002.
[15]
M. M. Michael and M. L. Scott. Nonblocking Algorithms and Preemption-Safe Locking on Multiprogrammed Shared Memory Multiprocessors. Journal of Parallel and Distributed Computing, 51:126, 1998.
[16]
M. Pradel, T. R. Gross. Fully automatic and precise detection of thread safety violations. In PLDI12, 2012.
[17]
S. Qadeer, A. Sezgin, and S. Tasiran. Back and forth: Prophecy variables for static verification of concurrent programs. Technical Report MSR-TR-2009-142, Microsoft Research, 2009.
[18]
G. Schellhorn, H. Wehrheim, and J. Derrick. How to prove algorithms linearisable. In CAV'12, 2012.
[19]
R. K. Treiber. Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, 1986.
[20]
V. Vafeiadis. Modular fine-grained concurrency verification. PhD thesis, University of Cambridge, 2007.
[21]
V. Vafeiadis. Automatically Proving Linearizability. In CAV'10, 2010.
[22]
M. Vechev and E. Yahav. Deriving Linearizable Fine-grained Concurrent Objects. In PLDI08, 2008.
[23]
M. Vechev, E. Yahav, and G. Yorsh. Experience with Model Checking Linearizability. In SPIN09, 2009.

Cited By

View all
  • (2023)VeriLin: A Linearizability Checker for Large-Scale Concurrent ObjectsTheoretical Aspects of Software Engineering10.1007/978-3-031-35257-7_12(202-220)Online publication date: 4-Jul-2023
  • (2021)Concurrent Correctness in Vector SpaceVerification, Model Checking, and Abstract Interpretation10.1007/978-3-030-67067-2_8(151-173)Online publication date: 17-Jan-2021
  • (2018)Interleaving-Tree Based Fine-Grained Linearizability Fault LocalizationDependable Software Engineering. Theories, Tools, and Applications10.1007/978-3-319-99933-3_7(108-126)Online publication date: 26-Aug-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '16: Proceedings of the 31st Annual ACM Symposium on Applied Computing
April 2016
2360 pages
ISBN:9781450337397
DOI:10.1145/2851613
© 2016 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 April 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. automatic verification
  2. fine-grained trace
  3. linearizability

Qualifiers

  • Research-article

Conference

SAC 2016
Sponsor:
SAC 2016: Symposium on Applied Computing
April 4 - 8, 2016
Pisa, Italy

Acceptance Rates

SAC '16 Paper Acceptance Rate 252 of 1,047 submissions, 24%;
Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Upcoming Conference

SAC '25
The 40th ACM/SIGAPP Symposium on Applied Computing
March 31 - April 4, 2025
Catania , Italy

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)VeriLin: A Linearizability Checker for Large-Scale Concurrent ObjectsTheoretical Aspects of Software Engineering10.1007/978-3-031-35257-7_12(202-220)Online publication date: 4-Jul-2023
  • (2021)Concurrent Correctness in Vector SpaceVerification, Model Checking, and Abstract Interpretation10.1007/978-3-030-67067-2_8(151-173)Online publication date: 17-Jan-2021
  • (2018)Interleaving-Tree Based Fine-Grained Linearizability Fault LocalizationDependable Software Engineering. Theories, Tools, and Applications10.1007/978-3-319-99933-3_7(108-126)Online publication date: 26-Aug-2018
  • (2017)Improving the Scalability of Automatic Linearizability Checking in SPINFormal Methods and Software Engineering10.1007/978-3-319-68690-5_7(105-121)Online publication date: 11-Oct-2017

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media