并发程序缺陷检测技术研究
发布时间:2021-12-23 13:45
在当前多核架构充分普及的硬并发时代,并发程序以其资源利用率高、计算速度快等优点,在现代软件开发中得到了广泛应用,已经成为软件开发行业的主流。然而,由于多线程调度的不确定性,并发程序容易产生各种类型的并发缺陷,甚至会造成严重的后果。因此,迫切需要高效自动化并发缺陷检测技术的支持,快速有效地发现各种并发缺陷,以保证并发软件的质量和可靠性。近年来,并发软件测试在软件工程领域得到了广泛关注,并发缺陷检测也逐渐成为研究热点。研究人员从多种不同角度对并发缺陷检测进行了广泛且深入的探索,并取得了丰富的研究成果,但仍存在一些不足,如线程共享分析不准确,并发缺陷检测效率较低,并发程序执行轨迹上下文切换频繁等。本论文主要研究并发缺陷检测的一些关键问题,旨在进一步提高并发缺陷检测能力和检测效率。具体研究内容如下:1.为了提高线程共享分析的准确性,提出一种细粒度动态线程共享分析方法,用于识别Java并发程序中的线程共享数据和共享访问点。通过平稳分析删除平稳域,然后区分不同的数组元素,最后过滤掉非共享访问点。在20个该领域广泛使用的多线程程序上开展实验,并与最新方法进行对比。结果表明,该方法能够提高线程共享分析...
【文章来源】:中国矿业大学江苏省 211工程院校 教育部直属院校
【文章页数】:135 页
【学位级别】:博士
【部分图文】:
同步程序在顺序一致性模型下的执行示意图
图 2-9 同步程序在顺序一致性模型下的执行示意图Figure 2-9 Execution of synchronized programs under SC Model设 2 个线程没有进行同步,则线程 Thread1 的三个操作执行过程中可线程 Thread2 的三个操作插入进来,因而可能出现如图 2-10 的情形内的执行顺序是一致的,都是按程序中定义的顺序进行。不同于图 ,这里由于没有进行同步,2 个线程整体的执行顺序是无序的,在某行线程 Thread1 的操作还是执行线程 Thread2 的操作是不确定的。程都只能看到一个一致的整体执行顺序。如图 2-10 所示,线程 ThreaThread2 看到的执行顺序都是 D→A→E→B→C→F。ADEFB CA B C DEFAB C
图 5-6 BC-ConTest 和 CovCon 发现并发缺陷所需要的时间分布Figure 5-6 Time required to trigger the concurrency bugs in 20 CUTs in 10 runs为了证明 BC-ConTest 和 CovCon 在并发缺陷检测效率上的显著性差异,我们使用双尾Mann-Whitney U检验和Wilcoxon符号秩检验计算p-Value值(p-Value值 α<0.05,则认为具有显著性差异)。检验结果显示两种方法的显著性水平α=0.00088,表明 BC-ConTest 在并发缺陷检测效率上显著优于 CovCon。此外,我们采用 Cohen’s d 效应量来度量两种方法差异的大小,计算公式如(5-8)所示:1 22 21 2-' =( ) / 2M MCohen s dσ +σ(5-8M1和M2表示实验组和控制组的均值,σ1和σ2表示标准差。表5-3给出BC-ConTes和 CovCon 的统计测试结果,包括均值、方差、标准差和 Cohen’s d 效应量。BC-ConTest 和 CovCon 的 Cohen’s d 效应量值为-0.338,表明 BC-ConTest 在并发缺陷检测效率上显著优于最新方法 CovCon,仅需要非常少的时间就可以发现线程安全类中的并发缺陷。
【参考文献】:
期刊论文
[1]程序分析研究进展[J]. 张健,张超,玄跻峰,熊英飞,王千祥,梁彬,李炼,窦文生,陈振邦,陈立前,蔡彦. 软件学报. 2019(01)
[2]近端云计算:后云计算时代的机遇与挑战[J]. 周悦芝,张迪. 计算机学报. 2019(04)
[3]获取访存依赖:并发程序动态分析基础技术综述[J]. 蒋炎岩,许畅,马晓星,吕建. 软件学报. 2017(04)
[4]面向收敛的并发程序执行轨迹静态简化方法[J]. 常曦,薛建新,张卓,毛晓光. 软件学报. 2017(05)
[5]云计算环境安全综述[J]. 张玉清,王晓菲,刘雪峰,刘玲. 软件学报. 2016(06)
[6]并发缺陷暴露、检测与规避研究综述[J]. 苏小红,禹振,王甜甜,马培军. 计算机学报. 2015(11)
[7]基于全局同步逻辑时间的访存依赖约减方法[J]. 唐士斌,宋风龙,张帅,范东睿,刘志勇. 计算机学报. 2014(07)
[8]基于偏序约简程序可达图的并发程序切片方法[J]. 戚晓芳,徐晓晶,江振亮,汪鹏. 计算机学报. 2014(03)
[9]基于逃逸分析的循环中栈式分配优化研究[J]. 王雷,徐星. 计算机学报. 2008(07)
博士论文
[1]分布式系统中死锁检测方法研究[D]. 杨永.北京交通大学 2018
[2]并发缺陷的检测与规避研究[D]. 禹振.哈尔滨工业大学 2017
[3]基于覆盖准则的软件测试用例自动化生成方法的研究与实现[D]. 苏亭.华东师范大学 2016
[4]并行程序中bug检测技术研究[D]. 吴振东.国防科学技术大学 2015
[5]基于预测分析的并发程序错误检测技术研究[D]. 常曦.上海交通大学 2015
[6]消息传递并行程序测试数据进化生成理论与应用[D]. 田甜.中国矿业大学 2014
[7]Java程序优化与数据竞争检测的研究[D]. 杨克峤.复旦大学 2010
硕士论文
[1]安卓应用数据竞争的检测与再现[D]. 孙全.南京大学 2017
[2]并发程序中的潜在死锁检测与调试[D]. 汪胜.华中科技大学 2016
本文编号:3548589
【文章来源】:中国矿业大学江苏省 211工程院校 教育部直属院校
【文章页数】:135 页
【学位级别】:博士
【部分图文】:
同步程序在顺序一致性模型下的执行示意图
图 2-9 同步程序在顺序一致性模型下的执行示意图Figure 2-9 Execution of synchronized programs under SC Model设 2 个线程没有进行同步,则线程 Thread1 的三个操作执行过程中可线程 Thread2 的三个操作插入进来,因而可能出现如图 2-10 的情形内的执行顺序是一致的,都是按程序中定义的顺序进行。不同于图 ,这里由于没有进行同步,2 个线程整体的执行顺序是无序的,在某行线程 Thread1 的操作还是执行线程 Thread2 的操作是不确定的。程都只能看到一个一致的整体执行顺序。如图 2-10 所示,线程 ThreaThread2 看到的执行顺序都是 D→A→E→B→C→F。ADEFB CA B C DEFAB C
图 5-6 BC-ConTest 和 CovCon 发现并发缺陷所需要的时间分布Figure 5-6 Time required to trigger the concurrency bugs in 20 CUTs in 10 runs为了证明 BC-ConTest 和 CovCon 在并发缺陷检测效率上的显著性差异,我们使用双尾Mann-Whitney U检验和Wilcoxon符号秩检验计算p-Value值(p-Value值 α<0.05,则认为具有显著性差异)。检验结果显示两种方法的显著性水平α=0.00088,表明 BC-ConTest 在并发缺陷检测效率上显著优于 CovCon。此外,我们采用 Cohen’s d 效应量来度量两种方法差异的大小,计算公式如(5-8)所示:1 22 21 2-' =( ) / 2M MCohen s dσ +σ(5-8M1和M2表示实验组和控制组的均值,σ1和σ2表示标准差。表5-3给出BC-ConTes和 CovCon 的统计测试结果,包括均值、方差、标准差和 Cohen’s d 效应量。BC-ConTest 和 CovCon 的 Cohen’s d 效应量值为-0.338,表明 BC-ConTest 在并发缺陷检测效率上显著优于最新方法 CovCon,仅需要非常少的时间就可以发现线程安全类中的并发缺陷。
【参考文献】:
期刊论文
[1]程序分析研究进展[J]. 张健,张超,玄跻峰,熊英飞,王千祥,梁彬,李炼,窦文生,陈振邦,陈立前,蔡彦. 软件学报. 2019(01)
[2]近端云计算:后云计算时代的机遇与挑战[J]. 周悦芝,张迪. 计算机学报. 2019(04)
[3]获取访存依赖:并发程序动态分析基础技术综述[J]. 蒋炎岩,许畅,马晓星,吕建. 软件学报. 2017(04)
[4]面向收敛的并发程序执行轨迹静态简化方法[J]. 常曦,薛建新,张卓,毛晓光. 软件学报. 2017(05)
[5]云计算环境安全综述[J]. 张玉清,王晓菲,刘雪峰,刘玲. 软件学报. 2016(06)
[6]并发缺陷暴露、检测与规避研究综述[J]. 苏小红,禹振,王甜甜,马培军. 计算机学报. 2015(11)
[7]基于全局同步逻辑时间的访存依赖约减方法[J]. 唐士斌,宋风龙,张帅,范东睿,刘志勇. 计算机学报. 2014(07)
[8]基于偏序约简程序可达图的并发程序切片方法[J]. 戚晓芳,徐晓晶,江振亮,汪鹏. 计算机学报. 2014(03)
[9]基于逃逸分析的循环中栈式分配优化研究[J]. 王雷,徐星. 计算机学报. 2008(07)
博士论文
[1]分布式系统中死锁检测方法研究[D]. 杨永.北京交通大学 2018
[2]并发缺陷的检测与规避研究[D]. 禹振.哈尔滨工业大学 2017
[3]基于覆盖准则的软件测试用例自动化生成方法的研究与实现[D]. 苏亭.华东师范大学 2016
[4]并行程序中bug检测技术研究[D]. 吴振东.国防科学技术大学 2015
[5]基于预测分析的并发程序错误检测技术研究[D]. 常曦.上海交通大学 2015
[6]消息传递并行程序测试数据进化生成理论与应用[D]. 田甜.中国矿业大学 2014
[7]Java程序优化与数据竞争检测的研究[D]. 杨克峤.复旦大学 2010
硕士论文
[1]安卓应用数据竞争的检测与再现[D]. 孙全.南京大学 2017
[2]并发程序中的潜在死锁检测与调试[D]. 汪胜.华中科技大学 2016
本文编号:3548589
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3548589.html