Detecting and Surviving Data Races using Complementary Schedules
BibTeX
@MISC{Veeraraghavan_detectingand,
author = {Kaushik Veeraraghavan and Peter M. Chen and Jason Flinn and Satish Narayanasamy},
title = {Detecting and Surviving Data Races using Complementary Schedules},
year = {}
}
OpenURL
Abstract
Data races are a common source of errors in multithreaded programs. In this paper, we show how to protect a program from data race errors at runtime by executing multiple replicas of the program with complementary thread schedules. Complementary schedules are a set of replica thread schedules crafted to ensure that replicas diverge only if a data race occurs and to make it very likely that harmful data races cause divergences. Our system, called Frost 1, uses complementary schedules to cause at least one replica to avoid the order of racing instructions that leads to incorrect program execution for most harmful data races. Frost introduces outcome-based race detection, which detects data races by comparing the state of replicas executing complementary schedules. We show that this method is substantially







