基于静态源码分析的多线程死锁检测方法研究

来源 :北京邮电大学 | 被引量 : 5次 | 上传用户:luan0778
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机的发展,软件的规模不断扩大,其复杂度也随之增加,软件故障正成为计算机系统失效和停机的主要因素,软件质量成为计算机领域研究的热点,软件测试已成为软件质量保证的关键步骤和软件工程中不可或缺的部分。互联网的发展加快了信息化的进程,针对计算机系统的威胁也逐步增长,安全形势越来越严峻,软件安全作为网络时代软件必然的需求,对软件质量提出了更高的要求。死锁是并发程序中的典型问题之一,也是影响软件安全的主要问题。死锁会导致程序无法正常运行或终止,甚至导致系统崩溃,带来不必要的损失。同时,死锁的运行状态空间过大,难于重现和修正等问题使其成为软件领域的难题之一,因此,如何有效的检测死锁,提高软件的可靠性和安全性,成为急需解决的问题。本文在国家“863”计划“软件的故障模型与面向故障的软件测试系统”及国家“863”计划“软件的安全性缺陷模型及基于安全性缺陷模型的测试技术”的支持下,以缺陷模式检测中所涉及的若干静态分析技术为研究核心,着重讨论了基于静态源码分析的多线程死锁检测方法。论文的主要工作包括以下内容:(1)本文通过对死锁问题的分析,结合Java多线程程序特点,讨论了Java多线程程序中常见的死锁模式的特点,并给出了统一的缺陷描述。(2)本文基于对Java多线程程序死锁的分析,结合国内外死锁检测方法,提出了基于静态源码分析的多线程死锁检测方法,该方法适用于大型项目中两个或多个线程产生的死锁问题的检测。文中的检测方法,首先通过对待测源程序的预分析,生成抽象语法树和控制流图等辅助分析结构;然后通过可达分析检测程序中可达的线程的并发特征,使用别名分析检测所有可能存在死锁情况;之后,对潜在的死锁集合进行分析,通过门锁分析和并发与逃逸分析,排除其中不可能的死锁情况,逐步缩小死锁集合,提高检测精度。(3)本文在基于缺陷的软件测试框架DTS Java的基础上,基于文中提出的检测方法设计并实现了的静态死锁检测子系统,该系统主要包括:线程并发特征分析模块、别名分析模块、可达分析模块、门锁分析模块和并发与逃逸分析模块等。同时,本文通过对一个死锁缺陷测试程序包和选取的5个开源项目,共225K行代码进行了测试,验证了该方法可以有效的检测Java多线程程序中潜在的死锁问题。
其他文献
纹理是描述图像结构和内涵的一个重要特征,是计算机视觉和模式识别领域中的一个重要研究内容。纹理分割不仅是纹理分析的基础,也是图像分割、图像复原、图像增强、图像配准、
程序语言信息流安全讨论如何保证拥有对机密数据访问权限的程序不会以不恰当的方式传播机密数据,或者验证出程序是否会以不恰当的方式将机密数据传播给未授权方。广义上的信
数据挖掘是近几十年来随着信息技术发展和计算机技术的兴起而产生的一门新兴学科。随着网络技术和信息技术的迅猛发展,近几年在数据挖掘领域出现了对新的数据形式即数据流的
针对运动目标检测与跟踪关键技术问题展开了研究,在认真总结前人研究成果的基础上,深入分析与探讨了目前运动目标检测与跟踪算法研究领域所面临的主要问题。论文主要针对两个关
地震数据分析是地震勘探工作中很重要的一个环节。本文从地震资料连片理论基础出发,介绍了地震资料连片的工作流程,论述了地震资料连片处理工作的意义,并在此基础上提出了地震资
针对目前城市交通中普遍存在的拥堵问题,本文从一个由用户数据指导用户行动,再由行动结果影响用户的角度,并以此利用基于位置服务应用的方法,建立了一个自适应的交通导航系统
计算机图形技术已被广泛地应用于游戏、电影,CAD制作等各个领域,光子映射算法是目前最好的全局光照算法之一,光辐射强度估算是光子映射算法中的关键技术。如何快速准确地对光
随着当前企业级IT系统的日益复杂、市场需求和业务策略随外部条件的不断变化,为解决传统信息系统中业务规则的修改和配置造成的效率低下问题,业务规则管理技术成为目前研究的热
图像恢复是利用退化图像的先验知识,建立退化现象的数学模型,再根据模型进行反向推演运算,以恢复原来图像的景物图像。图像恢复一直是图像处理与计算机视觉中一个重要的研究
嵌入式视频网络监控系统具有轻便性、一体化、网络化和智能化等优点,在安防、智能交通领域内发挥着非常重要的作用。随着计算机硬件技术的高速发展和视频图像处理技术的不断