Page 352 - 《软件学报》2020年第11期
P. 352

曾理宁  等:一种基于动态需求边界的混合关键级作业调度算法                                                   3667


                    作业集生成的方式是:作业集被初始化为空τ=∅,然后依次随机生成混合关键级作业,在满足系统约束的情
                 况下,依次加入作业集中,直到作业集生成完成.其中,添加作业时的约束是:在生成任何一个作业后都计算所有
                                                                                         χ
                 作业的动态需求边界,并依此获得关键级的松弛时间,如果所有的关键级松弛时间都满足 S ≥0,那么把该作业
                 加入作业集中;否则放弃该作业.作业集生成完成的标志是:连续生成 3 个作业不满足作业添加的约束,或者不满
                 足作业的最大负载.
                 4.2   实验对比
                    为了测试 CSDDB 的性能,本文主要从两个方面进行仿真:(1)  系统关键级;(2)  作业集整体完成率.实验方式
                 如下.
                    (1)  按照第 4.1 节中描述的方式产生作业集.
                    (2)  设定超载概率分别为 25%与 50%,在不同的系统总负载条件下分别进行仿真.
                    (3)  分别使用 CSDDB,BP,OCBP 以及 CaP 算法对同一作业集进行调度,并分别记录结果.
                    (4)  将上述两个步骤重复执行 20 次,取 20 次结果的平均值作为最终的实验结果.
                 4.2.1    系统关键级的对比实验
                    在混合关键级作业集的调度中,系统关键级是调度正确性的重要体现.根据定义 3,系统关键级越低,意味着
                 有更多关键级下的作业能够被正确调度,算法性能越好;反之,系统关键级越高,意味着调度能够保证正确执行
                 的作业越少,算法性能越差.关于系统关键级的对比实验结果如图 3 与图 4 所示.















                                          Fig.3    Average system criticality when P χ =25%
                                             图 3   当 P χ =25%时的平均系统关键级


















                                          Fig.4    Average system criticality when P χ =50%
                                             图 4   当 P χ =50%时的平均系统关键级

                    在图 3 和图 4 中,x 轴表示系统负载;y 轴表示 20 次运行中,系统关键级的平均值.可以看出,在 4 种算法中,
                 CSDDB 相对于 BP、OCBP 与 CaP,能够使得系统关键级更低.这意味着 CSDDB 在使系统满足更多关键级的正
   347   348   349   350   351   352   353   354   355   356   357