• 单调速率调度(RMS)算法(详解版)

    单调速率(RMS)调度算法采用抢占的、静态优先级的策略,调度周期性任务。

    当较低优先级的进程正在运行并且较高优先级的进程可以运行时,较高优先级进程将会抢占低优先级。在进入系统时,每个周期性任务会分配一个优先级,它与其周期成反比,即周期越短,优先级越高;周期越长,优先级越低。

    这种策略背后的理由是:更频繁地需要 CPU 的任务应分配更高的优先级。此外,单调速率调度假定:对于每次 CPU 执行,周期性进程的处理时间是相同的。也就是说,在每次进程获取 CPU 时,它的 CPU 执行长度是相同的。

    举一个例子,我们有两个进程 P1 和 P2。P1 和 P2 的周期分别为 50 和 100,即 ρ1 = 50 和 ρ2= 100。P1 和 P2 的处理时间分别为 t1 = 20 和 t2 = 35。每个进程的截止期限要求,它在下一个周期开始之前完成 CPU 执行。

    首先,我们应问自己是否可能调度这些任务以便每个进程都能满足截止期限。如果我们按执行与周期的比率 tii 测量一个进程的 CPU 利用率,那么 P1 的 CPU 利用率 20/50 = 0.40,P2 的是 35/100 = 0.35,总的 CPU 利用率为 75%。因此,我们似乎可以调度这些任务以便满足它们的截止期限,并且仍让 CPU 有多余可用的时间。

    假设为 P2 分配比 P1 更高的优先级。P1 和 P2 的执行情况如图 1 所示。


    当 P<sub>2</sub> 的优先级高于 P<sub>1</sub> 时的任务调度
    图 1 当 P2 的优先级高于 P1 时的任务调度

更多...

加载中...