理论教育 动态优先级测试任务调度算法在维修保障实例中的可行性验证

动态优先级测试任务调度算法在维修保障实例中的可行性验证

时间:2023-06-16 理论教育 版权反馈
【摘要】:基于文献[60]中针对装备的维修保障实例,验证基于动态优先级的测试任务抢占调度算法的可行性。步骤2实时监控匹配后的所有子任务,均满足oi′,j′≤Di′,进入步骤4。步骤3实时监控匹配过程中的所有子任务,发现ST1,4的o1,4>D1,如图5-21所示。

动态优先级测试任务调度算法在维修保障实例中的可行性验证

基于文献[60]中针对装备的维修保障实例,验证基于动态优先级的测试任务抢占调度算法的可行性。该实例的相关数据如表5-10所示。假设任务执行的初始时刻,只有任务Ta1和Ta2加入,经过时间T=6后,任务Ta3加入测试序列。

表5-10 维修任务实例相关数据

1.动态优先级分派策略

步骤1 计算初始阶段测试任务Ta1和Ta2中所有子任务的基本优先级BP,如表5-11所示;依据基本优先级BP进行排序,得到子任务集P3={ST2,1,ST1,2,ST1,1,ST2,4,ST2,2,ST2,3,ST1,3,ST1,4},进行资源匹配,其具体分析过程如下所示。

表5-11 测试任务计算数据

续表

以任务Ta1中的子任务ST1,1为例,计算其动态价值密度DVD、执行紧迫性EU和基本优先级BP,见式(5-54)~式(5-56):

基于基本优先级针对所有子任务进行排序得到P3;以Resource中资源resource1为例计算其测试能力TA,见式(5-57);其余资源的测试能力分别为TA2=6、TA3=9和TA4=3;依据匹配原则选取resource4,其余子任务的匹配方式与此相同。

步骤2 实时监控匹配后的所有子任务,均满足oi′,j′≤Di′,进入步骤4。

步骤3 在排序中依据前移原则(move forward principle,MFP)将错过截止期的子任务前移,对所有发生位置变动的子任务重新进行资源匹配,返回步骤2。

步骤4 子任务与资源匹配完成,生成P7={ST2,1,ST1,2,ST1,1,ST2,4,ST2,2,ST2,3,ST1,3,ST1,4},开始执行子任务,如图5-20所示。

2.测试任务抢占策略

步骤1 设定推迟增量ΔT=2,则Td=T+ΔT=8;提取时刻Td后所有未执行的等待子任务,与新加入的任务Ta3组成P5={ST1,4,ST1,3,ST2,3,ST3,1,ST3,2,ST3,3,ST3,4}。

图5-20 初始阶段测试任务调度甘特图

步骤2 计算P5中所有子任务的动态优先级并排序得到P6={ST3,2,ST3,1,ST2,3,ST3,3,ST3,4,ST1,3,ST1,4},如表5-11所示。其具体分析过程如下所示。(www.daowen.com)

以Ta3中子任务ST3,1为例,计算其动态价值密度DVD、执行紧迫性EU和动态优先级DPA,见式(5-58)~式(5-60)。由图5-20知子任务ST3,1的所需资源resource1和resource3分别被ST1,2和ST2,2占用,两资源被释放的时刻均为t=10,考虑资源的负载均衡性,选取resource1

步骤3 实时监控匹配过程中的所有子任务,发现ST1,4的o1,4>D1,如图5-21所示。

图5-21 测试任务抢占甘特图

步骤4 基于前移原则前移ST1,4,更新P6={ST3,2,ST3,1,ST1,4,ST2,3,ST3,3,ST3,4,ST1,3},返回步骤3实时监控更新后子任务的资源匹配,均满足oi′,j′≤Di′,如表5-11所示。

步骤5 任务与资源匹配完成,更新P7={ST2,1,ST1,2,ST1,1,ST2,4,ST2,2,ST3,2,ST3,1,ST1,4,ST2,3,ST3,3,ST3,4,ST1,3},其中ST1,1已经完成,ST2,1,ST1,2,ST2,4,ST2,2正在执行,其余为等待子任务,如图5-22所示。

图5-22 测试任务抢占甘特图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈