Composable specifications for structured shared-memory communication

作者: Benjamin P. Wood , Adrian Sampson , Luis Ceze , Dan Grossman

DOI: 10.1145/1869459.1869473

关键词:

摘要: In this paper we propose a communication-centric approach to specifying and checking how multithreaded programs use shared memory perform inter-thread communication. Our complements past efforts for improving the safety of such as race detection atomicity checking. Unlike prior work, focus on what pieces code are allowed communicate with one another, opposed declaring data items or blocks should be atomic. We develop language that supports composable specifications at multiple levels abstraction allows libraries specify whether not shared-memory communication is exposed clients. The precise meaning specification given formal semantics present. have developed dynamic-analysis tool Java observes program execution see if it obeys specification. report results using several benchmark which added specifications, concluding our matches modular structure applications performant enough in development testing.

参考文章(47)
Cormac Flanagan, Martín Abadi, Types for Safe Locking european symposium on programming. pp. 91- 108 ,(1999) , 10.1007/3-540-49099-X_7
Cormac Flanagan, Martín Abadi, Object Types against Races CONCUR’99 Concurrency Theory. pp. 288- 303 ,(1999) , 10.1007/3-540-48320-9_21
Shaz Qadeer, Iulian Neamtiu, Thomas Ball, Piramanayagam Arumuga Nainar, Madanlal Musuvathi, Gerard Basler, Finding and reproducing Heisenbugs in concurrent programs operating systems design and implementation. pp. 267- 280 ,(2008) , 10.5555/1855741.1855760
Zachary Anderson, David Gay, Rob Ennals, Eric Brewer, SharC Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation - PLDI '08. ,vol. 43, pp. 149- 158 ,(2008) , 10.1145/1375581.1375600
Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, Eraser: a dynamic data race detector for multithreaded programs ACM Transactions on Computer Systems. ,vol. 15, pp. 391- 411 ,(1997) , 10.1145/265924.265927
Barbara H. Liskov, Jeannette M. Wing, A behavioral notion of subtyping ACM Transactions on Programming Languages and Systems. ,vol. 16, pp. 1811- 1841 ,(1994) , 10.1145/197320.197383
Rahul Agarwal, Amit Sasturkar, Liqiang Wang, Scott D. Stoller, Optimized run-time race detection and atomicity checking using partial discovered types Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering - ASE '05. pp. 233- 242 ,(2005) , 10.1145/1101908.1101944
Christoph von Praun, Thomas R. Gross, Object race detection conference on object-oriented programming systems, languages, and applications. ,vol. 36, pp. 70- 82 ,(2001) , 10.1145/504282.504288
Eran Yahav, Verifying safety properties of concurrent Java programs using 3-valued logic Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '01. ,vol. 36, pp. 27- 40 ,(2001) , 10.1145/360204.360206
Radu Rugina, Martin C. Rinard, Pointer analysis for structured parallel programs ACM Transactions on Programming Languages and Systems. ,vol. 25, pp. 70- 116 ,(2003) , 10.1145/596980.596982