Java并发程序中数据竞争的静态检测工具的设计与实现

来源 :东南大学 | 被引量 : 0次 | 上传用户:smalldong224
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着云计算、大数据的兴起和各种分布式系统的应用,并发编程也变得越来越流行。然而并发程序编写容易出错,数据竞争就是并发程序中典型的缺陷,它是指多个线程在没有经过同步的情况下同时对共享内存变量进行了访问,并且其中至少有一个写访问。数据竞争在并发程序中经常出现且不易觉察、隐藏较深、难以复现。为了保证系统稳定安全地运行,实习公司提出要设计一款检测Java并发程序中数据竞争问题的检测工具。本文在阅读大量国内外文献的基础上,通过综合运用多种静态分析技术提出了一种能够检测Java并发程序中数据竞争缺陷的静态检测方法,并实现了相应的检测工具。首先,使用soot分析框架将被检测代码转换成易于分析的Jimple中间形式;其次,使用控制流分析和数据流分析对程序执行流程进行建模,构造线程内和线程间的控制流图和函数调用图;再次,定义和提取线程中变量的内存访问事件;然后,使用数据竞争形成条件算法对生成的内存变量访问事件集合进行笛卡尔积运算,判定可能会产生数据竞争的内存变量访问事件。在判定数据竞争的同时对变量访问事件进行并发性分析和别名分析,以降低工具的误报率和漏报率。最后,本文设计和实现了该检测工具,并选取了八个包含数据竞争缺陷的程序作为实验对象,经过实验验证,本论文工具在漏报率、误报率和检测效率上均表现良好,可以有效地检测出Java并发程序中的数据竞争缺陷。
其他文献
随着互联网技术的快速发展和大数据时代的全面到来,企业级应用中越来越多的应用场景需要在预定的时间点按照指定的时间规则去执行特定的任务,这样的任务就是“定时任务”。业务规模的发展和逻辑复杂度的上升使得定时任务在企业级应用中扮演着越来越重要的角色,但是现有的定时任务调度方案存在着可管理性差、并行处理能力差、任务编排能力差和可用性差等问题。针对以上问题,本文设计并实现了一个基于松耦合架构的分布式定时任务调
近年来,交通事故频发,为了保障出行安全,随着深度学习和计算机技术的发展,自动驾驶技术成为道路交通安全领域的研究热点之一。自动驾驶环境感知以及驾驶场景三维重建仿真对保障自动驾驶安全十分重要,本文围绕这两个任务,展开以下研究:首先构建了二维目标检测及(道路)语义分割融合模型(后简称融合模型)。融合模型包含3个子模块:特征提取模块(残差网络)、二维目标检测模块和(道路)语义分割模块。针对融合模型提出了“
随着计算机图形技术的快速发展,三维室内模型在室内设计行业得到了广泛应用,设计师只需在室内设计软件中简单地拖拽和替换三维室内模型就能高效地对室内空间进行设计和修改,大幅提高了设计效率,降低了设计成本。目前大多数室内设计软件都提供了大量的三维室内模型供用户挑选,然而用户在挑选模型的过程中通常只能使用有限的关键字以文本的形式进行检索,无法准确地获取到想要的模型,存在较大的局限性。因此,本文研究了一种基于
应用程序编程接口(Application Programming Interface,简称API)在软件开发过程中起着重要作用,开发人员在软件开发、维护过程中借助API可以显著提高开发效率。API数量的急剧增长导致开发人员使用API的难度增加。API推荐技术帮助开发人员迅速找到需要的API。在API推荐技术中,研究人员需要分析各类包含自然语言的软件文档,从软件文档中提取API的功能描述、使用示例等
准确提取农作物收割导航路径线对于实现精准农业日趋重要,导航路径线不仅能够为智能稻麦收获机的自动驾驶系统提供路径信息,也可以为收获机的测产系统提供实时收割宽度。针对智能稻麦收获机导航路径检测易受干扰和可靠性差的问题,分析收获机的复杂工作环境特征,建立智能稻麦收获机导航线视觉检测模型,提出基于鸟瞰图导航线视觉检测区域图像分割的收割导航线检测与跟踪方法,解决了智能稻麦收获机导航系统中存在的准确高效获取相
在通信企业信息化建设的过程中,局点业务的运维管理占据着重要位置。并且,随着业务的数量急剧增长和业务的复杂度不断上升,通信企业对局点运维系统的依赖程度也越来越高。因此,对局点业务进行运维管理是保证业务正常运行的关键。一个良好的局点运维系统能够把局点业务的运行风险度降至最低,并提高通信企业的运维管理效率。近年来,伴随着互联网技术的迅猛发展,针对通信企业局点业务开发的运维管理系统也越来越多。但是,这些系
我国频发的各类自然灾害对道路交通的破坏非常巨大,建立完备的道路交通救援体系是挽救人民生命财产损失的重要手段。应急救援系统重在演练,但是在真实的演练环境不易搭建或代价巨大的条件下,通过创建道路应急抢通三维虚拟场景来演练救援队伍则势在必行。本文从三维场景的实际应用出发,结合虚拟现实技术、GIS(地理信息系统)技术以及数字高程模型的应用,创建了道路应急抢通三维虚拟场景,实现了灾害条件下对道路应急抢通装备
随着现代信息社会的加速发展,信息类型逐渐多样化,对于不同的信息呈现方法的需求也日益增强。多视图协调平行展示是基于单视图无法满足复杂程度越来越高的信息类型有效呈现的现实条件下,逐渐出现作为帮助用户观测数据的一种信息呈现方式。本文通过眼动追踪技术获取的眼动指标及其参数定量化地评估分析色彩视觉视觉线索对用户的视觉注意力的引导作用以及对于用户心智模型构建的调节作用,为多视图平行协调展示的信息表征与呈现方式
随着计算机技术的高速发展,各类软件和应用程序的开发要求和开发难度不断增大,API(Application Programming Interface,应用程序编程接口)推荐技术的研究和应用就具有很大的研究潜力和研究价值。当前软件开发的效率和软件开发的质量很大程度上取决于API方法的推荐结果,它能够快速的给开发人员提供准确的API方法来交付功能丰富的软件,并且在一定程度上保障了方法的实用性,极大的节
场景理解是指机器通过传感器分析其周边区域的过程,需要解决的任务包括深度估计、场景分类、目标检测及跟踪等。3D目标检测作为场景理解中的一项核心任务,是确定目标是否存在、确定目标位置与大小的过程。3D目标检测作为自动驾驶领域需要解决的核心任务之一,是自动驾驶汽车能够安全行驶的必要条件。近年来深度学习在该领域有着广泛应用,但由于多种传感器获取的是不同模态的数据,每种都有其优缺点,所以如何将多模态数据良好