A Decision Procedure for Detecting Atomicity Violations for Communicating Processes with Locks
We present a new decision procedure for detecting property violations in pushdown models for concurrent programs that use lock-based synchronization, where each thread’s lock operations are properly nested (à la synchronized methods in Java). The technique detects violations expressed as indexed phase automata (PAs)—a class of non-deterministic finite automata in which the only loops are self-loops.
Our interest in PAs stems from their ability to capture atomic-set serializability violations. (Atomic-set serializability is a relaxation of atomicity to only a user-specified set of memory locations.) We implemented the decision procedure and applied it to detecting atomic-set-serializability violations in models of concurrent Java programs. Compared with a prior method based on a semi-decision procedure, not only was the decision procedure 7.5X faster overall, but the semi-decision procedure timed out on about 68% of the queries versus 4% for the decision procedure.
Unable to display preview. Download preview PDF.
- 4.Bouajjani, A., Esparza, J., Touili, T.: A generic approach to the static analysis of concurrent programs with procedures. In: POPL (2003)Google Scholar
- 7.Kahlon, V., Gupta, A.: On the analysis of interacting pushdown systems. In: POPL (2007)Google Scholar
- 8.Vaziri, M., Tip, F., Dolby, J.: Associating synchronization constraints with data in an object-oriented language. In: POPL (2006)Google Scholar
- 9.Flanagan, C., Qadeer, S.: A type and effect system for atomicity. In: PLDI (2003)Google Scholar
- 12.Finkel, A., Willems, B.: A direct symbolic approach to model checking pushdown systems. Elec. Notes in Theor. Comp. Sci., vol. 9 (1997)Google Scholar
- 13.Kidd, N., Lammich, P., Touili, T., Reps, T.: A decision procedure for detecting atomicity violations for communicating processes with locks. Technical Report 1649r, Univ. of Wisconsin (April 2009), http://www.cs.wisc.edu/wpis/abstracts/tr1649.abs.html
- 15.Kahlon, V., Gupta, A.: Personal communication (January 2009)Google Scholar
- 16.Schwoon, S.: Model-Checking Pushdown Systems. PhD thesis, TUM (2002)Google Scholar
- 17.Eytani, Y., Havelund, K., Stoller, S.D., Ur, S.: Towards a framework and a benchmark for testing tools for multi-threaded programs. Conc. and Comp. Prac. and Exp. 19(3) (2007)Google Scholar
- 18.Reps, T.: Program analysis via graph reachability. Inf. and Softw. Tech. 40 (1998)Google Scholar
- 20.Reps, T., Schwoon, S., Jha, S., Melski, D.: Weighted pushdown systems and their application to interprocedural dataflow analysis. SCP 58 (2005)Google Scholar
- 21.Kidd, N., Lal, A., Reps, T.: WALi: The Weighted Automaton Library (February 2009), http://www.cs.wisc.edu/wpis/wpds/download.php
- 22.BuDDy: A BDD package (July 2004), http://buddy.wiki.sourceforge.net/
- 24.Lammich, P., Müller-Olm, M., Wenner, A.: Predecessor sets of dynamic pushdown networks with tree-regular constraints. In: CAV (2009) (to appear)Google Scholar