[发明专利]一种并发程序的缺陷模式发现方法有效

专利信息
申请号: 201510264963.7 申请日: 2015-05-22
公开(公告)号: CN104899137B 公开(公告)日: 2017-09-01
发明(设计)人: 叶俊民;李超;曹洋洋;叶竹君;李蓉;杨艳 申请(专利权)人: 华中师范大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 武汉天力专利事务所42208 代理人: 吴晓颖
地址: 430079 湖*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明属于软件故障诊断领域,提供一种自主发现并发程序缺陷模式的方法,尤其是一种针对系统执行轨迹使用序列模式挖掘的缺陷模式发现方法,本发明的技术方案是基于已插装的并发程序,在其运行过程中动态调度线程的执行,实时收集程序执行信息,根据需要存储程序轨迹序列,对执行序列进行挖掘,自主发现程序缺陷模式。
搜索关键词: 一种 并发 程序 缺陷 模式 发现 方法
【主权项】:
一种并发程序的缺陷模式发现方法,其特征在于该方法包括以下步骤:(1)监控目标程序,使用面向方面编程探针代码的注入方法对监控点进行监控以便获取状态信息;(2)使用动态标记迁移算法DLT对设置监控点的目标程序的执行进行调度,获取目标程序的监控点的状态信息;所述的动态标记迁移算法DLT(S,T,t,SeS)的算法输入参数有:全局状态栈S,全局迁移序列集T,局部迁移t和初始的全局序列集SeS;算法输出参数有:全局序列集SeS;其步骤如下:(2‑1)将S中的栈顶元素出栈存入状态s,将SeS中的当前序列存入序列变量σ中;(2‑2)更新s的回溯信息;(2‑3)如果存在线程p和s状态下可行迁移集合s.enabled中线程p的一个迁移元素t,执行以下步骤:(2‑3‑1)将线程p赋值给状态s的回溯集s.backtrack;(2‑3‑2)创建状态s下已经执行过的迁移集合s.done,并将其置为空;(2‑3‑3)如果存在某一线程q是状态s的回溯集s.backtrack与状态s下已经执行过的迁移集合s.done的差集中的元素,重复执行以下步骤,直到不存在这样的线程q为止:(2‑3‑3‑1)将q加入状态s下已经执行过的迁移集合s.done中;(2‑3‑3‑2)从状态s的回溯集s.backtrack中删除线程q;(2‑3‑3‑3)设p’是执行迁移tm的线程,若线程p’属于s.done,且tm属于s.enabled,则将tm加入集合s.retrieved中;(2‑3‑3‑4)将s状态下可行迁移集合s.enabled中线程q执行的迁移设置为tn;(2‑3‑3‑5)创建项集is并初始化为空,并将tn添加到is中;(2‑3‑3‑6)将项集is添加到序列变量σ中;(2‑3‑3‑7)判断从状态s出发且执行tn迁移后到达的状态是否为空值,若不是,则执行以下步骤,否则不执行:(2‑3‑3‑7‑1)将从状态s出发且执行tn迁移后得到的状态设为s';(2‑3‑3‑7‑2)将独立于迁移t且属于s.enabled中的迁移t'存入s'.retrieved集合中;(2‑3‑3‑7‑3)将s'.enabled与s'.retrieved集合的差集存入s'.enabled中;(2‑3‑3‑7‑4)将迁移tn添加入迁移序列T中;(2‑3‑3‑7‑5)将状态s'压入状态栈S中;(2‑3‑3‑7‑6)递归调用DLT(S,T,t,SeS)算法;(2‑3‑3‑7‑7)将T中的最后一项序列移出;(2‑3‑3‑8)将S中的一项状态出栈;(2‑4)返回全局序列集SeS;(3)把监控到的状态信息,以轨迹序列的形式存储在数据库中,获取数据库中每条轨迹序列的执行结果,对轨迹序列进行分类,得到成功执行序列集和失效执行序列集;(4)在成功执行序列集和失效执行序列集中,利用序列模式挖掘算法ISPAM进行挖掘,得到目标程序缺陷模式;所述的序列模式挖掘算法ISPAM的步骤如下:(4‑1)将候选模式集合R和前k个缺陷模式的集合L设置为空集,并设置全局变量minsup为0;(4‑2)将成功执行序列集GS和失效执行序列集BS分别转化为垂直序列数据集V(GS)和V(BS),生成V(BS)中项集列表Sinit;(4‑3)对于项集列表Sinit中的每一个项items,完成以下步骤:(4‑3‑1)计算其是否是频繁项,如果是:(4‑3‑1‑1)调用SAVE()方法对由单个项组成的模式存储到L中;(4‑3‑1‑2)在R集合添加项items,Sinit,Sinit中在items之后的项的集合组成的三元组;(4‑4)如果存在元组<r,S1,S2>属于R集合并且r的支持度大于等于minsup,则重复做以下步骤,直到不满足这一条件为止:(4‑4‑1)选择R集合中拥有最高支持度的模式r的元组<r,S1,S2>;(4‑4‑2)通过调用SEARCH()方法对候选模式集合R进行拓展,更新候选模式集合R,并将拓展得到的模式调用SAVE()方法存储到L中;(4‑4‑3)将元组<r,S1,S2>从R中移除;(4‑4‑4)将R中的所有满足<r,S1,S2>∈R|sup(r)<min sup>条件的元组从R中移除;(4‑5)返回含有前k个缺陷模式的集合L。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中师范大学,未经华中师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201510264963.7/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top