Title: | Predicting Concurrency Errors at Runtime using Sliced Causality |
Author(s): | Chen, Feng; Rosu, Grigore |
Subject(s): | computer science |
Abstract: | A runtime analysis technique is presented, which can predict concurrency errors in multithreaded systems by observing potentially non-erroneous executions. It builds upon a novel causal partial order, sliced causality, that weakens the classic but strict "happens-before" by using both static information about the program, such as control- and data-flow dependence, and dynamic synchronization information, such as lock-sets. A vector clock algorithm is introduced to automatically extract a sliced causality from any execution. A memory-efficient procedure then checks all causally consistent potential runs against properties given as monitors. If any of these runs violates a property, it is returned as a "predicted" counter-example. This runtime analysis technique is sound (no false alarms) but not complete (says nothing about code that was not covered). A prototype called jPredictor has been implemented and evaluated on several Java applications with promising results. |
Issue Date: | 2006-04 |
Genre: | Technical Report |
Type: | Text |
URI: | http://hdl.handle.net/2142/11455 |
Other Identifier(s): | UIUCDCS-R-2006-2965 |
Rights Information: | You are granted permission for the non-commercial reproduction, distribution, display, and performance of this technical report in any format, BUT this permission is only for a period of 45 (forty-five) days from the most recent time that you verified that this technical report is still available from the University of Illinois at Urbana-Champaign Computer Science Department under terms that include this permission. All other rights are reserved by the author(s). |
Date Available in IDEALS: | 2009-04-22 |