并发环境下数据竞争检测方法研究
发布时间:2021-07-25 23:00
多核处理器的普遍化使得并发程序的需求日益提升,并发编程技术对于提高CPU的利用率有着不可或缺的作用。尽管Java已经为多线程并发程序的设计提供了强大的语言支持,但并发程序内部所固有的并发性和不确定性仍然会带来一些难以避免的缺陷问题。并发缺陷主要包括死锁、数据竞争、原子性违背和顺序违背4类,并且它们都不容易被检测、调试以及修复。数据竞争在所有种类的并发缺陷中占有较大的比例,而且常常是引起其他非死锁类缺陷的根本原因。针对数据竞争检测过程中的误报和漏报现象,本文对产生误报和漏报的原因进行了进一步的研究,提出以Soot软件分析框架为基础的静态数据竞争检测方法,该方法自动构造线程内和线程间函数调用图,进而收集线程内变量访问事件信息,分析并检测出所有可能产生竞争的情况。检测过程中对别名变量和别名锁情况进行分析以降低漏报率和误报率;此外,通过控制流分析抽象访问事件之间的时序约束关系,并结合程序切片技术判断访问事件之间的发生序关系,以此降低因线程交互带来的误报率。依据该方法,本文使用Java语言在Eclipse PDE环境下实现了一个数据竞争检测工具。在实验中,对JGF和IBM Contest基准测试...
【文章来源】:河北科技大学河北省
【文章页数】:70 页
【学位级别】:硕士
【部分图文】:
Soot对Java程序的中间变换
IR之间的转换
图 4-1 数据竞争检测框架的数据竞争故障的检测过程是以共享变量的访问操作为中心的收集至关重要。通过控制流分析构造线程内和线程间的函的被调函数中收集该线程的所有访问事件的相关信息。定义数据竞争产生的条件,并依据条件收集所有可能产生竞提高检测的精确度,对所有的竞争访问事件进行别名分析和分析不仅考虑了别名变量的现象,还考虑到了别名锁现象带;生序关系分析中,本文采用控制流分析抽象模拟线程内和线系图,然后对时序关系图中的访问事件进行切片分析并定义,完成两个访问事件的发生序关系判断,排除某些因线程交调用图构建
【参考文献】:
期刊论文
[1]并行环境下Java哈希机制的对比及重构[J]. 郑雅洁,张冬雯,张杨,郭松,梁亚楠,魏萌萌,于欣. 河北工业科技. 2017(06)
[2]多线程程序数据竞争检测和验证方法研究综述![J]. 禹振,杨振,苏小红,王甜甜. 智能计算机与应用. 2017(03)
[3]基于GCC关键变量数据流分析算法的程序切片技术[J]. 杨小川,姜军,马晓东,漆锋滨. 计算机工程与应用. 2017(24)
[4]基于并发程序数据竞争故障的变异策略[J]. 吴俞伯,郭俊霞,李征,赵瑞莲. 计算机应用. 2016(11)
[5]静态软件缺陷预测方法研究[J]. 陈翔,顾庆,刘望舒,刘树龙,倪超. 软件学报. 2016(01)
[6]并发缺陷暴露、检测与规避研究综述[J]. 苏小红,禹振,王甜甜,马培军. 计算机学报. 2015(11)
[7]基于BPEL的流程数据竞争问题研究[J]. 杨书新,李淑芝,张永进. 计算机应用. 2010(07)
[8]软件分析技术进展[J]. 梅宏,王千祥,张路,王戟. 计算机学报. 2009(09)
[9]Java程序数据竞争的增量式检测[J]. 张昱,郝允允. 西安交通大学学报. 2009(08)
[10]关于提高基于OpenSSL软件性能的研究[J]. 张妍,许云峰,张焕生. 河北科技大学学报. 2007(02)
硕士论文
[1]面向多线程机制的软件重构方法研究与实现[D]. 柳晨光.河北科技大学 2016
[2]多线程程序数据竞争检测和验证方法研究[D]. 杨振.哈尔滨工业大学 2016
[3]基于Java字节码的多线程数据竞争检测方法研究及工具实现[D]. 史鹏宙.哈尔滨工业大学 2014
[4]基于Soot框架Java同步优化研究[D]. 关义生.浙江师范大学 2013
[5]多线程程序数据竞争静态检测方法研究[D]. 简道红.大连理工大学 2013
[6]基于动态二进制翻译的多线程程序数据竞争检测方法研究[D]. 徐超.上海交通大学 2010
本文编号:3302947
【文章来源】:河北科技大学河北省
【文章页数】:70 页
【学位级别】:硕士
【部分图文】:
Soot对Java程序的中间变换
IR之间的转换
图 4-1 数据竞争检测框架的数据竞争故障的检测过程是以共享变量的访问操作为中心的收集至关重要。通过控制流分析构造线程内和线程间的函的被调函数中收集该线程的所有访问事件的相关信息。定义数据竞争产生的条件,并依据条件收集所有可能产生竞提高检测的精确度,对所有的竞争访问事件进行别名分析和分析不仅考虑了别名变量的现象,还考虑到了别名锁现象带;生序关系分析中,本文采用控制流分析抽象模拟线程内和线系图,然后对时序关系图中的访问事件进行切片分析并定义,完成两个访问事件的发生序关系判断,排除某些因线程交调用图构建
【参考文献】:
期刊论文
[1]并行环境下Java哈希机制的对比及重构[J]. 郑雅洁,张冬雯,张杨,郭松,梁亚楠,魏萌萌,于欣. 河北工业科技. 2017(06)
[2]多线程程序数据竞争检测和验证方法研究综述![J]. 禹振,杨振,苏小红,王甜甜. 智能计算机与应用. 2017(03)
[3]基于GCC关键变量数据流分析算法的程序切片技术[J]. 杨小川,姜军,马晓东,漆锋滨. 计算机工程与应用. 2017(24)
[4]基于并发程序数据竞争故障的变异策略[J]. 吴俞伯,郭俊霞,李征,赵瑞莲. 计算机应用. 2016(11)
[5]静态软件缺陷预测方法研究[J]. 陈翔,顾庆,刘望舒,刘树龙,倪超. 软件学报. 2016(01)
[6]并发缺陷暴露、检测与规避研究综述[J]. 苏小红,禹振,王甜甜,马培军. 计算机学报. 2015(11)
[7]基于BPEL的流程数据竞争问题研究[J]. 杨书新,李淑芝,张永进. 计算机应用. 2010(07)
[8]软件分析技术进展[J]. 梅宏,王千祥,张路,王戟. 计算机学报. 2009(09)
[9]Java程序数据竞争的增量式检测[J]. 张昱,郝允允. 西安交通大学学报. 2009(08)
[10]关于提高基于OpenSSL软件性能的研究[J]. 张妍,许云峰,张焕生. 河北科技大学学报. 2007(02)
硕士论文
[1]面向多线程机制的软件重构方法研究与实现[D]. 柳晨光.河北科技大学 2016
[2]多线程程序数据竞争检测和验证方法研究[D]. 杨振.哈尔滨工业大学 2016
[3]基于Java字节码的多线程数据竞争检测方法研究及工具实现[D]. 史鹏宙.哈尔滨工业大学 2014
[4]基于Soot框架Java同步优化研究[D]. 关义生.浙江师范大学 2013
[5]多线程程序数据竞争静态检测方法研究[D]. 简道红.大连理工大学 2013
[6]基于动态二进制翻译的多线程程序数据竞争检测方法研究[D]. 徐超.上海交通大学 2010
本文编号:3302947
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3302947.html