基于锁信息的多线程软件原子性错误检测方法

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:qilina15832583026
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着多线程库的日益普及和多核处理器的快速发展,多线程软件技术被越来越多的开发者所使用。而在多线程软件中,并发错误是最难以处理的错误之一,不仅因为线程的调度受到操作系统的影响,而且大量线程之间的交互也使得穷尽测试变得极为困难。在并发错误处理中,存在的另外一个问题是难以重现并发错误。主要的并发错误有死锁、数据竞争、原子性错误。   在本文中,针对原子性错误,本文提出了一种新颖的检测算法。在设计中,本文把验证原子性错误的过程,分为两个阶段。在第一个阶段,通过不断执行被测试的二进制程序,从正确运行的执行序列中抽取原子性代码段。在第二阶段,在得到原子性代码段之后,通过改进的DPOR算法进行验证。在传统的DPOR算法中,由于在程序执行过程中缺少对特定特征的利用,往往存在效率低的问题,而通过观察DPOR算法的执行过程和原子性代码段在验证过程中的特点,提出了一个启发式的算法用来提高DPOR算法的执行效率。由于是程序实际执行,所以可以克服传统的静态分析方法存在误报的缺点。在具体的实现中,设计了在程序的动态执行过程中计算锁信息的方法,在DPOR算法回溯的过程中根据锁信息判断是否可能发生原子性错误,如果可能发生则回溯,如果可以保证不会发生原子性错误则剪除这个回溯分支,从而减少回溯次数和运行时间。在完成工具的设计开发后,通过对一系列开源程序分别在有无原子性错误的条件下进行测试,得到的实验数据证明此方法可以大大提高原子性错误检测的效率。  
其他文献
随着互联网技术的快速发展,SNS(Social Network Service)呈现出多样化,渗入到人们生活中游戏、阅读、音乐等领域。然而,这些SNS服务虽然业务形式不同,但是其中的用户关系形式
格密码系统由研究人员在96年提出。由于它自身的优良性质:能抵御量子攻击,格上算法且困难问题容易理解,引起了研究人员的广泛关注。研究人员成功的用格解决了全同态加密和签名
高频数据项的挖掘问题属于不确定数据流处理1范畴的算法问题。在该领域的算法研究主要用于数据库Iceberg Query、服务器DOS攻击监测、搜索引擎热门搜索统计和社交网络热门话
云计算通过虚拟化和聚合等技术将大量服务器的计算力和存储资源整合在一起,形成一个庞大的资源池,并以服务的形式将计算力和存储能力对外输出。为了保证云计算平台所提供服务的
作者在钻研计算机应用与控制技术、计算机网络与通讯原理及其现代微控制器技术的基础上,对新型、高档、高性能、高速度面向21世纪的嵌入式(Embedded)单片机进行了新的探索和
当前,承受精神压力的人越来越多,心理健康问题已成为人类面临的一项重大挑战。精神压力识别可以帮助人们及时采取有效措施,缓解精神压力,保护心理健康,具有十分重要的研究意义。过
系统虚拟化技术是当前学术界与产业界广泛研究与探讨的一项信息技术,由于其在资源管理、服务器整合、绿色节能、安全隔离等方面的优秀特性,在当前日益兴起的大型数据中心与云
随着社会信息化程度不断提升,各种形式的电子数据积累越来越多,且产生速度不断加快,传统的数据库系统难以快速高效地从这些超大规模的数据中挖掘有效信息。频繁项集挖掘是一个典
图像分割是图像处理中的重要研究课题,随着图像处理技术在生产和生活中的广泛应用,图像分割也受到人们越来越多的重视。它作为图像处理中的关键环节,决定着最终的处理质量。由于
Max-SAT问题是一个著名的约束满足问题,在理论研究和实际应用中都有重要的意义。局部搜索框架是一个非常有效的解决带权重的Max-SAT问题的框架,本文提出了一种新的启发式的变量