Finding concurrency-related bugs using random isolation

保存先:
書誌詳細
出版年:International Journal on Software Tools for Technology Transfer vol. 13, no. 6 (Nov 2011), p. 495
第一著者: Kidd, Nicholas
その他の著者: Reps, Thomas, Dolby, Julian, Vaziri, Mandana
出版事項:
Springer Nature B.V.
主題:
オンライン・アクセス:Citation/Abstract
Full Text
Full Text - PDF
タグ: タグ追加
タグなし, このレコードへの初めてのタグを付けませんか!

MARC

LEADER 00000nab a2200000uu 4500
001 895313664
003 UK-CbPIL
022 |a 1433-2779 
022 |a 1433-2787 
024 7 |a 10.1007/s10009-011-0197-7  |2 doi 
035 |a 895313664 
045 2 |b d20111101  |b d20111130 
084 |a 65759  |2 nlm 
100 1 |a Kidd, Nicholas 
245 1 |a Finding concurrency-related bugs using random isolation 
260 |b Springer Nature B.V.  |c Nov 2011 
513 |a Feature 
520 3 |a   Issue Title: VMCAI 2009 This paper concerns automatically verifying safety properties of concurrent programs. In our work, the safety property of interest is to check for multi-location data races in concurrent Java programs, where a multi-location data race arises when a program is supposed to maintain an invariant over multiple data locations, but accesses/updates are not protected correctly by locks. The main technical challenge that we address is how to generate a program model that retains (at least some of) the synchronization operations of the concrete program, when the concrete program uses dynamic memory allocation. Static analysis of programs typically begins with an abstraction step that generates an abstract program that operates on a finite set of abstract objects. In the presence of dynamic memory allocation, the finite number of abstract objects of the abstract program must represent the unbounded number of concrete objects that the concrete program may allocate, and thus by the pigeon-hole principle some of the abstract objects must be summary objects--they represent more than one concrete object. Because abstract summary objects represent multiple concrete objects, the program analyzer typically must perform weak updates on the abstract state of a summary object, where a weak update accumulates information. Because weak updates accumulate rather than overwrite, the analyzer is only able to determine weak judgements on the abstract state, i.e., that some property possibly holds, and not that it definitely holds. The problem with weak judgements is that determining whether an interleaved execution respects program synchronization requires the ability to determine strong judgements, i.e., that some lock is definitely held, and thus the analyzer needs to be able to perform strong updates--an overwrite of the abstract state--to enable strong judgements. We present the random-isolation abstraction as a new principle for enabling strong updates of special abstract objects. The idea is to associate with a program allocation site two abstract objects, r ♯ and o ♯ , where r ♯ is a non-summary object and o ♯ is a summary object. Abstract object r ♯ models a distinguished concrete object that is chosen at random in each program execution. Because r ♯ is a non-summary object--i.e, it models only one concrete object--strong updates are able to be performed on its abstract state. Because which concrete object r ♯ models is chosen randomly, a proof that a safety property holds for r ♯ generalizes to all objects modeled by o ♯ . We implemented the random isolation abstraction in a tool called Empire, which verifies atomic-set serializability of concurrent Java programs (atomic-set serializability is one notion of multi-location data-race freedom). Random isolation allows Empire to track lock states in ways that would not otherwise have been possible with conventional approaches.[PUBLICATION ABSTRACT] 
653 |a Software engineering 
653 |a Software quality 
653 |a Debugging 
653 |a Computer science 
700 1 |a Reps, Thomas 
700 1 |a Dolby, Julian 
700 1 |a Vaziri, Mandana 
773 0 |t International Journal on Software Tools for Technology Transfer  |g vol. 13, no. 6 (Nov 2011), p. 495 
786 0 |d ProQuest  |t Advanced Technologies & Aerospace Database 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/895313664/abstract/embedded/H09TXR3UUZB2ISDL?source=fedsrch 
856 4 0 |3 Full Text  |u https://www.proquest.com/docview/895313664/fulltext/embedded/H09TXR3UUZB2ISDL?source=fedsrch 
856 4 0 |3 Full Text - PDF  |u https://www.proquest.com/docview/895313664/fulltextPDF/embedded/H09TXR3UUZB2ISDL?source=fedsrch