最早截止时间优先算法 vs 最低松弛度优先算法

时间:2024-03-04 09:00:04

最早截止时间优先算法可以用来对非周期性非抢占式实时任务和周期性抢占式实时任务进行调度:

  非周期性非抢占式实时任务:

对于初始时刻的若干个任务按照截止时间大小组成一个队列,队头进程的截止时间是最早的,依次类推。每次从队头调度一个进程,当进程执行期间,若出现了新的实时任务,排队器会根据其截止时间大小自动将其插入队列的相应位置,也就是说每次调度程序只需要调度队头进程即可。

  周期性抢占式实时任务:初始时刻选择若干个进程中截止时间最早的进程执行,若运行中出现了新的截止时间更早的进程A,则调度进程A执行,运行完毕也是选择就绪态优先级最高的进程执行。

 

最低松弛度优先算法:

  初始时刻选择最低松弛度的进程执行,若执行过程出现了松弛度为0的进程A,说明这个进程A必须执行,所以不得不调度进程A。无以上情况则应执行完当前进程,当执行完当前进程时就重新执行松弛读最低的进程。

松弛度:指从当前时刻起至多还有多少时间必须执行某个进程,是动态的,这就是这个进程的松弛度。松弛度 = 进程完成截止时间 - 当前时间 - 作业当前还需运行时间【通俗来说给予CPU相应的时间】