多线程程序数据竞争随机森林指令级检测模型 |
| |
引用本文: | 孙家泽,阳伽伟,杨子江.多线程程序数据竞争随机森林指令级检测模型[J].清华大学学报(自然科学版),2020,60(10):804-813. |
| |
作者姓名: | 孙家泽 阳伽伟 杨子江 |
| |
作者单位: | 西安邮电大学计算机学院,西安710121,中国;西安邮电大学陕西省网络数据分析与智能处理重点实验室,西安710121,中国;西安邮电大学计算机学院,西安710121,中国;西密歇根大学计算机系,卡拉马祖49008-5466,美国 |
| |
基金项目: | 国家自然科学基金;陕西省工业项目;创新基金;陕西省普通高等学校重点学科建设专项 |
| |
摘 要: | 数据竞争是典型的多线程程序并发缺陷。由于多线程程序中存在不确定性的交织,数据竞争很难被检测出来。该文以多线程数据竞争的5个相关属性作为特征,构建了多线程程序数据竞争随机森林指令级检测模型。首先基于happens-before关系与lockset算法指令级检测数据竞争,同时用汇编源码信息来剔除隐形同步对,然后利用happens-before关系与lockset算法的分析结果训练多线程程序数据竞争随机森林检测模型。在Pin上实现了多线程程序数据竞争检测工具AIRaceTest。利用GitHub中多线程程序的插桩结果作为样本集来训练随机森林模型,模型精度可达92.1%。对Google data-race-test、 Parsec基准程序3.1中的经典多线程程序的检测结果表明:AIRaceTest与Eraser、 Djit+以及Thread Sanitizer这3种目前常用的数据竞争检测工具相比,数据竞争的误报和漏报分别降低了约10.6%和12.3%,在线程数较多的情况下,时间和内存开销分别降低了41.8%和22.4%。
|
关 键 词: | 数据竞争 并发缺陷 随机森林 隐形同步对 |
本文献已被 CNKI 万方数据 等数据库收录! |
|