ISCAS OpenIR
Dynamic Testing for Deadlocks via Constraints
Cai, Y; Lu, Q
2016
发表期刊IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
ISSN0098-5589
卷号42期号:9页码:825-842
摘要Existing deadlock detectors are either not scalable or may report false positives when suggesting cycles as potential deadlocks. Additionally, they may not effectively trigger deadlocks and handle false positives. We propose a technique called ConLock(+), which firstly analyzes each cycle and its corresponding execution to identify a set of scheduling constraints that are necessary conditions to trigger the corresponding deadlock. The ConLock(+) technique then performs a second run to enforce the set of constraints, which will trigger a deadlock if the cycle is a real one. Or if not, ConLock(+) reports a steering failure for that cycle and also identifies other similar cycles which would also produce steering failures. For each confirmed deadlock, ConLock(+) performs a static analysis to identify conflicting memory access that would also contribute to the occurrence of the deadlock. This analysis is helpful to enable developers to understand and fix deadlocks. ConLock(+) has been validated on a suite of real-world programs with 16 real deadlocks. The results show that across all 811 cycles, ConLock(+) confirmed all of the 16 deadlocks with a probability of >= 80 percent. For the remaining cycles, ConLock(+) reported steering failures and also identified that five deadlocks also involved conflicting memory accesses.; Existing deadlock detectors are either not scalable or may report false positives when suggesting cycles as potential deadlocks. Additionally, they may not effectively trigger deadlocks and handle false positives. We propose a technique called ConLock(+), which firstly analyzes each cycle and its corresponding execution to identify a set of scheduling constraints that are necessary conditions to trigger the corresponding deadlock. The ConLock(+) technique then performs a second run to enforce the set of constraints, which will trigger a deadlock if the cycle is a real one. Or if not, ConLock(+) reports a steering failure for that cycle and also identifies other similar cycles which would also produce steering failures. For each confirmed deadlock, ConLock(+) performs a static analysis to identify conflicting memory access that would also contribute to the occurrence of the deadlock. This analysis is helpful to enable developers to understand and fix deadlocks. ConLock(+) has been validated on a suite of real-world programs with 16 real deadlocks. The results show that across all 811 cycles, ConLock(+) confirmed all of the 16 deadlocks with a probability of >= 80 percent. For the remaining cycles, ConLock(+) reported steering failures and also identified that five deadlocks also involved conflicting memory accesses.
收录类别SCI
关键词Deadlock Triggering Scheduling Should-happen-before Relation Constraint Reliability Verification
部门归属Chinese Acad Sci, Inst Software, State Key Lab Comp Sci, Beijing, Peoples R China. Chinese Acad Sci, Inst Software, Technol Ctr Software Engn, Beijing, Peoples R China.
语种英语
WOS记录号WOS:000384666100002
引用统计
内容类型期刊论文
URI标识http://ir.iscas.ac.cn/handle/311060/17306
专题中国科学院软件研究所
推荐引用方式
GB/T 7714
Cai, Y,Lu, Q. Dynamic Testing for Deadlocks via Constraints[J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING,2016,42(9):825-842.
APA Cai, Y,&Lu, Q.(2016).Dynamic Testing for Deadlocks via Constraints.IEEE TRANSACTIONS ON SOFTWARE ENGINEERING,42(9),825-842.
MLA Cai, Y,et al."Dynamic Testing for Deadlocks via Constraints".IEEE TRANSACTIONS ON SOFTWARE ENGINEERING 42.9(2016):825-842.
条目包含的文件
文件名称/大小 文献类型 版本类型 开放类型 使用许可
07423814.pdf(2043KB) 开放获取使用许可请求全文
个性服务
推荐该条目
保存到收藏夹
查看访问统计
导出为Endnote文件
谷歌学术
谷歌学术中相似的文章
[Cai, Y]的文章
[Lu, Q]的文章
百度学术
百度学术中相似的文章
[Cai, Y]的文章
[Lu, Q]的文章
必应学术
必应学术中相似的文章
[Cai, Y]的文章
[Lu, Q]的文章
相关权益政策
暂无数据
收藏/分享
所有评论 (0)
暂无评论
 

除非特别说明,本系统中所有内容都受版权保护,并保留所有权利。