Automated Deadlock Detection in Synchronized Reentrant Multithreaded Call-Graphs

  • Frank S. de Boer
  • Immo Grabe
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5901)

Abstract

In this paper we investigate the synchronization of multithreaded call graphs with reentrance similar to call graphs in Java programs. We model the individual threads as Visibly Pushdown Automata (VPA) and analyse the reachability of a state in the product automaton by means of a Context Free Language (CFL) which captures the synchronized interleaving of threads. We apply this CFL-reachability analysis to detect deadlock.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alpuente, M., Vidal, G. (eds.): SAS 2008. LNCS, vol. 5079. Springer, Heidelberg (2008)MATHGoogle Scholar
  2. 2.
    Alur, R., Madhusudan, P.: Visibly Pushdown Languages. In: Babai, L. (ed.) STOC, pp. 202–211. ACM, New York (2004)CrossRefGoogle Scholar
  3. 3.
    Bouajjani, A., Esparza, J., Schwoon, S., Strejcek, J.: Reachability Analysis of Multithreaded Software with Asynchronous Communication. In: Sarukkai, S., 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. Int. J. Found. Comput. Sci. 14(4), 551 (2003)MATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Carotenuto, D., Murano, A., Peron, A.: 2-Visibly Pushdown Automata. In: Harju, T., Karhumäki, J., Lepistö, A. (eds.) DLT 2007. LNCS, vol. 4588, pp. 132–144. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Chaki, S., Clarke, E.M., Kidd, N., Reps, T.W., Touili, T.: Verifying Concurrent Message-Passing C Programs with Recursive Calls. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006. LNCS, vol. 3920, pp. 334–349. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 7.
    Kahlon, V., Ivancic, F., Gupta, A.: Reasoning About Threads Communicating via Locks. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 505–518. Springer, Heidelberg (2005)Google Scholar
  8. 8.
    Kidd, N., Lal, A., Reps, T.W.: Language Strength Reduction. In: Alpuente, Vidal [1], pp. 283–298Google Scholar
  9. 9.
    Lammich, P., Müller-Olm, M.: Conflict Analysis of Programs with Procedures, Dynamic Thread Creation, and Monitors. In: Alpuente, Vidal [1], pp. 205–220Google Scholar
  10. 10.
    Ramalingam, G.: Context-Sensitive Synchronization-Sensitive Analysis is Undecidable. ACM Transactions on Programming Languages and Systems 22 (2000)Google Scholar
  11. 11.
    Reps, T.W.: Program Analysis via Graph Reachability. Information & Software Technology 40(11-12), 701–726 (1998)CrossRefGoogle Scholar
  12. 12.
    Rinard, M.C.: Analysis of Multithreaded Programs. In: Cousot, P. (ed.) SAS 2001. LNCS, vol. 2126, pp. 1–19. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  13. 13.
    van den Brand, M., van Deursen, A., Heering, J., de Jong, H., de Jonge, M., Kuipers, T., Klint, P., Moonen, L., Olivier, P., Scheerder, J., Vinju, J., Visser, E., Visser, J.: The asf+sdf Meta-Environment: A Component-Based Language Development Environment. Electronic Notes in Theoretical Computer Science 44(2), 3–8 (2001); LDTA 2001, First Workshop on Language Descriptions, Tools and Applications (a Satellite Event of ETAPS 2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Frank S. de Boer
    • 1
  • Immo Grabe
    • 1
    • 2
  1. 1.CWIAmsterdamThe Netherlands
  2. 2.Christian-Albrechts-University KielGermany

Personalised recommendations