一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-02-19 07:18:29 来源:中国专利 TAG:


1.本发明涉及一种基于事件流分析的多任务资源冲突检测方法。


背景技术:

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


技术实现要素:

3.本发明的目的是提供一种基于事件流分析的多任务资源冲突检测方法,用于全面检测软件的资源冲突情况,可以根据软件实际应用场景精确分析软件各个任务使用时间段,精准定位软件资源冲突,并针对冲突的事件和任务对软件测试人员进行提示。
4.为实现上述目的,本发明提供一种基于事件流分析的多任务资源冲突检测方法,包括:
5.1)给定以下数据:事件名称及其触发周期和应处理完成时间;各项任务占用时间;事件和任务的关系;
6.2)根据各项事件应处理完成时间构建事件时间片的集合{m1},{m1}的数据结构模型为:mi1{ti1,type,ci};
7.其中:ti表示事件出现的时间片,type表示是否为周期事件,当type为偶发事件时,ci值为0。
8.3)根据任务运行时间构建任务运行时间集合{m2},{m2}的数据结构模型为mi2{ti2,tk2,pk2};
9.其中:ti表示任务处理完成时间,tk表示第k个任务,pk表示任务的优先级;
10.4)根据任务调用资源情况构建任务调用资源情况集合{m3},{m3}的数据结构模型为mi3{tk,type,address{addr1,addr2,addr3....}}
11.其中:tk为m1序列中的某一个任务,type为资源使用类型,address为资源对应的空间地址。
12.5)根据各项事件中需调用任务的关系构建事件

任务关系集合{r1},{r1}的数据结构模型为ri1{tk1,ma2,mb2,mc2,
……
};
13.其中:tk表示第k个事件,mk2表示tk事件对应{m2}的任务集合模型;
14.6)将{m2}中的任务依据{r1}的关系,以{m1}的事件周期、事件优先级、事件序号排序,形成新的任务时间片序列的集合{m4},集合{m4}数据结构模型为:m
i3
{m
i1
,m
a2
,m
b2
,m
c2

……
};
15.其中m
k1
表示当前事件对应{m1}的事件模型,m
k2
表示当前事件对应{m2}和{m3}对应的任务集合模型;
16.7)计算{m4}中{m1}中每个事件对资源调用的时间段,{m2}中每个任务对资源调用的时间段;
17.在以上分析的基础上,得到以下数据:
18.各个事件对各个资源占用的最大时间;
19.软件运行时各资源的使用率;
20.是否存在资源冲突,以及存在冲突的事件和任务。
21.所述的多任务资源冲突检测方法,其特征在于,在所述步骤4)中,tk应与{m1}中的成员对应。
22.所述的多任务资源冲突检测方法,其特征在于,在所述步骤5)中,tk1应与{m1}中的成员对应,{m2}应为所述步骤2)生成的集合{m2}的子集。
23.所述的多任务资源冲突检测方法,其特征在于,在所述步骤6)中,如果{m4}中的{m1}对应{m1}序列中的单个事件,应记录该事件对应的事件序号、事件优先级和事件时间。
24.所述的多任务资源冲突检测方法,其特征在于,在所述步骤6)中,如果{m4}中的某个事件包含{m2}的多个任务组成,则分别要记录这些任务的{m2}中的任务的时间和优先级。
25.所述的多任务资源冲突检测方法,其特征在于,在所述步骤6)中,以{m1}的事件周期、事件优先级、事件序号排序的方法为:
26.优先以事件优先级从高到低进行排序;同一优先级的事件以事件周期进行排序,偶发事件排序在前,周期较短的排序在前;同一优先级且事件周期一致的则按序号先后顺序进行排序。
27.所述的多任务资源冲突检测方法,其特征在于,在所述步骤7)中计算{m4}中{m1}中每个事件对资源的占用率的方法为:
28.统计特定资源被所有{m4}序列中事件被调用的时间和∑t1=t1 t2 t3 ...ti,其中t时间为{m2}中的任务处理完成时间;
29.如果{m4}中的某个时间点包括{m2}中的某个或某几个任务,则{m4}中的该事件的特定资源被调用的时间和∑t2=t1 t2 t3 ...ti,其中t时间为{m2}中的任务处理完成时间;
30.则该事件的资源占用率为∑t2/∑t1。;
31.所述的多任务资源冲突检测方法,其特征在于,在所述步骤7)中判断是否存在资源冲突,以及存在冲突的事件和任务的方法为:
32.如果某个特定资源被{m2}序列中多个任务调用,根据{m1}序列对{m2}任务进行时间轴布局,对任务执行情况进行分析,当存在以下情况时,认为存在资源冲突:
33.调用资源的多个{m2}序列任务在时间轴上存在重合,则重合的任务存在任务,包含重合任务的事件存在冲突。
34.本发明的有益效果是:
35.1.算法复杂度较低,是线性复杂度,可支持较大规模的软件时序分析。
36.2.算法实现简单,根据应用可删减过程。比如:如果只需要知道特定资源是否有冲
突,则仅对特定资源进行分析即可;如果只需知道特定时间是否有冲突,则仅对单一时间段内的事件和其包含的任务及调用的资源进行分析即可。
37.3.可获得资源冲突区间的全面检测数据。
附图说明
38.图1为本发明一实施例的事件数据模型的示意图;
39.图2为本发明一实施例的任务数据模型的示意图;
40.图3为本发明一实施例的事件和任务的关系数据模型的示意图;
41.图4为本发明一实施例的任务资源调用情况的示意图;
42.图5为本发明一实施例的任务时间段的示意图。
具体实施方式
43.本发明提供一种基于事件流分析的多任务资源冲突检测方法,用于全面检测软件的资源冲突情况,可以根据软件实际应用场景精确分析软件各个任务使用时间段,精准定位软件资源冲突,并针对冲突的事件和任务对软件测试人员进行提示。
44.本发明包括以下步骤:
45.1)给定以下数据:事件名称及其触发周期和应处理完成时间;各项任务占用时间;事件和任务的关系;
46.2)根据各项事件应处理完成时间构建事件时间片的集合{m1},{m1}的数据结构模型为:mi1{ti1,type,ci};
47.其中:ti表示事件出现的时间片,type表示是否为周期事件,当type为偶发事件时,ci值为0。
48.3)根据任务运行时间构建任务运行时间集合{m2},{m2}的数据结构模型为mi2{ti2,tk2,pk2};
49.其中:ti表示任务处理完成时间,tk表示第k个任务,pk表示任务的优先级;
50.4)根据任务调用资源情况构建任务调用资源情况集合{m3},{m3}的数据结构模型为mi3{tk,type,address{addr1,addr2,addr3

}};
51.其中:tk为m1序列中的某一个任务,type为资源使用类型,address为资源对应的空间地址1
52.5)根据各项事件中需调用任务的关系构建事件

任务关系集合{r1},{r1}的数据结构模型为ri1{tk1,ma2,mb2,mc2,
……
};
53.其中:tk表示第k个事件,mk2表示tk事件对应{m2}的任务集合模型;
54.6)将{m2}中的任务依据{r1}的关系,以{m1}的事件周期、事件优先级、事件序号排序,形成新的任务时间片序列的集合{m4},集合{m4}数据结构模型为:mi3{mi1,ma2,mb2,mc2,
……
};
55.其中mk1表示当前事件对应{m1}的事件模型,mk2表示当前事件对应{m2}和{m3}对应的任务集合模型;
56.7)计算{m4}中{m1}中每个事件对资源调用的时间段,{m2}中每个任务对资源调用的时间段;
57.在以上分析的基础上,得到以下数据:
58.各个事件对各个资源占用的最大时间;
59.软件运行时各资源的使用率;
60.是否存在资源冲突,以及存在冲突的事件和任务。
61.在所述步骤4)中,ttk应与{m1}中的成员对应。
62.在所述步骤5)中,tk1应与{m1}中的成员对应,{m2}应为所述步骤2)生成的集合{m2}的子集。
63.在所述步骤6)中,如果{m4}中的某个事件包含{m2}的多个任务组成,则分别要记录这些任务的{m2}中的任务的时间和优先级。
64.在所述步骤6)中,以{m1}的事件周期、事件优先级、事件序号排序的方法为:
65.优先以事件优先级从高到低进行排序;同一优先级的事件以事件周期进行排序,偶发事件排序在前,周期较短的排序在前;同一优先级且事件周期一致的则按序号先后顺序进行排序。
66.在所述步骤7)中,计算{m4}中{m1}中每个事件对资源的占用率的方法为:统计特定资源被所有{m4}序列中事件被调用的时间和∑t1=t1 t2 t3

ti,其中t时间为{m2}中的任务处理完成时间;
67.如果{m4}中的某个时间点包括{m2}中的某个或某几个任务,则{m4}中的该事件的特定资源被调用的时间和∑t2=t1 t2 t3

ti,其中t时间为{m2}中的任务处理完成时间;
68.则该事件的资源占用率为∑t2/∑t1;
69.在所述步骤7)中判断是否存在资源冲突,以及存在冲突的事件和任务的方法为:
70.如果某个特定资源被{m2}序列中多个任务调用,根据{m1}序列对{m2}任务进行时间轴布局,对任务执行情况进行分析,当存在以下情况时,认为存在资源冲突:
71.调用资源的多个{m2}序列任务在时间轴上存在重合,则重合的任务存在任务,包含重合任务的事件存在冲突。
72.以下结合具体附图对本发明进一步地说明
73.1)构建数据模型
74.软件执行的事件数据模型如图1所示,其中优先级约定优先级值越小,优先度越高。
75.软件设计的任务数据模型如图2所示,其中优先级约定优先级值越小,优先度越高。
76.事件和任务的关系数据模型如图3所示。
77.软件设计的任务资源调用情况如图4所示。
78.2)根据事件

任务的关系构建任务时间段如图5所示。
79.3)根据事件优先级、事件周期、事件序号进行排序,并形成时序图。
80.4)检测冲突
81.根据资源冲突检测规则,可得知以下结论:
82.资源a与资源b冲突情况:事件1的任务a调用资源a时会于事件1的任务c调用资源b产生冲突;
83.资源a与资源c冲突情况:事件1的任务a调用资源a时会于事件2的任务d调用资源c产生冲突;
84.资源b与资源c冲突情况:资源b与资源c不存在冲突。
85.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献