Pervasive detection of process races in deployed systems

Pervasive detection of process races in deployed systems
复制标题

普遍检测已部署系统中的进程竞争

DOI:
--
复制
发表时间:
2011
期刊:
Symposium on Operating Systems Principles
影响因子:
--
通讯作者:
Jason Nieh
Jason Nieh
中科院分区:
--
文献类型:
--
作者:
Oren Laadan;N. Viennot;Chia;C. Blinn;Junfeng Yang;Jason Nieh

文献摘要

被引文献

相似文献

当多个流程访问共享操作系统资源(例如文件)而无需正确同步时,就会发生进程种族。我们介绍了对实际过程种族的首次研究和旨在检测它们的第一个系统。我们对数百种应用的研究表明,过程种族很多,难以调试,并且对可靠性构成了真正的威胁。为了解决这个问题,我们创建了RacePro,这是一种用于自动检测这些种族的系统。 RacePro通过记录实时执行,然后确定性重播并稍后检查它们,从而在体内检查部署的系统。此方法将检查覆盖范围增加到了软件供应商或Beta测试网站所涵盖的配置或执行之外。 RacePro记录了多个进程,检测到可能同时访问共享内核对象的系统调用中的录制中的种族,然后尝试对此类系统调用的不同执行订单来确定哪些种族有害并导致故障。为了简化种族检测,RacePro模型基于负载和存储微型操作的系统呼叫未指定的系统调用。为了减少假阳性和负面因素,RacePro使用重播和持续的机制将有害种族从良性种族中提取。我们已经在Linux中实现了RacePro,这表明它仅施加了适度的录制开销,并使用它来检测由过程种族引起的实际应用中的许多先前未知的错误。
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.