Static verification of data-consistency properties

作者: Thomas W. Reps , Nicholas A. Kidd

DOI:

关键词:

摘要: Writing correct shared-memory concurrent programs is hard. Not only must a programmer reason about the correctness of sequential execution code, but also possible side effects caused by interleaved concurrently executing threads. Incorrect use synchronization primitives can lead to data-consistency errors, which have drastic consequences (cf. Northeast Blackout 2003). This dissertation presents techniques verify statically that programmer's preserves data consistency. The notion consistency used throughout atomic-set serializability (AS-serializability), was first proposed Vaziri et al. (2006). AS-serializability property program execution, and relaxation serializability. An serializable if its outcome equivalent an where all transactions are executed serially. relaxes be with respect specific memory locations. The approach taken software model checking every AS-serializable. First, abstract generated from concrete program. defined such it over-approximates set behaviors Second, checker explores executions program. The challenge define abstractions account for multitude sources unboundedness in Concrete dynamic allocation, recursion, thread creation, reentrant locks, name few. The contributions generic permit performed presence several unboundedness. My research addressed problem determining whether certain class models Java Somewhat surprisingly, given many allowed considered, I able show decidable, gave practical algorithm problem. technique has been implemented tool called EMPIRE, find known bugs programs.

参考文章(46)
Swarat Chaudhuri, Rajeev Alur, Instrumenting C Programs with Nested Word Monitors Model Checking Software. ,vol. 4595, pp. 279- 283 ,(2007) , 10.1007/978-3-540-73370-6_20
Akash Lal, Nicholas Kidd, Thomas Reps, Tayssir Touili, Abstract error projection static analysis symposium. pp. 200- 217 ,(2007) , 10.1007/978-3-540-74061-2_13
Shaz Qadeer, Jakob Rehof, Context-Bounded Model Checking of Concurrent Software Tools and Algorithms for the Construction and Analysis of Systems. pp. 93- 107 ,(2005) , 10.1007/978-3-540-31980-1_7
Tuba Yavuz-Kahveci, Tevfik Bultan, Automated Verification of Concurrent Linked Lists with Counters static analysis symposium. pp. 69- 84 ,(2002) , 10.1007/3-540-45789-5_8
Nicholas Kidd, Akash Lal, Thomas Reps, Language Strength Reduction Static Analysis. pp. 283- 298 ,(2008) , 10.1007/978-3-540-69166-2_19
Akash Lal, Thomas Reps, Gogul Balakrishnan, Extended Weighted Pushdown Systems Computer Aided Verification. pp. 434- 448 ,(2005) , 10.1007/11513988_44
Michael A. Harrison, Introduction to formal language theory ,(1978)
Nathan Goodman, Philip A. Bernstein, Vassco Hadzilacos, Concurrency Control and Recovery in Database Systems ,(1987)
Peter Lammich, Markus Müller-Olm, Alexander Wenner, Predecessor Sets of Dynamic Pushdown Networks with Tree-Regular Constraints Computer Aided Verification. pp. 525- 539 ,(2009) , 10.1007/978-3-642-02658-4_39
Gogul Balakrishnan, Thomas Reps, Recency-Abstraction for Heap-Allocated Storage Static Analysis. pp. 221- 239 ,(2006) , 10.1007/11823230_15