线上期刊服务咨询,发表咨询:400-808-1701 订阅咨询:400-808-1721

多线程程序数据竞争检测与证据生成方法

张晓东 郑庆华 刘烃 俞乐晨 刘沛 杨子江 计算机工程与科学 2014年第11期

摘要:数据竞争是多线程程序最为常见的问题之一.由于线程交织导致状态空间爆炸,多线程程序数据竞争引起的错误检测难度大、成本高、精度低;此外,即使检测到数据竞争,由于线程调度难以控制、执行过程难以复现,错误难以复现和定位.提出了一种多线程程序数据竞争检测与证据生成方法,基于程序语义分析和执行过程监测,构建程序的执行路径约束模型和数据竞争条件,将多线程程序数据竞争检测问题转化为约束求解问题,降低检测难度,提高检测精度;利用SMT求解器计算可能的数据竞争,并生成触发该数据竞争的程序执行序列,协助程序员定位和验证错误.实验中对10个程序进行了测试,相比现有数据竞争检测工具threadsanitizer和helgrind,本方法检测出的数据竞争多出287.5%和264.7%,且没有误报,而其他方法平均误报率为10.5%和9.8%.

关键词:多线程程序测试数据竞争约束求解证据生成

单位:西安交通大学智能网络与网络安全教育部重点实验室 陕西西安710049 西安理工大学计算机科学与工程学院 陕西西安710049

注:因版权方要求,不能公开全文,如需全文,请咨询杂志社

计算机工程与科学

北大期刊

¥624.00

关注 46人评论|5人关注