多处理器任务调度算法详解
在多处理器系统中,任务调度是一个至关重要的问题,它直接影响着系统的性能和效率。本文将详细介绍多种多处理器任务调度算法,包括独立任务调度和相关任务调度,以及它们在不同场景下的应用。
独立任务在相同多处理器上的调度
在相同多处理器上对独立任务进行调度时,有多种算法可供选择,每种算法都有其特点和适用场景。
调度算法的利用率界限
对于 m 个处理器的固定作业调度算法,其可调度利用率不会超过 $\frac{m + 1}{2}$。不过,如果已知最大利用率,就可以得到更强的界限。
EDF(k) 调度算法
EDF(k) 算法是一种基于利用率的调度算法。在该算法中,k 个利用率最高的任务会获得最高优先级,若出现优先级相同的情况则任意打破。其余任务按照最早截止时间优先(EDF)原则进行调度。对于隐式截止时间的零星任务系统 τ,EDF(k) 能在 m 个单位速度(同质)处理器上进行调度,其中 m 的计算公式为:
$m = (k - 1) + \left\lceil\frac{U(\tau^{(k + 1)})}{1 - u_k}\right\rceil$
这里的 $U(\tau^{(k + 1)})$ 是去除前 k 个任务后的任务集的利用率。
EDZL 调度算法
全局最早截止时间优先(G - EDF)算法可能会导致一些可调度的任务集错过截止时间。为了改进这一问题,引入了 EDZL 算法。该算法在作业松弛度大于 0 时采用 G - EDF 算法,而当作业松弛度变为 0 时,该作业将获得所有作业中的最高优先级,包括当前正在执行的作业。
<
超级会员免费看
订阅专栏 解锁全文
1516

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



