多线程程序数据竞争随机森林指令级检测模型
2019-11-26分类号:TP311.1
【部门】西安邮电大学计算机学院 西安邮电大学陕西省网络数据分析与智能处理重点实验室 西密歇根大学计算机系
【摘要】数据竞争是典型的多线程程序并发缺陷。由于多线程程序中存在不确定性的交织,数据竞争很难被检测出来。该文以多线程数据竞争的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%。
【关键词】数据竞争 并发缺陷 随机森林 隐形同步对
【基金】国家自然科学基金面上项目(61876138);; 陕西省工业项目(2018GY-014);; 西安邮电大学研究生创新基金项目(CXJJLA2018003);; 陕西省普通高等学校重点学科专项资金建设项目
【所属期刊栏目】清华大学学报(自然科学版)
文献传递