多线程二进制程序的原子性错误检测

来源 :中国科学院研究生院 中国科学院大学 | 被引量 : 0次 | 上传用户:jakieli
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着多线程技术在现代编程中的广泛使用,比如C中的pthread库、Java中的Thread类,人们对多线程程序的安全性越来越重视。原子性错误是并发程序错误的主要类型之一,如何检测和查找复杂并发程序的中的原子性错误具有重要的研究意义。同时,现今大量商业软件是以二进制代码的形式进行发布,这使得针对源代码为分析对象的分析技术无能为力。因此,有必要对二进制多线程程序的原子性错误检测方法进行研究。   对二进制多线程程序做原子性错误检测主要面临三个难点:一是如何区分违反原子性的真正和良性两种情况;二是如何处理多线程程序运行时线程序列不确定的问题;三是如何对二进制代码进行分析,因为对二进制代码比对源代码更难分析。为了解决以上问题,本文提出了基于模型检测的原子性错误检测方法MC-AVIO。该方法包含两个阶段:训练阶段和分析阶段。在训练阶段通过提取原子性迁移对集合的方法来识别真正违反原子性的情况,在分析阶段检测原子性错误时用动态模型检测的方法搜索程序所有可能的线程序列,解决了分析多线程程序时线程序列不确定的问题。另外,在实现MC-AVIO时采用诸如保守分析策略、多次动态分析等轻量级的方法来分析二进制程序。   基于MC-AVIO方法,本文实现了针对二进制程序的原子性错误检测工具AtomFinder。最后,本文在基准程序和注入变异的程序上评估了AtomFinder的检测效果,结果表明它对于检测原子性错误是有效的。
其他文献
本文总结了目前覆盖网迅速发展的趋势以及目前存在的各种技术与实验平台,深入分析了目前影响覆盖网广泛应用的问题,即与当前网络的冲突与多覆盖网之间的冲突问题。水平冲突的
互联网的发展使得电子文本文档的数目飞速增长,自动文本分类越发的被人们所需要。文本分类作为数据挖掘、信息检索、机器学习等领域的热点问题,从最初的人工分类逐步发展到现在
集成电路设计和电力电子技术的飞速发展为电子设备的广泛应用奠定了坚实的基础,因此对电源驱动部分提出了更加严格的要求。主要体现在:在宽电压输入范围内能够输出稳定的电压,
偌大的互联网已经演变成了一个巨大的知识宝库,对这个知识宝库的探索、挖掘和分析是当下的一个热门应用领域。在对这个知识宝库进行探索和知识萃取之前,首要的一步是要收集原
物体跟踪和运动物体分割是计算机视觉中两个本质问题,并广泛应用在视频分析中,如动作识别、身份识别等。本文旨在含动态场景的视频中不限物体类别地跟踪和分割运动物体。在技
近年来,随着人工智能、计算机视觉以及深度学习的发展,汽车辅助驾驶系统已成为十分火热的研究和应用领域。在汽车辅助驾驶系统中,车道保持、偏航预警、自适应巡航、前车距离测量
随看社会生产力的发展和人民生活水平的提高,电气、电子设备的使用大大增加,人类社会对电力资源的使用需求越来越大。同时,电力资源相对短缺的问题也越来越严重。尤其在世界
制造业的服务化已成为制造业的发展趋势,而作为我国经济重要组成部分的中小制造企业的服务化却面临制造能力不足的困境,急需与其他企业进行制造服务的协同与共享。近年来,随着物
根据物理模型构造优化算法是自然计算中重要的算法构造方法,量子波函数的概率解释与优化算法随机求解过程的相似性使得基于量子物理模型的优化算法成为未来构造新的优化算法的
重力正演是已知地下物性求地上观测面的重力异常值,其反演问题是根据地上观测面的重力异常值求地下场源体的物性以及形态。重力异常反演在地球物理勘探中有着十分重要的作用,