Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2676724.2693179acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Proving Lock-Freedom Easily and Automatically

Published: 13 January 2015 Publication History

Abstract

Lock-freedom is a liveness property satisfied by most non-blocking concurrent algorithms. It ensures that at any point at least one thread is making progress towards termination; so the system as a whole makes progress. As a global property, lock-freedom is typically shown by global proofs or complex iterated arguments. We show that this complexity is not needed in practice. By introducing simple loop depth counters into the programs, we can reduce proving lock-freedom to checking simple local properties on those counters. We have implemented the approach in Cave and report on our findings.

References

[1]
Robert Colvin and Brijesh Dongol. Verifying lock-freedom using well-founded orders. In ICTAC 2007: 4th International Colloquium on Theoretical Aspects of Computing, pages 124--138, 2007.
[2]
Robert Colvin and Brijesh Dongol. A general technique for proving lock-freedom. Sci. Comput. Program., 74 (3): 143--165, 2009.
[3]
Simon Doherty, Lindsay Groves, Victor Luchangco, and Mark Moir. Formal verification of a practical lock-free queue algorithm. In FORTE 2014: Formal Techniques for Networked and Distributed Systems, volume 3235 of phLecture Notes in Computer Science, pages 97--114. Springer, 2004. 10.1007/978-3-540-30232-2_7.
[4]
Alexey Gotsman, Byron Cook, Matthew J. Parkinson, and Viktor Vafeiadis. Proving that non-blocking algorithms don't block. In Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2009), pages 16--28. ACM, 2009. 10.1145/1480881.1480886.
[5]
Danny Hendler, Nir Shavit, and Lena Yerushalmi. A scalable lock-free stack algorithm. J. Parallel Distrib. Comput., 70 (1): 1--12, 2010. 10.1016/j.jpdc.2009.08.011.
[6]
Maurice Herlihy. Wait-free synchronization. ACM Transactions on Programming Languages and Systems (TOPLAS), 13 (1): 124--149, 1991.
[7]
Maurice Herlihy and Nir Shavit. The art of multiprocessor programming. Morgan Kaufmann, 2008. ISBN 978-0-12-370591-4.
[8]
Maurice P. Herlihy, Victor Luchangco, and Mark Moir. Obstruction-free synchronization: Double-ended queues as an example. In Proceedings of the 23rd International Conference on Distributed Computing Systems (ICDCS 2003), pages 522--529. IEEE, 2003.
[9]
Jan Hoffmann, Michael Marmar, and Zhong Shao. Quantitative reasoning for proving lock-freedom. In Proceedings of the 28th Annual IEEE/ACM Symposium on Logic in Computer Science (LICS), pages 124--133. IEEE, 2013.
[10]
Hongjin Liang, Xinyu Feng, and Zhong Shao. Compositional verification of termination-preserving refinement of concurrent programs. In Joint Meeting of the 23rd EACSL Annual Conference on Computer Science Logic and the 29th Annual ACM/IEEE Symposium on Logic in Computer Science (CSL-LICS 2014). ACM, 2014.
[11]
Henry Massalin and Calton Pu. A lock-free multiprocessor os kernel. ACM SIGOPS Operating Systems Review, 26 (2): 108, 1992.
[12]
Maged M. Michael and Michael L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In PODC 1996: 15th Annual ACM Symposium on Principles of Distributed Computing, pages 267--275. ACM, 1996. 10.1145/248052.248106.
[13]
R. K. Treiber. Systems programming: Coping with parallelism. Technical Report Technical Report RJ 5118, IBM Almaden Research Center, April 1986.
[14]
Viktor Vafeiadis. Automatically proving linearizability. In CAV 2010: 22nd Int. Conference on Computer Aided Verification, pages 450--464. Springer, 2010.
[15]
Viktor Vafeiadis. RGSep action inference. In VMCAI 2010: 11th Int. Conference on Verification, Model Checking, and Abstract Interpretation, pages 345--361. Springer, 2010.
[16]
Viktor Vafeiadis and Matthew J. Parkinson. A marriage of rely/guarantee and separation logic. InCONCUR 2007: 18th International Conference on Concurrency Theory, volume 4703 of Lecture Notes in Computer Science, pages 256--271. Springer, 2007. 10.1007/978-3-540-74407-8_18.

Cited By

View all
  • (2023)CQS: A Formally-Verified Framework for Fair and Abortable SynchronizationProceedings of the ACM on Programming Languages10.1145/35912307:PLDI(244-266)Online publication date: 6-Jun-2023
  • (2021)Rely-guarantee bound analysis of parameterized concurrent shared-memory programsFormal Methods in System Design10.1007/s10703-021-00370-8Online publication date: 6-Apr-2021
  • (2019)Practical Progress Verification of Descriptor-Based Non-Blocking Data Structures2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS)10.1109/MASCOTS.2019.00019(83-93)Online publication date: Oct-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
CPP '15: Proceedings of the 2015 Conference on Certified Programs and Proofs
January 2015
192 pages
ISBN:9781450332965
DOI:10.1145/2676724
  • Program Chairs:
  • Xavier Leroy,
  • Alwen Tiu
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 13 January 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. lock-freedom
  3. rgsep
  4. verification

Qualifiers

  • Research-article

Funding Sources

Conference

POPL '15
Sponsor:

Acceptance Rates

CPP '15 Paper Acceptance Rate 18 of 26 submissions, 69%;
Overall Acceptance Rate 18 of 26 submissions, 69%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)1
Reflects downloads up to 27 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)CQS: A Formally-Verified Framework for Fair and Abortable SynchronizationProceedings of the ACM on Programming Languages10.1145/35912307:PLDI(244-266)Online publication date: 6-Jun-2023
  • (2021)Rely-guarantee bound analysis of parameterized concurrent shared-memory programsFormal Methods in System Design10.1007/s10703-021-00370-8Online publication date: 6-Apr-2021
  • (2019)Practical Progress Verification of Descriptor-Based Non-Blocking Data Structures2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS)10.1109/MASCOTS.2019.00019(83-93)Online publication date: Oct-2019
  • (2018)Rely-Guarantee Reasoning for Automated Bound Analysis of Lock-Free Algorithms2018 Formal Methods in Computer Aided Design (FMCAD)10.23919/FMCAD.2018.8603020(1-9)Online publication date: Oct-2018

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