Lightweight specifications for parallel correctness

作者: Jacob Samuels Burnim , Koushik Sen

DOI:

关键词:

摘要: With the spread of multicore processors, it is increasingly necessary for programmers to write parallel software. Yet writing correct software with explicit multithreading remains a difficult undertaking. Though many tools exist help test, debug, and verify programs, such are often hindered by lack any specification from programmer intended, behavior his or her software. In this dissertation, we propose three novel lightweight specifications parallelism correctness multithreaded software: semantic determinism, atomicity, nondeterministic sequential correctness. Our determinism enable specify that run program on same input should deterministically produce output, despite interleaving program's threads execution. Key our proposed bridge predicates . compare pairs states different executions equivalence. atomicity use generalize traditional enabling regions concurrent are, at high-level, free harmful interference other threads. Finally, (NDSeq) completely but version and, further, functional sequentially, program. We show us much more effectively specify, in software, independent complex fundamentally-sequential We can easily number Java benchmarks. testing techniques checking conforms its specification, apply these find errors Further, automatically inferring likely NDSeq program, given handful representative executions.

参考文章(160)
Viktor Vafeiadis, Shape-Value Abstraction for Verifying Linearizability Lecture Notes in Computer Science. pp. 335- 348 ,(2008) , 10.1007/978-3-540-93900-9_27
Raja Vallee-Rai, Patrick Lam, Vijay Sundaresan, Laurie Hendren, Phong Co, Etienne M. Gagnon, Soot---a java optimization framework conference of the centre for advanced studies on collaborative research. ,(1999)
Nicholas Sterling, WARLOCK - A Static Data Race Analysis Tool. USENIX Winter. pp. 97- 106 ,(1993)
Christos H. Papadimitriou, The theory of database concurrency control ,(1986)
William N. Sumner, Christian Hammer, Julian Dolby, Marathon: detecting atomic-set serializability violations with conflict graphs runtime verification. pp. 161- 176 ,(2011) , 10.1007/978-3-642-29860-8_13
Cormac Flanagan, K. Rustan M. Leino, Houdini, an Annotation Assistant for ESC/Java formal methods. pp. 500- 517 ,(2001) , 10.1007/3-540-45251-6_29
Claire Le Goues, Westley Weimer, Specification Mining with Few False Positives tools and algorithms for construction and analysis of systems. pp. 292- 306 ,(2009) , 10.1007/978-3-642-00768-2_26
Cormac Flanagan, Verifying commit-atomicity using model-checking international workshop on model checking software. ,vol. 2989, pp. 252- 266 ,(2004) , 10.1007/978-3-540-24732-6_18
Andrzej Wasylkowski, Andreas Zeller, Mining Temporal Specifications from Object Usage automated software engineering. ,vol. 18, pp. 295- 306 ,(2009) , 10.1109/ASE.2009.30
Polyvios Pratikakis, Jeffrey S. Foster, Michael Hicks, LOCKSMITH ACM SIGPLAN Notices. ,vol. 41, pp. 320- 331 ,(2006) , 10.1145/1133255.1134019