0
点赞
收藏
分享

微信扫一扫

实时调度中经常出现的需求上界函数 DBF() Demand Bound Function 的本质及作用

demand bound function DBF 定义为一个作业的到达时刻和截止时刻同时在区间长度 t 内时,产生的执行量。其实,就是表示某个理论最优调度算法,在区间长度 t 内需要满足的执行量(确实如此,因为最优调度算法不会浪费任何的CPU执行时间,所以总是满足最极限可调度的需求量即可),即可,这样如果最小公倍数内,所有区间t都满足这个关系,那么就可以调度了。这就是某个理论最优调度算法应该具备的特征。

因此,一般可以 定义请求执行率 实时调度中经常出现的需求上界函数 DBF() Demand Bound Function 的本质及作用_多核分区调度算法,也就是最优算法的处理器速度为LOAD()即可

上面就是理论最优调度算法的定量描述。因为EDF就是一种理论最优调度算法,因此DBF常常被用来分析EDF(DBF分析一般是代表某理论最优算法,对应实际存在的也就是EDF了)的可调度性了。​

实时调度中经常出现的需求上界函数 DBF() Demand Bound Function 的本质及作用_调度算法_02

注意:到达时刻和截止时刻,必须同时在区间长度 t 中。

而一般实际调度算法,分析自己的DBF时候往往,都会浮夸一些(或者因为该调度算法本身就不够好),也就是悲观一些,也就是考虑太坏的情况,或者在充分性测试去近似DBF的时候。假设称为DBF',我们分析出的都有DBF' >= DBF,比如:实时调度中经常出现的需求上界函数 DBF() Demand Bound Function 的本质及作用_DBF函数_03就是我们用于近似DBF的,也就是我们的DBF'

实时调度中经常出现的需求上界函数 DBF() Demand Bound Function 的本质及作用_多核分区调度算法_04

实时调度中经常出现的需求上界函数 DBF() Demand Bound Function 的本质及作用_加速因子计算_05

 

所以,导致这些算法认为处理器需要加速,才能完成最优调度算法需要完成的同样任务。这就是加速因子的由来,因此DBF的存在很多时候就是为了分析某个实际算法的加速因子。相关知识看我这篇:​​实时可调度性分析算法— 利用率上界 和 加速因子的作用_标biao的博客-CSDN博客​​

因此,有了上面的量化等式关系,我们就能定量的计算我们的实际分析算法需要加速的倍数了。

这里举两个例子:

第一个:

多核分区偶发任务EDF调度时候,任务分配算法中,为了得到快速的EDF的可调度性测试,采用DBF1来近似DBF,实时调度中经常出现的需求上界函数 DBF() Demand Bound Function 的本质及作用_多核分区调度算法_06

 因此,充分性可调度性测试如下:

实时调度中经常出现的需求上界函数 DBF() Demand Bound Function 的本质及作用_DBF函数_07

然后,将DBF1代入替换为DBF,然后结合LOAD()的定义,即可得到和最优调度算法之间的加速因子关系,即使LOAD() <= xx,再通过设每个核速度为x,就能解出x,x的倒数就是加速因子,这里就不详细演示了。注意:加速因子一定是仅和核数有关的常数,如果是单核处理器,则结果是一个常数。比如m=1时,由于DBF1<2DBF,所以加速因子就需要为2,这个很直觉的答案,P109页也确实如此。

通过上述方式(通用)推导出的的加速因子的精确性依赖于DBF’的精确度,但是往往都很难找到精确的DBF’。从博客中可以知道,加速因子是可调度性判定的充分条件的。

第二个:

多核分区偶发任务DM调度时候,用的RBF*函数,也是这样的过程。


举报

相关推荐

0 条评论