Towards the Automated Verification of Multithreaded Java Programs

In this paper we investigate the possible application of parameterized verification techniques to synchronization skeletons of multithreaded Java programs. As conceptual contribution, we identify a class of infinite-state abstract models, called Multi-Transfer Nets (MTNs), that preserve the main features of the semantics of concurrent Java. We achieve this goal by exploiting an interesting connection with the Broadcast Protocols of [7], and by introducing the notion of asynchronous rendez-vous. As technical contribution, we extend the symbolic verification techniques of [6] based on Covering Sharing Trees and structural invariants to MTNs. As practical contribution, we report on experimental results for verification of examples of multithreaded Java programs.

[1]  Doug Lea,et al.  Concurrent Programming In Java , 1996 .

[2]  Giorgio Delzanno,et al.  Attacking Symbolic State Explosion , 2001, CAV.

[3]  Giorgio Delzanno,et al.  Symbolic Representation of Upward-Closed Sets , 2000, TACAS.

[4]  D. Zampuniéris,et al.  Efficient handling of large sets of tuples with sharing trees , 1995, Proceedings DCC '95 Data Compression Conference.

[5]  Thomas A. Henzinger,et al.  HYTECH: a model checker for hybrid systems , 1997, International Journal on Software Tools for Technology Transfer.

[6]  A. Prasad Sistla,et al.  Reasoning about systems with many processes , 1992, JACM.

[7]  James C. Corbett,et al.  Constructing compact models of concurrent Java programs , 1998, ISSTA '98.

[8]  Parosh Aziz Abdulla,et al.  General decidability theorems for infinite-state systems , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[9]  Doug Lea Concurrent Programming in Java. Second Edition: Design Principles and Patterns , 1999 .

[10]  Alain Finkel,et al.  On the verification of broadcast protocols , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[11]  Gianfranco Ciardo,et al.  Petri Nets with Marking-Dependent Ar Cardinality: Properties and Analysis , 1994, Application and Theory of Petri Nets.

[12]  Doug Lea,et al.  Concurrent programming in Java - design principles and patterns , 1996, Java series.

[13]  Sagar Chaki,et al.  Parameterized Verification of Multithreaded Software Libraries , 2001, TACAS.

[14]  Kedar S. Namjoshi,et al.  On model checking for non-deterministic infinite-state systems , 1998, Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.98CB36226).

[15]  Philippe Schnoebelen,et al.  Well-structured transition systems everywhere! , 2001, Theor. Comput. Sci..