Abstract
We study the problem of monitoring concurrent program runs for atomicity violations. Unearthing fundamental results behind scheduling algorithms in database control, we build space-efficient monitoring algorithms for checking atomicity that use space polynomial in the number of active threads and entities, and independent of the length of the run monitored. Second, by interpreting the monitoring algorithm as a finite automaton, we solve the model checking problem for atomicity of finite-state concurrent models. This establishes (for the first time) that model checking finite-state concurrent models for atomicity is decidable, and remedies incorrect proofs published in the literature. Finally, we exhibit experimental evidence that our atomicity monitoring algorithm gives substantial time and space benefits on benchmark applications.
Keywords
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.
References
Alur, R.: Personal communication
Alur, R., McMillan, K.L., Peled, D.: Model-checking of correctness conditions for concurrent objects. Information and Computation 160(1-2), 167–188 (2000)
Ball, T., Rajamani, S.K.: The slam project: debugging system software via static analysis. In: POPL, pp. 1–3 (2002)
Bernstein, P.A., Goodman, N.: Concurrency control in distributed database systems. ACM Comput. Surv. 13(2), 185–221 (1981)
Casanova, M.A.: Concurrency Control Problem for Database Systems. Springer, New York (1981)
Engler, D.R., Ashcraft, K.: Racerx: effective, static detection of race conditions and deadlocks. In: SOSP, pp. 237–252 (2003)
Farzan, A., Madhusudan, P.: Causal Atomicity. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, pp. 315–328. Springer, Heidelberg (2006)
Flanagan, C., Freund, S.N.: Atomizer: a dynamic atomicity checker for multithreaded programs. In: POPL 2004, pp. 256–267 (2004)
Flanagan, C., Qadeer, S.: Types for atomicity. In: TLDI, pp. 1–12 (2003)
Flanagan, C., Qadeer, S.: A type and effect system for atomicity. In: ACM SIGPPLAN PLDI 2003, pp. 338–349. ACM Press, New York (2003)
Fle, M.P., Roucairol, G.: On serializability of iterated transactions. In: PODC 1982: Proc. of ACM SIGACT-SIGOPS PODC, pp. 194–200. ACM Press, New York (1982)
Hadzilacos, T., Yannakakis, M.: Deleting completed transactions. In: ACM SIGACT-SIGMOD PODS, pp. 43–46 (1986)
Hatcliff, J., Robby, Dwyer, M.: Verifying atomicity specifications for concurrent object-oriented software using model checking. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 175–190. Springer, Heidelberg (2004)
Java Grand Benchmark Suite, http://www.javagrande.org/
Lipton, R.J.: Reduction: a method of proving properties of parallel programs. Commun. ACM 18(12), 717–721 (1975)
Lu, S., Park, S., Seo, E., Zhou, Y.: Learning from mistakes — a comprehensive study on real world concurrency bug characteristics. In: ASPLOS (2008)
Lu, S., Tucek, J., Qin, F., Zhou, Y.: Avio: Detecting atomicity violations via access-interleaving invariants. In: ASPLOS (2006)
Naik, M., Aiken, A., Whaley, J.: Effective static race detection for java. In: Schwartzbach, M.I., Ball, T. (eds.) PLDI, pp. 308–319. ACM, New York (2006)
Netzer, R.H.B., Miller, B.P.: What are race conditions? some issues and formalizations. LOPLAS 1(1), 74–88 (1992)
Papadimitriou, C.: The theory of database concurrency control. Computer Science Press, Inc., USA (1986)
von Praun, C., Gross, T.R.: Object race detection. SIGPLAN Not. 36(11), 70–82 (2001)
Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: A dynamic data race detector for multi-threaded programs. In: SOSP (1997)
Shavit, N., Touitou, D.: Software transactional memory. In: PODC, pp. 204–213 (1995)
Wang, L., Stoller, S.D.: Personal communication
Wang, L., Stoller, S.D.: Accurate and efficient runtime detection of atomicity errors in concurrent programs. In: PPoPP, pp. 137–146 (2006)
Wang, L., Stoller, S.D.: Runtime analysis of atomicity for multi-threaded programs. IEEE Transactions on Software Engineering 32, 93–110 (2006)
Xu, M., Bodík, R., Hill, M.D.: A serializability violation detector for shared-memory server programs. SIGPLAN Not. 40(6), 1–14 (2005)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Farzan, A., Madhusudan, P. (2008). Monitoring Atomicity in Concurrent Programs. In: Gupta, A., Malik, S. (eds) Computer Aided Verification. CAV 2008. Lecture Notes in Computer Science, vol 5123. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-70545-1_8
Download citation
DOI: https://doi.org/10.1007/978-3-540-70545-1_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-70543-7
Online ISBN: 978-3-540-70545-1
eBook Packages: Computer ScienceComputer Science (R0)