Model Checking Multithreaded Programs with Asynchronous Atomic Methods

  • Koushik Sen
  • Mahesh Viswanathan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4144)


In order to make multithreaded programming manageable, programmers often follow a design principle where they break the problem into tasks which are then solved asynchronously and concurrently on different threads. This paper investigates the problem of model checking programs that follow this idiom. We present a programming language Spl that encapsulates this design pattern. Spl extends simplified form of sequential Java to which we add the capability of making asynchronous method invocations in addition to the standard synchronous method calls and the ability to execute asynchronous methods in threads atomically and concurrently. Our main result shows that the control state reachability problem for finite Spl programs is decidable. Therefore, such multithreaded programs can be model checked using the counterexample guided abstraction-refinement framework.


Model Check Global State Regular Language Program Counter Reachability Problem 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Autebert, J.-M., Berstel, J., Boasson, L.: Context-free languages and pushdown automata. pp. 111–174 (1997)Google Scholar
  2. 2.
    Ball, T., Rajamani, S.: The SLAM Toolkit. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 260–264. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Bouajjani, A., Esparza, J., Schwoon, S., Strejcek, J.: Reachability analysis of multithreaded software with asynchronous communication. In: Ramanujam, R., Sen, S. (eds.) FSTTCS 2005. LNCS, vol. 3821, pp. 348–359. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  4. 4.
    Bouajjani, A., Esparza, J., Touili, T.: A generic approach to the static analysis of concurrent programs with procedures. In: Principles of Programming Languages (POPL 2003) (2003)Google Scholar
  5. 5.
    Bouajjani, A., Mueller-Olm, M., Touili, T.: Regular symbolic analysis of dynamic networks of pushdown systems. In: Abadi, M., de Alfaro, L. (eds.) CONCUR 2005. LNCS, vol. 3653, pp. 473–487. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Caucal, D.: On the regular structure of prefix rewriting. Theoretical Computer Science 106, 61–86 (1992)CrossRefMathSciNetGoogle Scholar
  7. 7.
    Chaki, S., Clarke, E., Groce, A., Jha, S., Veith, H.: Modular verification of software components in C. IEEE Transactions on Software Engineering (TSE) 30(6), 388–402 (2004)CrossRefGoogle Scholar
  8. 8.
    Cobleigh, J.M., Giannakopoulou, D., Pasareanu, C.S.: Learning assumptions for compositional verification. In: Garavel, H., Hatcliff, J. (eds.) ETAPS 2003 and TACAS 2003. LNCS, vol. 2619, pp. 331–346. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Dickson, L.E.: Finiteness of the odd perfect and primitive abundant numbers with r distinct prime factors. American Journal of Mathematics 35, 413–422 (1913)MATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Esparza, J.: Decidability and complexity of Petri net problems — An introduction. In: Reisig, W., Rozenberg, G. (eds.) APN 1998. LNCS, vol. 1491, pp. 374–428. Springer, Heidelberg (1998)Google Scholar
  11. 11.
    Esparza, J., Podelski, A.: Efficient algorithms for pre ⋆  and post ⋆  on interprocedural parallel flow graphs. In: Principles of Programming Languages (POPL 2000), pp. 1–11 (2000)Google Scholar
  12. 12.
    Finkel, A., Schnoebelen, P.: Well-structured transition systems everywhere! Theoretical Computer Science 256(1), 63–92 (2001)MATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Finkel, A., Willems, B., Wolper, P.: A direct symbolic approach to model checking pushdown systems. In: Proc. 2nd Int. Workshop on Verification of Infinite State Systems (INFINITY 1997). Electronic Notes in Theor. Comp. Sci., vol. 9. Elsevier, Amsterdam (1997)Google Scholar
  14. 14.
    Flanagan, C., Qadeer, S.: A type and effect system for atomicity. In: Proc. of the ACM SIGPLAN conference on Programming language design and implementation (PLDI 2003) (2003)Google Scholar
  15. 15.
    Henzinger, T., Jhala, R., Majumdar, R., Sutre, G.: Lazy Abstraction. In: Proc. of the ACM Symposium on Principles of Programming Languages, pp. 58–70 (2002)Google Scholar
  16. 16.
    Henzinger, T.A., Jhala, R., Majumdar, R., Qadeer, S.: Thread-modular abstraction refinement. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 262–274. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  17. 17.
    Holub, A.: Taming Java Threads. APress (2000)Google Scholar
  18. 18.
    Kruskal, J.B.: The theory of well-quasi-ordering: A frequently discovered concept. Journal of Combinatorial Theory: Series A 13(3), 297–305 (1972)MATHCrossRefMathSciNetGoogle Scholar
  19. 19.
    Lipton, R.: The reachability problem requires exponential space. Technical Report 62, Yale University (1976)Google Scholar
  20. 20.
    Lugiez, D., Schnoebelen, P.: The regular viewpoint on PA-processes. Theoretical Computer Science 274(1–2), 89–115 (2002)MATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Mayr, R.: Decidability and Complexity of Model Checking Problems for Infinite-State Systems. PhD thesis, Technical University Munich (1998)Google Scholar
  22. 22.
    Moller, F.: Infinite results. In: Proceedings of the Conference on Concurrency Theory, pp. 195–216 (1996)Google Scholar
  23. 23.
    Müller-Olm, M.: Precise interprocedural dependence analysis of parallel programs. Theoretical Computer Science 311, 325–388 (2004)MATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    Parikh, R.: On context-free languages. Journal of the ACM 13(4), 570–581 (1966)MATHCrossRefMathSciNetGoogle Scholar
  25. 25.
    Qadeer, S., Rajamani, S., Rehof, J.: Procedure summaries for model checking multithreaded software. In: Principles of Programming Languages (POPL 2004) (2004)Google Scholar
  26. 26.
    Qadeer, S., Rehof, J.: Context-bounded model checking of concurrent software. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 93–107. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  27. 27.
    Qadeer, S., Wu, D.: KISS: keep it simple and sequential. In: ACM SIGPLAN 2004 conference on Programming language design and implementation, pp. 14–24 (2004)Google Scholar
  28. 28.
    Ramalingam, G.: Context-sensitive synchronization-sensitive analysis is undecidable. ACM Trans. Program. Lang. Syst. 22(2), 416–430 (2000)CrossRefGoogle Scholar
  29. 29.
    Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)Google Scholar
  30. 30.
    Seidl, H., Steffen, B.: Constraint-based inter-procedural analysis of parallel programs. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, p. 351. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  31. 31.
    Sen, K., Viswanathan, M.: Model checking multithreaded programs with asynchronous atomic methods. Technical Report UIUCDCS-R-2006-2683, UIUC (2006)Google Scholar
  32. 32.
    Welc, A., Jagannathan, S., Hosking, A.L.: Transactional monitors for concurrent objects. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 519–542. Springer, Heidelberg (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Koushik Sen
    • 1
  • Mahesh Viswanathan
    • 1
  1. 1.Department of Computer ScienceUniversity of Illinois at Urbana-Champaign 

Personalised recommendations