自动寻找并发程序中用于修复错误的原子区域
软件工程
2014-03-10 v1
摘要
本文提出了一种自动构建并发程序错误修复的技术:给定一个不满足用户提供断言的并发程序,我们推断出能够修复该程序的原子块。原子块保护一段代码,并确保其运行时不被其他线程中断。我们的技术使用验证工具作为子程序,以寻找能够消除给定程序中所有错误的最小原子区域。保持原子区域尽可能小可以实现最大的并发性。我们已在一个名为 AtomicInf 的工具中实现了该方法。AtomicInf 的用户可以在强原子性和弱原子性语义之间为推断出的修复进行选择。前者更容易找到,而后者提供了更多关于被修复错误的信息。我们在多个基准测试上运行了 AtomicInf,并在所有测试中都找到了最小且最精确的原子区域。我们将一种早期技术应用于我们的设定中,并观察到 AtomicInf 平均比早期方法快 1.7 倍。
引用
@article{arxiv.1403.1749,
title = {Automatically finding atomic regions for fixing bugs in Concurrent programs},
author = {Saurabh Joshi and Akash Lal},
journal= {arXiv preprint arXiv:1403.1749},
year = {2014}
}
备注
16 pages, 6 figures, 1 table