Goldilocks: A Race-Aware Java Runtime.
We present Goldilocks, a Java runtime that monitors program executions and throws a DataRaceException when a data race is about to occur. This prevents racy accesses from taking place, and allows race conditions to be handled before they cause errors that may be difficult to diagnose later. The Data...
| Published in: | Communications of the ACM Vol. 53; no. 11; pp. 85 - 93 |
|---|---|
| Main Authors: | , , |
| Format: | Article |
| Published: |
Association for Computing Machinery
Nov2010
|
| Subjects: | |
| Online Access: | View this record in EBSCOhost |
| fields | @attributes: recordID: 1 pdfLink: plink: https://search.ebscohost.com/login.aspx?direct=true&db=hlh&AN=55063023&site=ehost-live header: @attributes: shortDbName: hlh uiTerm: 55063023 longDbName: Humanities International Complete uiTag: AN controlInfo: bkinfo: jinfo: jid: 00010782 ACM jtl: Communications of the ACM issn: 00010782 maglogo: N pubinfo: dt: Nov2010 vid: 53 iid: 11 pid: 68 pub: Association for Computing Machinery artinfo: ui: 55063023 10.1145/1839676.1839698 ppf: 85 ppct: 8 formats: tig: atl: Goldilocks: A Race-Aware Java Runtime. aug: au: Elmas, Tayfun Qadeer, Shaz Tasiran, Serdar affil: Koç University, Istanbul, Turkey. Microsoft Research, Redmond, WA. su: Data transmission systems Java programming language Computer programming Computer storage devices Algorithms Mathematical models Semantics sug: subj: Data transmission systems Java programming language Computer programming Computer storage devices Algorithms Mathematical models Semantics ab: We present Goldilocks, a Java runtime that monitors program executions and throws a DataRaceException when a data race is about to occur. This prevents racy accesses from taking place, and allows race conditions to be handled before they cause errors that may be difficult to diagnose later. The DataRaceException is a valuable debugging tool, and, if supported with reasonable computational overhead, can be an important safety feature for deployed programs. Experiments by us and others on raceaware Java runtimes indicate that the DataRaceException may be a viable mechanism to enforce the safety of executions of multithreaded Java programs. An important benefit of DataRaceException is that executions in our runtime are guaranteed to be race free and thus sequentially consistent as per the Java Memory Model. This strong guarantee provides an easy-to-use, clean semantics to programmers, and helps to rule out many concurrency- related possibilities as the cause of errors. To support the DataRaceException, our runtime incorporates the novel Goldilocks algorithm for precise dynamic race detection. The Goldilocks algorithm is general, intuitive, and can handle different synchronization patterns uniformly. pubtype: Periodical doctype: Article src: R language: English refInfo: copyright: @attributes: flag: Y dt: @attributes: year: 2010 holdings: @attributes: islocal: N |
|---|