Publication: Goldilocks: a race and transaction-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-09T23:03:43Z | |
dc.date.issued | 2007 | |
dc.description.abstract | Data races of, tell result in unexpected and erroneous behavior. In addition 10 causing data corruption and leading programs to crash, the presence of data races complicates the semantics of an execution which might no longer be sequentially consistent. Motivated by these observations, we have designed and implemented a Java runtime system that monitors program executions and throws a DataRaceException when a data race is about to occur. Analogous to other runtime exceptions, the DataRaceException. provides two key benefits. First, accesses causing race conditions are interrupted and handled before they cause errors that may be difficult to diagnose later. Second, if no DataRaceException is thrown in an execution, it is guaranteed to be sequentially consistent. This strong guarantee helps to rule Out many concurrency-related possibilities its the cause of erroneous behavior. When a DataRaceException is caught, the operation, thread, or program causing it call be terminated gracefully. Alternatively, the DataRaceException can serve its a conflict-detection mechanism in Optimistic uses of concurrency. We start with the definition of data-race-free executions in the Java memory model. We generalize this definition to executions that use transactions in addition to locks and volatile variables for synchronization. We present a precise and efficient algorithm for dynamically verifying that an execution is free of data races. This algorithm generalizes the Goldilocks algorithm for data-race detection by handling transactions and providing the ability to distinguish between read and write accesses. We have implemented our algorithm and the DataRaceException in the Kaffe Java Virtual Machine. We have evaluated our system on a variety of publicly available Java benchmarks and it few microbenchmarks that combine lock-based and transaction-based synchronization. Our experiments indicate that our implementation has reasonable overhead. Therefore, we believe that in addition to being a debugging tool, the DataRaceException may be a viable mechanism to enforce the safety of executions of multithreaded Java programs. | |
dc.description.indexedby | WoS | |
dc.description.indexedby | Scopus | |
dc.description.openaccess | NO | |
dc.description.publisherscope | International | |
dc.identifier.doi | 10.1145/1250734.1250762 | |
dc.identifier.isbn | 978-1-59593-633-2 | |
dc.identifier.scopus | 2-s2.0-35448953399 | |
dc.identifier.uri | http://dx.doi.org/10.1145/1250734.1250762 | |
dc.identifier.uri | https://hdl.handle.net/20.500.14288/8513 | |
dc.identifier.wos | 266485500023 | |
dc.keywords | Data-race detection | |
dc.keywords | Java runtime | |
dc.keywords | Runtime monitoring | |
dc.keywords | Software transactions | |
dc.language | English | |
dc.publisher | Assoc Computing Machinery | |
dc.source | Pldi'07: Proceedings of the 2007 Acm Sigplan Conference on Programming Language Design and Implementation | |
dc.subject | Computer science | |
dc.subject | Software engineering | |
dc.subject | Computer science | |
dc.subject | Theory methods | |
dc.title | Goldilocks: a race and transaction-aware java runtime | |
dc.type | Conference proceeding | |
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 |