基于Delta-Debugging算法的多线程程序缺陷定位方法研究

来源 :天津大学 | 被引量 : 0次 | 上传用户:gmtt123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
当今世界多核硬件的高速发展使得多线程程序逐渐被广泛使用,但是往往由于线程之间交错模式的不确定性,多线程程序易于遭遇多线程缺陷,因而保证多线程程序的正确性及其重要而又及其富有挑战性。定位到多线程程序中导致缺陷发生的代码位置,并且理清导致缺陷发生的根本原因,通常需要程序开发人员话花费较多的时间和精力。在这篇文章中,我们在Delta-Debugging算法的基础上,基于内存读写模式的抽象表达,提出了一种对多线程程序缺陷的自动化检测和缺陷原因分析方法DDM。我们的核心思想是找到导致缺陷发生的最小的内存读写模式集合,从而达到精准定位和准确分析的目标。首先,当给出一个被测的有缺陷的程序,我们记录程序运行过程中每一步的线程调度执行,然后从所有的执行步骤中抽离出所有可能的内存读写模式,首先找出内存读写模式集最接近的一对失败和成功执行序列,这两个集合之间的差异我们叫做差异集。接下来,进一步我们扩展Delta-Debugging算法,并将其应用到多线程程序的内存读写模式中,进行缺陷检测。我们利用Java Pathfinder对差异集中的内存读写模式进行打断再执行,从而验证它们是否会导致缺陷发生。由于多线程程序的内存读写模式彼此互相关联,有黏性,因而将Delta-Debugging算法应用到多线程程序有一定的难度。因此针对多线程程序的线程调度方案,我们提出了一个新的函数test(U,f)进行实现。最后,我们将这个想法用真实的程序进行实验验证和多维度研究。实验验证过程以SIR中的程序为例,将我们的方法应用于26个多线程缺陷上,通过与其他经典的方法进行对比,实验结果表明我们的方法可以有效地给出导致多线程缺陷的最小内存读写模式集合。此外,通过与经典方法的结合,我们的方法还可对已有方法的定位结果进行改进。
其他文献
一边是走高端时尚路线的梦龙,一边是走青春纯爱路线的可爱多,还有一边是专攻儿童市场的麦酷狮。进入中国已有20余载的联合利华旗下冰淇淋品牌和路雪,正在率领旗下三大子品牌
生态文化作为人与自然和谐的生存方式,是人类应对全球性生态危机的文化选择和推动生态文明建设的重要支撑。“绿色化”是生态文明建设的现实路径和形象表达。“绿色化”与生
高温超导磁悬浮发射技术是将高温超导磁悬浮技术应用于军事发射领域为发射载体提供一个较大的推力,从而加速发射体达到一个较高的起飞初速,以携带更多有效载荷入轨的一种新型发
2019年6月24日,习近平总书记主持召开了以“牢记初心使命,推进自我革命”为主题的中共中央政治局第十五次集体学习,着重强调“自我革命”,指出“越是长期执政,越不能忘记党的
近年来,工会档案管理中的漏洞和不足日益凸显,而工会档案管理是工会工作中的重要内容,这为工会工作的顺利开展带来了不少困难。本文以此为出发点,分析了现阶段工会档案管理中
近日,国家发展改革委、国家能源局印发了《关于深化电力现货市场建设试点工作的一件》(一下简称《一件》),聚焦当前8个电力现货市场试点工作中面临的重点和共性问题,有针对性
目前我国新医改的实施提出了增设药事服务和药事服务费的概念,成为了大家关注的焦点,但是不同行业或者专家对其理解的含义也不一样。因此,也产生了对药事服务千差万别的理解。医
"中国梦"是习近平总书记所提出的重要指导思想和重要执政理念。结合"深化‘中国梦’的宣传教育,要将宣传教育融入各级各类学校教育教学之中,融入未成年人思想道德建设和大学
近年来,随着我国城镇化进程的加快,公共服务设施的建设缺口日益增大,在政府财力较为有限的背景下,房地产开发项目代建公共服务设施逐步被国内多个大型城市所采纳。该模式是指
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield