SmartFog:一种兼顾利润的实时资源分配策略
1. 基于Best_Fit算法的任务 - 资源分配
SmartFog采用提出的Best_Fit算法将可用资源分配给任务以完成工作。该算法基于基于epoch的调度策略进行任务 - 资源分配,将整个时间线划分为固定长度的epoch。一个任务只能在epoch边界(即一个epoch的开始)进行调度。当一个任务在时刻t到达时:
- 若t是epoch边界,则考虑对其进行调度;
- 若t不是epoch边界,该任务需等待至当前epoch结束,在接下来的epoch开始时再考虑调度。
在epoch边界,会检查新到达的任务是否能被容纳。聚合器(Aggregator)会更新已有资源的状态,并考虑新到达的资源。若存在现有任务调度,会先将其尽可能晚地设置,这些任务 - 资源分配对将保持不变。对于每个新到达的任务,按照最早截止时间优先(EDF)调度策略排序,使用公式 (任务长度)/(任务截止时间 - 任务到达时间) 计算完成该任务所需的最小计算速度。从资源可用性矩阵Rm中选择计算速度高于此要求值的资源作为完成该任务的合格资源,其中剩余计算能力最小的资源将被选为服务该任务的最佳资源。若没有资源的计算速度高于任何任务所需的最小速度,则该任务将被拒绝。聚合器会对当前epoch内所有新到达的任务应用相同原则,旨在尽可能多地容纳任务。修改后的任务调度T包括当前epoch内新到达的任务以及现有的任务 - 资源对,然后将其尽可能早地执行。
以下是Best_Fit算法的代码:
L = Set of existing tasks
for each
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



