Skip to main content

Sound Transaction-Based Reduction Without Cycle Detection

  • Conference paper
Model Checking Software (SPIN 2005)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3639))

Included in the following conference series:

Abstract

Partial-order reduction is widely used to alleviate state-space explosion in model checkers for concurrent programs. Traditional approaches to partial-order reduction are based on ample sets. Natural ample sets can be computed for threads that communicate with each other predominantly through message queues. For threads that communicate with shared memory using locks for synchronization, Lipton’s theory of reduction provides a promising way to aggregate several fine-grained transitions into larger transactions. In traditional partial-order reduction, actions that are not in the ample set are delayed, thus avoiding the redundant exploration of equivalent interleaving orders. Delaying the execution of actions indefinitely can lead to loss of soundness. This is called the ignoring problem. The usual solution to the ignoring problem is by Cycle Detection. Explicit state model checkers usually use Depth First Search, and when a cycle is detected, disallow using a reduced ample set that closes the cycle.

The ignoring problem exists in transaction-based reduction as well. We present a novel solution to the ignoring problem in the context of transaction-based reduction. We designate certain states as commit points and track the exploration to discover whether the reduced exploration guarantees a path from each commit point to a state where the transaction is completed. If such a path does not exist, we detect this at the time a commit point is popped from the stack, and schedule all threads at the commit point. This paper presents our algorithm, called Commit Point Completion (CPC). We have implemented both CPC and Cycle Detection in the Zing model checker, and find that the CPC algorithm performs better.

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. Clarke, E., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)

    Google Scholar 

  2. Valmari, A.: A stubborn attack on state explosion. In: CAV 1991: Computer Aided Verification, pp. 156–165. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

  3. Holzmann, G., Peled, D.: An improvement in formal verification. In: FORTE 1994: Formal Description Techniques, pp. 197–211. Chapman & Hall, Boca Raton (1994)

    Google Scholar 

  4. Peled, D.: Partial order reduction: Model-checking using representatives. In: MFCS 1996: Mathematical Foundations of Computer Science, pp. 93–112. Springer, Heidelberg (1996)

    Google Scholar 

  5. Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems. LNCS, vol. 1032. Springer, Heidelberg (1996)

    Google Scholar 

  6. Godefroid, P.: Model checking for programming languages using Verisoft. In: POPL 1997: Principles of Programming Languages, pp. 174–186 (1997)

    Google Scholar 

  7. 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 

  8. Qadeer, S., Rajamani, S.K., Rehof, J.: Summarizing procedures in concurrent programs. In: Principles of Programming Languages, pp. 245–255. ACM, New York (2004)

    Google Scholar 

  9. Flanagan, C., Qadeer, S.: Transactions for software model checking. In: SoftMC 2003: Software Model Checking Workshop (2003)

    Google Scholar 

  10. Stoller, S.D., Cohen, E.: Optimistic synchronization-based state-space reduction. In: Garavel, H., Hatcliff, J. (eds.) TACAS 2003. LNCS, vol. 2619, pp. 489–504. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  11. Flanagan, C., Qadeer, S.: Types for atomicity. In: TLDI 2003: Types in Language Design and Implementation, pp. 1–12. ACM, New York (2003)

    Chapter  Google Scholar 

  12. Levin, V., Palmer, R., Qadeer, S., Rajamani, S.K.: Sound transction-based reduction without cycle detection. Technical Report MSR-TR-2005-40, Microsoft Research (2005), ftp://ftp.research.microsoft.com/pub/tr/TR-2005-40.pdf

  13. Ball, T., Rajamani, S.K.: The SLAM project: Debugging system software via static analysis. In: POPL 2002: Principles of Programming Languages, pp. 1–3. ACM, New York (2002)

    Google Scholar 

  14. Valmari, A.: Stubborn sets for reduced state space generation. In: Advances in Petrinets. LNCS, vol. 483. Springer, Heidelberg (1990)

    Google Scholar 

  15. Dwyer, M.B., Hatcliff, J., Robby, Ranganath, V.P.: Exploiting object excape and locking information in partial-order reducitons for concurrent object-oriented programs. Formal Methods in System Design 25, 199–240 (2004)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Levin, V., Palmer, R., Qadeer, S., Rajamani, S.K. (2005). Sound Transaction-Based Reduction Without Cycle Detection. In: Godefroid, P. (eds) Model Checking Software. SPIN 2005. Lecture Notes in Computer Science, vol 3639. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11537328_11

Download citation

  • DOI: https://doi.org/10.1007/11537328_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28195-5

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics