Skip to main content

Verifying Commit-Atomicity Using Model-Checking

  • Conference paper
Model Checking Software (SPIN 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2989))

Included in the following conference series:

Abstract

The notion that certain procedures are atomic provides a valuable partial specification for many multithreaded software systems. Several existing tools verify atomicity by showing that every interleaved execution reduces to an equivalent serial execution (in which the actions of each atomic procedure are not interleaved with actions of other threads). However, experiments with these tools have highlighted a number of interesting procedures that, although atomic, are not reducible.

This paper presents a more complete technique for verifying atomicity. Essentially, this technique explores non-serial and serial executions of the multithreaded system simultaneously to ensure that every non-serial execution yields the same final state as the corresponding serial execution. Using the SPIN model checker, we have applied this technique to verify the atomicity of a number of irreducible procedures that could not be handled by previous reduction-based tools for checking atomicity.

This work was partly supported by the NSF under Grant CCR-03411797 and by faculty research funds granted by the University of California at Santa Cruz.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Atkinson, M.P., Chisholm, K.J., Cockshott, W.P.: PS-Algol: an Algol with a persistent heap. ACM SIGPLAN Notices 17(7), 24–31 (1981)

    Article  Google Scholar 

  2. Atkinson, M.P., Morrison, D.: Procedures as persistent data objects. ACM Transactions on Programming Languages and Systems 7(4), 539–559 (1985)

    Article  MATH  Google Scholar 

  3. Back, R.-J.: A method for refining atomicity in parallel algorithms. In: Odijk, E., Rem, M., Syre, J.-C. (eds.) PARLE 1989. LNCS, vol. 366, pp. 199–216. Springer, Heidelberg (1989)

    Google Scholar 

  4. Cohen, E., Lamport, L.: Reduction in TLA. In: Sangiorgi, D., de Simone, R. (eds.) CONCUR 1998. LNCS, vol. 1466, pp. 317–331. Springer, Heidelberg (1998)

    Google Scholar 

  5. Deng, X., Dwyer, M., Hatcliff, J., Mizuno, M.: Invariant-based specification, synthesis, and verification of synchronization in concurrent programs. In: International Conference on Software Engineering, pp. 442–452 (2002)

    Google Scholar 

  6. Doeppner Jr., T.W.: Parallel program correctness through refinement. In: Proceedings of the ACM Symposium on the Principles of Programming Languages, pp. 155–169 (1977)

    Google Scholar 

  7. Eppinger, J.L., Mummert, L.B., Spector, A.Z.: Camelot and Avalon: A Distributed Transaction Facility. Morgan Kaufmann, San Francisco (1991)

    Google Scholar 

  8. Flanagan, C., Freund, S.N.: Atomizer: A dynamic atomicity checker for multithreaded programs. In: Proceedings of the ACM Symposium on the Principles of Programming Languages (2004)

    Google Scholar 

  9. Flanagan, C., Qadeer, S.: A type and effect system for atomicity. In: Proceedings of the ACM Conference on Programming Language Design and Implementation, pp. 338–349 (2003)

    Google Scholar 

  10. Flanagan, C., Qadeer, S.: Types for atomicity. In: Proceedings of the ACM Workshop on Types in Language Design and Implementation, pp. 1–12 (2003)

    Google Scholar 

  11. Freund, S.N., Qadeer, S.: Checking concise specifications for multithreaded software. In: Workshop on Formal Techniques for Java-like Programs (2003)

    Google Scholar 

  12. Harris, T.L., Fraser, K.: Language support for lightweight transactions. In: Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages and Applications, pp. 388–402 (2003)

    Google Scholar 

  13. Hatcliff, J., Robby, Dwyer, M.B.: Verifying atomicity specifications for concurrent object-oriented software using model-checking. In: Proceedings of the International Conference on Verification, Model Checking and Abstract Interpretation (2004)

    Google Scholar 

  14. Herlihy, M.P., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12(3), 463–492 (1990)

    Article  Google Scholar 

  15. Lamport, L., Schneider, F.B.: Pretending atomicity. Research Report 44, DEC Systems Research Center (1989)

    Google Scholar 

  16. Lipton, R.J.: Reduction: A method of proving properties of parallel programs. Communications of the ACM 18(12), 717–721 (1975)

    Article  MATH  MathSciNet  Google Scholar 

  17. Liskov, B., Curtis, D., Johnson, P., Scheifler, R.: Implementation of Argus. In: Proceedings of the Symposium on Operating Systems Principles, pp. 111–122 (1987)

    Google Scholar 

  18. Lomet, D.B.: Process structuring, synchronization, and recovery using atomic actions. Language Design for Reliable Software, 128–137 (1977)

    Google Scholar 

  19. Misra, J.: A Discipline of Multiprogramming: Programming Theory for Distributed Applications. Springer, Heidelberg (2001)

    MATH  Google Scholar 

  20. Papadimitriou, C.: The theory of database concurrency control. Computer Science Press, Rockville (1986)

    MATH  Google Scholar 

  21. Peled, D.: Combining partial order reductions with on-the-fly model-checking. In: Dill, D. (ed.) CAV 1994. LNCS, vol. 818, pp. 377–390. Springer, Heidelberg (1994)

    Google Scholar 

  22. Qadeer, S., Wu, D.: Debugging concurrent programs with sequential analysis (2003) (submitted for publication)

    Google Scholar 

  23. Wang, L., Stoller, S.D.: Run-time analysis for atomicity. In: Proceedings of the Workshop on Runtime Verification. Electronic Notes in Computer Science, vol. 89(2), Elsevier, Amsterdam (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Flanagan, C. (2004). Verifying Commit-Atomicity Using Model-Checking. In: Graf, S., Mounier, L. (eds) Model Checking Software. SPIN 2004. Lecture Notes in Computer Science, vol 2989. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24732-6_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24732-6_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-21314-7

  • Online ISBN: 978-3-540-24732-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics