国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:鲁法明,黄莹,曾庆田,包云霞,唐梦凡
单位:鲁法明,山东科技大学 计算机科学与工程学院, 山东 青岛 26659011,黄莹,山东科技大学 计算机科学与工程学院, 山东 青岛 266590;中国科学院 深圳先进技术研究院, 广东 深圳 51805502,曾庆田,山东科技大学 计算机科学与工程学院, 山东 青岛 26659003,包云霞,山东科技大学 计算机科学与工程学院, 山东 青岛 26659004,唐梦凡,山东科技大学 计算机科学与工程学院, 山东 青岛 26659005
关键词:数据竞争;Petri网;网展开;动态程序分析
基金:国家自然科学基金(61602279);山东省泰山学者工程专项基金(ts20190936);山东省高等学校青创科技支持计划(2019KJN024);山东省博士后创新专项基金(201603056);国家海洋局海洋遥测工程技术研究中心开放基金(2018002);山东科技大学教学名师培育计划(MS20211102)
数据竞争是多线程程序的常见漏洞之一, 传统的数据竞争分析方法在查全率和准确率方面难以两全, 而且所生成检测报告难以定位漏洞的根源. 鉴于Petri网在并发系统建模和分析方面具有行为描述精确、分析工具丰富的优点, 提出一种基于Petri网展开的新型数据竞争检测方法. 首先, 对程序的某一运行轨迹进行分析和挖掘, 构建程序的一个Petri网模型, 它由单一轨迹挖掘得到, 却可隐含程序的多个不同运行轨迹, 由此可在保证效率的同时降低传统动态分析方法的漏报率; 其次, 提出基于Petri网展开的潜在数据竞争检测方法, 相比静态分析方法在有效性上有较大提升, 而且能明确给出数据竞争的产生路径; 最后, 对上一阶段检测到的潜在数据竞争, 给出基于CalFuzzer平台的潜在死锁重演调度方法, 可剔除误报, 保证数据竞争检测结果的真实性. 开发相应的原型系统, 结合公开的程序实例验证了所提方法的有效性.
来源:2023年第8期
《软件学报》期刊编辑部