skip to main content
research-article

Expressive modular fine-grained concurrency specification

Published:26 January 2011Publication History
Skip Abstract Section

Abstract

Compared to coarse-grained external synchronization of operations on data structures shared between concurrent threads, fine-grained, internal synchronization can offer stronger progress guarantees and better performance. However, fully specifying operations that perform internal synchronization modularly is a hard, open problem. The state of the art approaches, based on linearizability or on concurrent abstract predicates, have important limitations on the expressiveness of specifications. Linearizability does not support ownership transfer, and the concurrent abstract predicates-based specification approach requires hardcoding a particular usage protocol. In this paper, we propose a novel approach that lifts these limitations and enables fully general specification of fine-grained concurrent data structures. The basic idea is that clients pass the ghost code required to instantiate an operation's specification for a specific client scenario into the operation in a simple form of higher-order programming.

We machine-checked the theory of the paper using the Coq proof assistant. Furthermore, we implemented the approach in our program verifier VeriFast and used it to verify two challenging fine-grained concurrent data structures from the literature: a multiple-compare-and-swap algorithm and a lock-coupling list.

Skip Supplemental Material Section

Supplemental Material

26-mpeg-4.mp4

mp4

325.6 MB

References

  1. Richard Bornat, Cristiano Calcagno, Peter O'Hearn, and Matthew Parkinson. Permission accounting in separation logic. In POPL, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Markus Dahlweid, Michal Moskal, Thomas Santen, Stephan Tobies, and Wolfram Schulte. VCC: Contract-based modular verification of concurrent C. In ICSE, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  3. Thomas Dinsdale-Young, Mike Dodds, Philippa Gardner, Matthew Parkinson, and Viktor Vafeiadis. Concurrent abstract predicates. In ECOOP, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Alexey Gotsman, Josh Berdine, Byron Cook, Noam Rinetzky, and Mooly Sagiv. Local reasoning for storable locks and threads. In APLAS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Tim Harris, Keir Fraser, and Ian A. Pratt. A practical multi-word compare-and-swap operation. In 16th International Symposium on Distributed Computing, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Maurice Herlihy and Jeanette Wing. Linearizability: A correctness condition for concurrent objects. ACM TOPLAS, 12(3), 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bart Jacobs and Frank Piessens. Expressive modular fine-grained concurrency specification (extended version). Technical Report CW590, Dept. CS, K. U. Leuven, 2010.Google ScholarGoogle Scholar
  8. Bart Jacobs, Jan Smans, and Frank Piessens. A quick tour of the VeriFast program verifier. In APLAS, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. B. Jones. Specification and design of (parallel) programs. In IFIP Congress, 1983.Google ScholarGoogle Scholar
  10. K. Rustan M. Leino, Peter Müller, and Jan Smans. Foundations of Security Analysis and Design V, FOSAD 2007/2008/2009 Tutorial Lectures, volume 5705 of LNCS, chapter Verification of concurrent programs with Chalice. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Peter W. O'Hearn, John Reynolds, and Hongseok Yang. Local reasoning about programs that alter data structures. In CSL, 2001. Google ScholarGoogle ScholarCross RefCross Ref
  12. Susan Owicki and David Gries. Verifying properties of parallel programs: An axiomatic approach. CACM, 19(5):279--285, May 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Susan Owicki and David Gries. An axiomatic proof technique for parallel programs i. Acta Inf., 6, 1976.Google ScholarGoogle Scholar
  14. J. C. Reynolds. Separation logic: a logic for shared mutable data structures. In LICS, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Viktor Vafeiadis. Modular fine-grained concurrency verification. PhD thesis, Computer Laboratory, University of Cambridge, July 2007.Google ScholarGoogle Scholar
  16. Viktor Vafeiadis. Automatically proving linearizability. In CAV, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Viktor Vafeiadis and Matthew Parkinson. A marriage of rely/guarantee and separation logic. In CONCUR, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Expressive modular fine-grained concurrency specification

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 46, Issue 1
      POPL '11
      January 2011
      624 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1925844
      Issue’s Table of Contents
      • cover image ACM Conferences
        POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
        January 2011
        652 pages
        ISBN:9781450304900
        DOI:10.1145/1926385

      Copyright © 2011 ACM

      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 ACM 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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 26 January 2011

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader