LOCKSMITH

作者: Polyvios Pratikakis , Jeffrey S. Foster , Michael Hicks

DOI: 10.1145/1133255.1134019

关键词: Type inferenceData structureLock (computer science)Theoretical computer scienceComputer scienceThread (computing)LocalityServerSoftwareComputer Graphics and Computer-Aided Design

摘要: One common technique for preventing data races in multi-threaded programs is to ensure that all accesses shared locations are consistently protected by a lock. We present tool called LOCKSMITH detecting C looking violations of this pattern. call the relationship between locks and they protect consistent correlation, core our novel constraint-based analysis infers correlation context-sensitively, using results check properly guarded locks. algorithm simple formal language λ> which we have proven sound, discuss how scale it up an aims be sound C. develop several techniques improve precision performance analysis, including sharing inferring thread locality; existential quantification modeling structures; heuristics unsafe features such as type casts. When applied benchmarks, servers Linux device drivers, found while producing modest number false alarm.

参考文章(49)
John Kodumal, Alex Aiken, Banshee: A Scalable Constraint-Based Analysis Toolkit Static Analysis. pp. 218- 234 ,(2005) , 10.1007/11547662_16
Cormac Flanagan, Stephen N. Freund, Type Inference Against Races Static Analysis. pp. 116- 132 ,(2004) , 10.1007/978-3-540-27864-1_11
John C. Reynolds, Toward a grainless semantics for shared-variable concurrency foundations of software technology and theoretical computer science. pp. 35- 48 ,(2004) , 10.1007/978-3-540-30538-5_4
Manuvir Das, Ben Liblit, Manuel Fähndrich, Jakob Rehof, Estimating the Impact of Scalable Pointer Analysis on Optimization static analysis symposium. pp. 260- 278 ,(2001) , 10.1007/3-540-47764-0_15
Fritz Henglein, Type inference with polymorphic recursion ACM Transactions on Programming Languages and Systems. ,vol. 15, pp. 253- 289 ,(1993) , 10.1145/169701.169692
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
Cristiano Calcagno, Stratified operational semantics for safety and correctness of the region calculus Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '01. ,vol. 36, pp. 155- 165 ,(2001) , 10.1145/360204.360217
A.K. Wright, M. Felleisen, A Syntactic Approach to Type Soundness Information & Computation. ,vol. 115, pp. 38- 94 ,(1994) , 10.1006/INCO.1994.1093
Dan Grossman, Greg Morrisett, Trevor Jim, Michael Hicks, Yanling Wang, James Cheney, Region-based memory management in cyclone Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation - PLDI '02. ,vol. 37, pp. 282- 293 ,(2002) , 10.1145/512529.512563
David Hovemeyer, William Pugh, Finding bugs is easy conference on object-oriented programming systems, languages, and applications. pp. 132- 136 ,(2004) , 10.1145/1028664.1028717