目前业界比较认可并且已经成为标准的实时调度算法有两个:
1.最优动态优先级调度算法:最早截止优先级调度算法(EDF)
2.最优固定优先级调度算法:单速率调度算法(RMS)
先来介绍一下调度算法的分类:
1.抢占和非抢占调度
根据任务运行的过程中能否被中断的情况,把调度算法分为抢占和非抢占两种。在抢占式调度算法中,正在运行的任务可以被其他任务打断。在非抢占式调度算法中,一旦任务开始运行,该任务只有在运行完后而主动放弃CPU资源或者是因为等待其他资源而被阻塞的情况下才可能停止。
2.静态和动态调度
根据任务优先级确定的时机,把调度算法分为静态调度和动态调度两种。在静态调度算法中,所有任务的优先级在运行之前已经确定下来,这就要求能够完全把握系统中的所有任务及其时间约束(如截止时间,运行时间,优先顺序等)。在动态调度算法中,任务的优先级在在运行时确定,并且可能不断的发生变化。
接着介绍EDF算法:
EDF算法是一种采用动态调度的优先级调度的算法,任务的优先级根据任务的截止时间来确定。任务的截止时间越近,任务的优先级越高,当有新的任务处于就绪状态的时候,任务的优先级就有可能进行调整。
下面举个例子来说明一下,现在有如下的一些任务:
任务名称 到达时刻 执行时间 截止期限
T1 0 10 30
T2 4 3 10

本文介绍了实时系统的两种核心调度算法——最早截止优先级调度算法(EDF)和单速率调度算法(RMS),并探讨了它们的适用场景及调度测试条件。通过具体案例,展示了算法如何在任务间进行有效调度。
最低0.47元/天 解锁文章
1520

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



