Race-aware Runtimes for Concurrent Software Development & Deployment

36
Следующее
Популярные
Опубликовано 7 сентября 2016, 16:27
We will present ongoing research on a programming framework in which undesirable data races raise runtime exceptions the same way out-of-bounds array accesses or null-pointer dereferences do in Java. Race exceptions provide a mechanism for detecting and handling races before they lead to serious errors such as security violations or data corruption. The absence of a race exception rules out a race condition as the source of a bug. A key component of this framework is Goldilocks, a novel algorithm for precise and efficient race detection at runtime. Goldilocks (presented at FATES/RV '06) is based on locksets and is as efficient as other lockset-based algorithms. Unlike them, it is not specific to a particular synchronization discipline. It computes the happens-before relation like vector clocks do and is therefore sound and precise. Goldilocks was implemented inside the Kaffe JVM. Experiments show that lazy evaluation of locksets and certain short-circuits make Goldilocks very efficient. In the second part of the talk, we will present a proposal for the rest of the programming framework. Key features of the framework are - mechanisms to handle races programmatically at runtime without affecting the operation of the program - a tight integration of static and dynamic analyses to make continuous monitoring for race and other concurrency exceptions feasible - insertion into Java byte-code (composable) results of static analyses for the runtime to more efficiently monitor data races This work is a collaboration between Koc University and MSR.
автотехномузыкадетское