基于事件流分析的多任务资源冲突检测方法技术

技术编号:31757855 阅读:15 留言:0更新日期:2022-01-05 16:41
本发明专利技术公开了一种基于事件流分析的多任务资源冲突检测方法,根据软件任务书和系统环境构建事件流,并确定各事件触发条件或开始时间和各事件处理时间片的集合{M1};根据软件设计架构确定软件的所有任务、各项任务运行时间{M2}和各项任务运行时调用的资源{M3};根据软件设计架构确定各事件调用软件任务调用的的关系{R1};根据{R1}以{M1}中重合的时间点所调用的任务{M2}按照先后顺序排列成时间点的集合{M4};形成{M3}和{M4}的映射;得到每个资源的使用频段;是否存在资源冲突,以及存在冲突的事件和任务。本发明专利技术用于静态的检测软件资源冲突情况,可以根据软件实际运用场景精确定位软件资源冲突,并针对存在冲突的事件和任务对测试人员进行提示。试人员进行提示。试人员进行提示。

【技术实现步骤摘要】
基于事件流分析的多任务资源冲突检测方法


[0001]本专利技术涉及一种基于事件流分析的多任务资源冲突检测方法。

技术介绍

[0002]随着软件工程化的推进,大型系统中软件的实现时存在同一资源在多个事件中被重复调用的情况,当同一资源被多个事件同一时间调用时,会导致多个事件产生资源冲突,导致事件处理数据异常或事件无法调用资源产生错误的情况。目前软件测试时对资源冲突的分析采用人工分析或多任务并发压力测试的方法进行测试,但是对于一些事件较多,任务较多,任务间资源交互多的软件,可能出现冲突的资源较为偶发,人工分析无法全面覆盖,存在冲突检测方法效率不高,定位不够精确的问题。

技术实现思路

[0003]本专利技术的目的是提供一种基于事件流分析的多任务资源冲突检测方法,用于全面检测软件的资源冲突情况,可以根据软件实际应用场景精确分析软件各个任务使用时间段,精准定位软件资源冲突,并针对冲突的事件和任务对软件测试人员进行提示。
[0004]为实现上述目的,本专利技术提供一种基于事件流分析的多任务资源冲突检测方法,包括:
[0005]1)给定以下数据:事件名称及其触发周期和应处理完成时间;各项任务占用时间;事件和任务的关系;
[0006]2)根据各项事件应处理完成时间构建事件时间片的集合{M1},{M1}的数据结构模型为:Mi1{ti1,type,ci};
[0007]其中:ti表示事件出现的时间片,type表示是否为周期事件,当type为偶发事件时,ci值为0。
[0008]3)根据任务运行时间构建任务运行时间集合{M2},{M2}的数据结构模型为Mi2{ti2,Tk2,Pk2};
[0009]其中:ti表示任务处理完成时间,Tk表示第k个任务,Pk表示任务的优先级;
[0010]4)根据任务调用资源情况构建任务调用资源情况集合{M3},{M3}的数据结构模型为Mi3{Tk,type,address{addr1,addr2,addr3....}}
[0011]其中:Tk为M1序列中的某一个任务,type为资源使用类型,address为资源对应的空间地址。
[0012]5)根据各项事件中需调用任务的关系构建事件

任务关系集合{R1},{R1}的数据结构模型为Ri1{Tk1,Ma2,Mb2,Mc2,
……
};
[0013]其中:Tk表示第k个事件,Mk2表示Tk事件对应{M2}的任务集合模型;
[0014]6)将{M2}中的任务依据{R1}的关系,以{M1}的事件周期、事件优先级、事件序号排序,形成新的任务时间片序列的集合{M4},集合{M4}数据结构模型为:M
i3
{M
i1
,M
a2
,M
b2
,M
c2

……
};
[0015]其中M
k1
表示当前事件对应{M1}的事件模型,M
k2
表示当前事件对应{M2}和{M3}对应的任务集合模型;
[0016]7)计算{M4}中{M1}中每个事件对资源调用的时间段,{M2}中每个任务对资源调用的时间段;
[0017]在以上分析的基础上,得到以下数据:
[0018]各个事件对各个资源占用的最大时间;
[0019]软件运行时各资源的使用率;
[0020]是否存在资源冲突,以及存在冲突的事件和任务。
[0021]所述的多任务资源冲突检测方法,其特征在于,在所述步骤4)中,TK应与{M1}中的成员对应。
[0022]所述的多任务资源冲突检测方法,其特征在于,在所述步骤5)中,TK1应与{M1}中的成员对应,{M2}应为所述步骤2)生成的集合{M2}的子集。
[0023]所述的多任务资源冲突检测方法,其特征在于,在所述步骤6)中,如果{M4}中的{M1}对应{M1}序列中的单个事件,应记录该事件对应的事件序号、事件优先级和事件时间。
[0024]所述的多任务资源冲突检测方法,其特征在于,在所述步骤6)中,如果{M4}中的某个事件包含{M2}的多个任务组成,则分别要记录这些任务的{M2}中的任务的时间和优先级。
[0025]所述的多任务资源冲突检测方法,其特征在于,在所述步骤6)中,以{M1}的事件周期、事件优先级、事件序号排序的方法为:
[0026]优先以事件优先级从高到低进行排序;同一优先级的事件以事件周期进行排序,偶发事件排序在前,周期较短的排序在前;同一优先级且事件周期一致的则按序号先后顺序进行排序。
[0027]所述的多任务资源冲突检测方法,其特征在于,在所述步骤7)中计算{M4}中{M1}中每个事件对资源的占用率的方法为:
[0028]统计特定资源被所有{M4}序列中事件被调用的时间和∑T1=t1+t2+t3+...ti,其中t时间为{M2}中的任务处理完成时间;
[0029]如果{M4}中的某个时间点包括{M2}中的某个或某几个任务,则{M4}中的该事件的特定资源被调用的时间和∑T2=t1+t2+t3+...ti,其中t时间为{M2}中的任务处理完成时间;
[0030]则该事件的资源占用率为∑T2/∑T1。;
[0031]所述的多任务资源冲突检测方法,其特征在于,在所述步骤7)中判断是否存在资源冲突,以及存在冲突的事件和任务的方法为:
[0032]如果某个特定资源被{M2}序列中多个任务调用,根据{M1}序列对{M2}任务进行时间轴布局,对任务执行情况进行分析,当存在以下情况时,认为存在资源冲突:
[0033]调用资源的多个{M2}序列任务在时间轴上存在重合,则重合的任务存在任务,包含重合任务的事件存在冲突。
[0034]本专利技术的有益效果是:
[0035]1.算法复杂度较低,是线性复杂度,可支持较大规模的软件时序分析。
[0036]2.算法实现简单,根据应用可删减过程。比如:如果只需要知道特定资源是否有冲
突,则仅对特定资源进行分析即可;如果只需知道特定时间是否有冲突,则仅对单一时间段内的事件和其包含的任务及调用的资源进行分析即可。
[0037]3.可获得资源冲突区间的全面检测数据。
附图说明
[0038]图1为本专利技术一实施例的事件数据模型的示意图;
[0039]图2为本专利技术一实施例的任务数据模型的示意图;
[0040]图3为本专利技术一实施例的事件和任务的关系数据模型的示意图;
[0041]图4为本专利技术一实施例的任务资源调用情况的示意图;
[0042]图5为本专利技术一实施例的任务时间段的示意图。
具体实施方式
[0043]本专利技术提供一种基于事件流分析的多任务资源冲突检测方法,用于全面检测软件的资源冲突情况,可以根据软件实际应用场景精确分析软件各个任务使用时间段,精准定位软件资源冲突,并针对冲突的事件和任务对软件本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于事件流分析的多任务资源冲突检测方法,包括:1)给定以下数据:事件名称及其触发周期和应处理完成时间;各项任务占用时间;事件和任务的关系;2)根据各项事件的应处理完成时间构建事件时间片的集合{M1},{M1}的数据结构模型为:M
i1
{ti1,type,ci};其中:ti表示事件出现的时间片,type表示是否为周期事件,当type为偶发事件时,ci值为0;3)根据任务占用时间构建任务运行时间集合{M2},{M2}的数据结构模型为M
i2
{t
i2
,Tk2,Pk2};其中:ti表示任务处理完成时间,Tk表示第k个任务,Pk表示任务的优先级;4)根据任务调用资源情况构建任务调用资源情况集合{M3},{M3}的数据结构模型为M
i3
{Tk,type,address{addr1,addr2,addr3…
}};其中:Tk为M1序列中的某一个任务,type为资源使用类型,address为资源对应的空间地址;5)根据各项事件中需调用任务的关系构建事件和任务的关系集合{R1},{R1}的数据结构模型为R
i1
{Tk1,M
a2
,M
b2
,M
c2

……
};其中:Tk表示第k个事件,M
k2
表示Tk事件对应{M2}的任务集合模型;6)将{M2}中的任务依据{R1}的关系,以{M1}的事件片,{M2}的任务优先级、任务序号排序,形成新的任务时间片序列的集合{M4},集合{M4}数据结构模型为:M
i3
{M
i1
,M
a2
,M
b2
,M
c2
,......};其中M
k1
表示当前事件对应{M1}的事件模型,M
k2
表示当前事件对应{M2}和{M3}对应的任务集合模型;7)计算{M4}中{M1}中每个事件对资源调用的时间段,{M2}中每个任务对资源调用的时间段;在以上分析的基础上,得到以下数据:各个事件对各个资源占用的最大时间;软件运行时各资源...

【专利技术属性】
技术研发人员:胡逸琳欧阳昭侯正平施小敏张伟欣
申请(专利权)人:上海航天计算机技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1