Publication: Goldilocks: a race-aware Java runtime
dc.contributor.coauthor | Qadeer, Shaz | |
dc.contributor.department | N/A | |
dc.contributor.department | Department of Computer Engineering | |
dc.contributor.kuauthor | Elmas, Tayfun | |
dc.contributor.kuauthor | Taşıran, Serdar | |
dc.contributor.kuprofile | PhD Student | |
dc.contributor.kuprofile | Faculty Member | |
dc.contributor.other | Department of Computer Engineering | |
dc.contributor.schoolcollegeinstitute | Graduate School of Sciences and Engineering | |
dc.contributor.schoolcollegeinstitute | College of Engineering | |
dc.contributor.yokid | N/A | |
dc.contributor.yokid | N/A | |
dc.date.accessioned | 2024-11-09T22:59:44Z | |
dc.date.issued | 2010 | |
dc.description.abstract | 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 race aware 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. | |
dc.description.indexedby | WoS | |
dc.description.indexedby | Scopus | |
dc.description.issue | 11 | |
dc.description.openaccess | NO | |
dc.description.publisherscope | International | |
dc.description.sponsoredbyTubitakEu | N/A | |
dc.description.sponsorship | Software Reliability Research Group at Microsoft Research, Redmond, WA | |
dc.description.sponsorship | Scientific and Technical Research Council of Turkey (TUBITAK) [104E058] | |
dc.description.sponsorship | Turkish Academy of Sciences (TUBA) We would like to thank Hans Boehm, Cormac Flanagan, Steve Freund, and Madan Musuvathi for their critique of this paper This research was supported by the Software Reliability Research Group at Microsoft Research, Redmond, WA, by the Scientific and Technical Research Council of Turkey (TUBITAK) under grant 104E058, and by the Turkish Academy of Sciences (TUBA) | |
dc.description.volume | 53 | |
dc.identifier.doi | 10.1145/1839676.1839698 | |
dc.identifier.eissn | 1557-7317 | |
dc.identifier.issn | 0001-0782 | |
dc.identifier.quartile | Q1 | |
dc.identifier.scopus | 2-s2.0-78149249092 | |
dc.identifier.uri | http://dx.doi.org/10.1145/1839676.1839698 | |
dc.identifier.uri | https://hdl.handle.net/20.500.14288/7946 | |
dc.identifier.wos | 284522200027 | |
dc.keywords | Data-race detection | |
dc.keywords | Java runtime | |
dc.keywords | Runtime monitoring | |
dc.keywords | Software transactions | |
dc.language | English | |
dc.publisher | Association for Computing Machinery (ACM) | |
dc.source | Communications of the ACM | |
dc.subject | Computer science, hardware and architecture | |
dc.subject | Computer science, software engineering | |
dc.subject | Computer science, theory and methods | |
dc.title | Goldilocks: a race-aware Java runtime | |
dc.type | Journal Article | |
dspace.entity.type | Publication | |
local.contributor.authorid | N/A | |
local.contributor.authorid | N/A | |
local.contributor.kuauthor | Elmas, Tayfun | |
local.contributor.kuauthor | Taşıran, Serdar | |
relation.isOrgUnitOfPublication | 89352e43-bf09-4ef4-82f6-6f9d0174ebae | |
relation.isOrgUnitOfPublication.latestForDiscovery | 89352e43-bf09-4ef4-82f6-6f9d0174ebae |