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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Clarke, E., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)
Valmari, A.: A stubborn attack on state explosion. In: CAV 1991: Computer Aided Verification, pp. 156–165. Springer, Heidelberg (1991)
Holzmann, G., Peled, D.: An improvement in formal verification. In: FORTE 1994: Formal Description Techniques, pp. 197–211. Chapman & Hall, Boca Raton (1994)
Peled, D.: Partial order reduction: Model-checking using representatives. In: MFCS 1996: Mathematical Foundations of Computer Science, pp. 93–112. Springer, Heidelberg (1996)
Godefroid, P.: Partial-Order Methods for the Verification of Concurrent Systems. LNCS, vol. 1032. Springer, Heidelberg (1996)
Godefroid, P.: Model checking for programming languages using Verisoft. In: POPL 1997: Principles of Programming Languages, pp. 174–186 (1997)
Lipton, R.J.: Reduction: A method of proving properties of parallel programs. Communications of the ACM 18(12), 717–721 (1975)
Qadeer, S., Rajamani, S.K., Rehof, J.: Summarizing procedures in concurrent programs. In: Principles of Programming Languages, pp. 245–255. ACM, New York (2004)
Flanagan, C., Qadeer, S.: Transactions for software model checking. In: SoftMC 2003: Software Model Checking Workshop (2003)
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)
Flanagan, C., Qadeer, S.: Types for atomicity. In: TLDI 2003: Types in Language Design and Implementation, pp. 1–12. ACM, New York (2003)
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
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)
Valmari, A.: Stubborn sets for reduced state space generation. In: Advances in Petrinets. LNCS, vol. 483. Springer, Heidelberg (1990)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)