并发程序死锁与数据竞争的动态检测方法研究

来源 :哈尔滨工程大学 | 被引量 : 0次 | 上传用户:db0928
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
由于多线程程序线程之间交互的不确定性,并发程序存在难调试、难测试的问题,并发缺陷检测是软件测试领域的难点问题。对多线程程序的测试方法可以分为静态方法和动态方法两种,静态测试方法始终存在误报率高、精确度低的局限性,而动态测试方法在降低误报率、提高精确度的同时,引入了大量的测试运行开销。  本文针对并发缺陷中的死锁缺陷和数据竞争缺陷,优化了两种经典算法FastTrack算法和PCT算法,提出两种并发缺陷动态检测方法,基于反转Happens-Before边的数据竞争检测方法DrFinder+和基于半径的随机调度死锁检测方法RPro+,试图提高并发缺陷动态检测效率,降低动态测试的运行开销。依据在测试过程中收集的“May-Trigger”关系,DrFinder+在程序调度时反转Happens-Before边,使一次测试能够暴露更多的隐藏Happens-Before边。RPro+采用基于半径的方法缩小随机调度中优先转换点的选点范围,提高检测并发缺陷的概率保证,大大减少了算法测试并发缺陷的运行次数。另外,由于许多研究在比较并发缺陷算法时采用了不同的测试基准集和运行环境,为保证算法对比的公平性和缺陷检测工具的拓展性,本文在Intel PIN和Java ASM的基础上,设计并实现了C++和JAVA程序的并发缺陷检测通用平台。在此平台上,所有算法运行在统一的测试基准集和运行环境上。  依托实现的并发缺陷检测通用平台,本文对Mysql、Eclipse等多个真实程序进行了并发缺陷检测。实验表明,DrFinder+算法在10次运行中检测到118个新的数据竞争,而其他算法(FastTrack,PCT,ConTest)在100次运行中都没有检测到;RPro+算法显著提高了随机调度的测试效率,在检测到相同数目的死锁缺陷时,PCT算法需要多执行40%-40000%的测试运行次数。
其他文献
当前针对中文倾向性分析多照搬英文倾向性分析中的方法;这些方法虽然也取得了一定的效果,但由于它们普遍没有考虑中文的特殊性所以效果提高有限。我们通过对中文句子语义结构进
随着移动互联网尤其是3G网络技术的发展,不良数据信息的扩散也更加迅速。移动设备上对于不良图像过滤提出了新的要求,考虑到移动设备相较于PC之类的传统设备在计算能力上会有一
随着电信和计算机行业的高速发展,电信行业“信息高速公路”的3G时代已经来临,富媒体环境也悄然而至。在富媒体环境下,运营商向综合信息服务提供商转型。   内容管理系统
本文主要研究基于z/OS平台的海量实时交易系统的仿真,并对其进行DB2性能优化的研究。我们将设计开发一个基于z/OS平台的交易系统,生成高仿真的海量数据,利用TPNS进行大规模并
随着互联网产业的飞速发展,网络上聚集了海量的数字信息资源,越来越多的研究人员把如何有效处理这些海量数据作为自己的研究课题,同时,企业界也在这一领域做了大量的工作。目
近年来,我国的自然保护区事业有了很大的发展,随着自然保护区信息量的增加,需要对自然保护区数据进行管理和维护。自然保护区在改善环境和保持生态平衡等方面发挥重要作用,是
随着通信业的不断发展,多样的业务纷繁出现,各运营商的用户对于通信所带来的价值要求也不仅仅局限于通话,短信业务早已成为电信收入的重要来源,被用户广泛使用,并且在人们的日常生
近年来,随着虚拟现实技术、计算机网络技术以及计算机图形技术的发展,人们提出了新的军事发展思路——建立虚拟战场来进行军事演练。作为新型的军事演习载体,虚拟战场具有直
近几年,随着Web2.0技术的发展,用户在Web上发布了大量的针对产品及服务的评论。从这些评论中挖掘出有价值的知识将有助于产品生产商提高产品质量,也有助于服务提供者改善服务
随着遥感数据处理技术的发展,该领域的数据处理正越来越多地依赖计算机技术的辅助。在涉及到复杂的流程和海量数据处理时,单个计算机的资源无法满足处理需求,需要使用计算机集群