Pervasive detection of process races in deployed systems
Pervasive detection of process races in deployed systems
复制标题
普遍检测已部署系统中的进程竞争
DOI:
--
复制
发表时间:
2011
期刊:
影响因子:
--
通讯作者:
Jason Nieh
中科院分区:
文献类型:
--
作者:
Oren Laadan;N. Viennot;Chia;C. Blinn;Junfeng Yang;Jason Nieh
Process races occur when multiple processes access shared operating system resources, such as files, without proper synchronization. We present the first study of real process races and the first system designed to detect them. Our study of hundreds of applications shows that process races are numerous, difficult to debug, and a real threat to reliability. To address this problem, we created RacePro, a system for automatically detecting these races. RacePro checks deployed systems in-vivo by recording live executions then deterministically replaying and checking them later. This approach increases checking coverage beyond the configurations or executions covered by software vendors or beta testing sites. RacePro records multiple processes, detects races in the recording among system calls that may concurrently access shared kernel objects, then tries different execution orderings of such system calls to determine which races are harmful and result in failures. To simplify race detection, RacePro models under-specified system calls based on load and store micro-operations. To reduce false positives and negatives, RacePro uses a replay and go-live mechanism to distill harmful races from benign ones. We have implemented RacePro in Linux, shown that it imposes only modest recording overhead, and used it to detect a number of previously unknown bugs in real applications caused by process races.