关于FBB-FFD算法加速因子的证明

最近学习到了一些关于调度算法加速因子证明的知识。在“Multiprocessor Scheduling for Real-Time Systems" 一书中,Section 11.3给出了FBB-FDD算法加速因子的证明,下面就对整个过程做一个梳理。
FBB-FFD算法是采用了DM+First-Fit的策略:
1.首先对任务集τ中的所有任务按照其d(relative deadline)做一个nondecreasing的排序。
2.对于一个任务τi,在试图将其分配到处理器核上时,利用下面的公式进行判断:
在这里插入图片描述
若该式满足,那么按照First-Fit的策略将其分配到处理器k上。若所有处理器核都不满足,那么该任务集分配失败;若所有任务都成功分配,则任务集成功被调度。

说明:
1.RBF*是对RBF(request bound function)函数的一个近似:
在这里插入图片描述
可以证明,RBF*是 ≥ \geq RBF的,那为什么在上面的公式中,不用更小的RBF去做,这样从理论上不是就能得到更小的加速因子吗?在“Jian-Jia Chen:Partitioned Multiprocessor Fixed-Priority Scheduling of Sporadic Real-Time Tasks”一文中,给出了利用RBF做可调度性测试的Partitioned DM算法的加速因子证明。但chen采用的判断条件不同于上面的第一个公式。

回到正题,当一个任务τi分配失败时,一定是在所有的核上都无法分配,也就是说对于每个核,有
在这里插入图片描述
当把m个核上的情况进行一个累加,也就是说同时存在,有:
在这里插入图片描述
注意这里的j是小于i的,即仅考虑优先级大于τi的任务,也就是已经分配完成的任务。接下来根据RBF*与DBF的关系(在书中前文有证明)有下列推导:
在这里插入图片描述
此时取逆否命题,也就是说,当
在这里插入图片描述
时,任务集在m核处理器上可调度(densmax(τ)定义为max τi∈τ(Ci/Di))。注意该理论并不作为实际应用中判断任务集是否可调度的条件,因为在LOAD(τ)函数的定义中,使用了DBF函数,该函数理论上需要检查所有的t,时间复杂度是不能被接受的。而该函数的提出通常是为了进一步求解加速因子。

接下来书中证明了FBB-FFD算法的加速因子为4-1/m,这里我理解的是用了一种“凑”的思想,下面给出证明:
首先我们假设使用FBB-FFD算法进行调度的处理器平台速度为1,那么相应的使用最优算法的处理器平台速度为1/(4-1/m),因为加速因子的定义是:相较于最优算法,一个调度算法需要在处理器速度为“加速因子”这么多倍的平台上才能成功调度任务集,于是如果最优算法可以在处理器平台速度为1/(4-1/m)的平台上调度任务集,有下面结论存在:
在这里插入图片描述
这个证明是从LOAD(τ) ≤ \leq 1 and densmax(τ) ≤ \leq 1变化而来的,其实也很简单,因为当处理器速度变为s时,每个任务的Ci就变成了Ci/s,代入到上面式子中,就能得到上图结论。

接下来开始凑:
此时我们假设有如下不等式成立:
L O A D ≤ 1 3 × ( m − ( m − 1 ) d e n s m a x ( τ ) ) LOAD\leq\frac{1}{3}\times(m-(m-1)dens_{max}(\tau)) LOAD31×(m(m1)densmax(τ))
也就是假设该任务集在处理器速度为1且使用FBB-FFD算法的处理器平台上仍然可以调度,将上图中不等式代入,有如下推导:
在这里插入图片描述
可以看到,最后推出一个明显成立的不等式,也就是说假设成立。
为什么是“凑”呢,因为在实际求解中,想要求出来一个加速因子,不妨把它设成x,然后按照上面的过程逐步求解,最后解出这样一个x,就得到了最后加速因子。

以上是我对近期加速因子学习的总结,对于其他的算法,也可以按照上面的思路去求解加速因子,衡量该算法的优劣。重点就是怎么和DBF函数联系起来,找出和DBF函数之间的大小关系。

欢迎大家批评指正^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,报错信息显示了两个不同的问题。首先,在引用中,报错信息是"invalid appsecret",这可能是因为微信授权登录时使用的appsecret无效。其次,在引用中,报错信息是"appid missing",这可能是因为在发送请求时缺少了appid参数。 为了解决这些问题,需要检查微信授权登录的appsecret是否正确,并确保在发送请求时包含了正确的appid参数。 另外,在引用中提到了获取有效token并保存的步骤,这可能是为了后续发送模板消息所需的准备工作。在这个过程中,需要确保APPID和APPSECRET参数的正确性,并获取到有效的access_token。 总结起来,问题的原因可能是微信授权登录时提供的appsecret无效,并且在发送请求时缺少了正确的appid参数。为了解决这个问题,需要检查并更新正确的appsecret,并在发送请求时包含正确的appid参数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [{“errcode“:40125,“errmsg“:“invalid appsecret, rid: 62735cd3-36d42de3-6f09796c“}](https://blog.csdn.net/qq_32370913/article/details/124586793)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [微信小程序云开发,定时发送订阅消息报错:{ Error: errCode: -501007 invalid parameters | errMsg: ...](https://blog.csdn.net/qq_33529011/article/details/102980561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值