基于Java字节码的多线程数据竞争检测方法研究及工具实现

被引量 : 0次 | 上传用户:vpvplp
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机系统规模逐步扩大,用户数量不断增加,越来越多的软件系统需要考虑并发程序设计,而多线程技术是实现软件程序并发的常用方法。但是,由于多线程程序开发难度大,程序运行期间线程调度的不确定性,使得多线程程序很容易发生问题。数据竞争就是多线程程序中一种常见的并发问题。在多线程环境下的数据竞争是指多个线程同时访问同一块内存资源时,没有采取正确的同步方式,而且其中至少存在一个写操作。数据竞争问题会给软件程序带来很大的隐患,可能造成很大的危害。为了解决数据竞争问题,国内外研究者采用形式化的方法进行数据竞争检测。通常的数据竞争检测方法分为静态检测和动态检测两种。然而,静态检测方法存在错误预报,动态检测方法执行效率较低,而且不能覆盖全部的程序执行路径。本文针对Java多线程程序,提出了一种基于Java字节码的数据竞争检测方法,主要完成了以下工作:通过字节码解析,建立了抽象程序模型,并提取出与程序分析相关的关键信息集合。在字节码指令的基础上,采用数据流分析方法,提出了基于字节码指令的控制流程图和函数调用图的构建方法。根据数据竞争产生的条件,总结出基于字节码的检测数据竞争方法。通过使用别名分析方法,建立数据竞争检测步骤,即可达性计算、别名分析和锁集合计算,有效地发现数据竞争问题。为验证方法的有效性,使用编程语言实现了基于字节码的数据竞争检测方法。通过实验证明,相比基于源代码的数据竞争检测方法,该方法具有较高的检测效率,并且能够准确地发现数据竞争问题。
其他文献
通过在江苏五市的偶遇抽样调查,分析农民工参保影响因素。结果显示:农民工主要以参加新农合和城镇职工医保为主,影响农民工参保选择的显著因素主要集中在文化程度、收入、工
民营企业是中国高新技术产业的一支主力军,浙江省经济近几年快速发展,除了体制和市场先发优势等原因外,民营企业功不可没。然而尽管浙江省为民营企业的发展制定了一系列的优
本文讨论了在相隔4°轨道空间的两个SCPC通信卫星中,插入一个新的CDMA通信卫星的可能性。给出了每位能量/噪声功率密度与CDMA系统用户数之间的关系。讨论了增加用户数的方法
以2006~2010年沪深两市的上市公司为样本,在控制了行业因素、年度因素和相关财务变量的基础上,基于融资约束的视角,对大股东行为与上市公司现金持有量的关系进行了实证检验。
在调研了国内外页岩气研究成果的基础上,系统地研究了页岩气藏基本特征,分析了页岩气藏的成藏机理及成藏控制因素,并针对页岩气藏特殊的成藏特征,探讨了相应的识别方法和资源
通过对我国城市医院与社区卫生服务机构不同双向转诊模式的讨论,分析不同模式下双向转诊的优点和存在的问题,为我国城市的双向转诊工作持续性开展提供参考依据。
如何在现代社会调适农业文化遗产保护与持续发展之间的矛盾是一项重大课题。发展旅游被认为是农业文化遗产动态保护的重要手段,将保护传承太湖地区历史悠久、丰富且极具特色
随着市场经济的发展,中小企业已成为我国国民经济的重要组成部分,在促进市场竞争,增加社会就业和保持社会稳定等方面发挥着非常重要的作用。但是,我国的大部分中小企业也存在
搞好心理健康教育关键在教师,我国中小学心理健康教育教师存在"专业人员少;专职人员少,临时兼职多,违规操作多"的状况,应通过在职教师培训和职前培养相结合、资格认证制度与