skip to main content
research-article

Modular verification of linearizability with non-fixed linearization points

Authors Info & Claims
Published:16 June 2013Publication History
Skip Abstract Section

Abstract

Locating linearization points (LPs) is an intuitive approach for proving linearizability, but it is difficult to apply the idea in Hoare-style logic for formal program verification, especially for verifying algorithms whose LPs cannot be statically located in the code. In this paper, we propose a program logic with a lightweight instrumentation mechanism which can verify algorithms with non-fixed LPs, including the most challenging ones that use the helping mechanism to achieve lock-freedom (as in HSY elimination-based stack), or have LPs depending on unpredictable future executions (as in the lazy set algorithm), or involve both features. We also develop a thread-local simulation as the meta-theory of our logic, and show it implies contextual refinement, which is equivalent to linearizability. Using our logic we have successfully verified various classic algorithms, some of which are used in the java.util.concurrent package.

References

  1. M. Abadi and L. Lamport. The existence of refinement mappings. Theor. Comput. Sci., 82 (2): 253--284, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Amit, N. Rinetzky, T. Reps, M. Sagiv, and E. Yahav. Comparison under abstraction for verifying linearizability. In CAV'07. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. R. Colvin, L. Groves, V. Luchangco, and M. Moir. Formal verification of a lazy concurrent list-based set algorithm. In CAV'06. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Derrick, G. Schellhorn, and H. Wehrheim. Verifying linearisability with potential linearisation points. In FM'11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Derrick, G. Schellhorn, and H. Wehrheim. Mechanically verified proof obligations for linearizability. ACM TOPLAS, 33 (1): 4, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Doherty, L. Groves, V. Luchangco, and M. Moir. Formal verification of a practical lock-free queue algorithm. In FORTE'04.Google ScholarGoogle Scholar
  7. T. Elmas, S. Qadeer, A. Sezgin, O. Subasi, and S. Tasiran. Simplifying linearizability proofs with reduction and abstraction. In TACAS'10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. X. Feng. Local rely-guarantee reasoning. In POPL'09. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. I. Filipović, P. O'Hearn, N. Rinetzky, and H. Yang. Abstraction for concurrent objects. Theor. Comput. Sci., 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Gotsman and H. Yang. Linearizability with ownership transfer. In CONCUR'12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. L. Harris. A pragmatic implementation of non-blocking linked-lists. In DISC'01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. T. L. Harris, K. Fraser, and I. A. Pratt. A practical multi-word compare-and-swap operation. In DISC'02. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. S. Heller, M. Herlihy, V. Luchangco, M. Moir, W. N. S. III, and N. Shavit. A lazy concurrent list-based set algorithm. In OPODIS'05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Hendler, N. Shavit, and L. Yerushalmi. A scalable lock-free stack algorithm. In SPAA'04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Herlihy and N. Shavit. The Art of Multiprocessor Programming. Morgan Kaufmann, Apr. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Herlihy and J. Wing. Linearizability: a correctness condition for concurrent objects. ACM TOPLAS, 12 (3): 463--492, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. C. B. Jones. Tentative steps toward a development method for interfering programs. ACM TOPLAS, 5 (4): 596--619, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. H. Liang and X. Feng. Modular verification of linearizability with non-fixed linearization points. Technical report, USTC, March 2013. http://kyhcs.ustcsz.edu.cn/relconcur/lin.Google ScholarGoogle Scholar
  19. H. Liang, X. Feng, and M. Fu. A rely-guarantee-based simulation for verifying concurrent program transformations. In POPL'12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Y. Liu, W. Chen, Y. A. Liu, and J. Sun. Model checking linearizability via refinement. In FM'09. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. N. A. Lynch and F. W. Vaandrager. Forward and backward simulations: I. untimed systems. Inf. Comput., 121 (2): 214--233, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. M. Michael. High performance dynamic lock-free hash tables and list-based sets. In SPAA'02. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. M. Michael and M. L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In PODC'96. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. P. W. O'Hearn. Resources, concurrency, and local reasoning. Theor. Comput. Sci., 375 (1--3): 271--307, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. W. O'Hearn, N. Rinetzky, M. T. Vechev, E. Yahav, and G. Yorsh. Verifying linearizability with hindsight. In PODC'10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. O'Hearn, Yang, and Reynolds}OHearn04poplP. W. O'Hearn, H. Yang, and J. C. Reynolds. Separation and information hiding. In POPL'04,natexlabb. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. S. Qadeer, A. Sezgin, and S. Tasiran. Back and forth: Prophecy variables for static verification of concurrent programs. Tech Report.Google ScholarGoogle Scholar
  28. G. Schellhorn, H. Wehrheim, and J. Derrick. How to prove algorithms linearisable. In CAV'12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. R. K. Treiber. System programming: coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center, 1986.Google ScholarGoogle Scholar
  30. A. Turon and M. Wand. A separation logic for refining concurrent objects. In POPL'11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. A. Turon, J. Thamsborg, A. Ahmed, L. Birkedal, and D. Dreyer. Logical relations for fine-grained concurrency. In POPL'13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. V. Vafeiadis. Modular fine-grained concurrency verification. Thesis.Google ScholarGoogle Scholar
  33. V. Vafeiadis. Automatically proving linearizability. In CAV, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. M. T. Vechev, E. Yahav, and G. Yorsh. Experience with model checking linearizability. In SPIN'09. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Modular verification of linearizability with non-fixed linearization points

            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 48, Issue 6
              PLDI '13
              June 2013
              515 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/2499370
              Issue’s Table of Contents
              • cover image ACM Conferences
                PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
                June 2013
                546 pages
                ISBN:9781450320146
                DOI:10.1145/2491956

              Copyright © 2013 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 16 June 2013

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!