处理机调度--实时系统中的调度

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

目前业界比较认可并且已经成为标准的实时调度算法有两个:

1.最优动态优先级调度算法:最早截止优先级调度算法(EDF)

2.最优固定优先级调度算法:单速率调度算法(RMS)



先来介绍一下调度算法的分类:

1.抢占和非抢占调度

根据任务运行的过程中能否被中断的情况,把调度算法分为抢占和非抢占两种。在抢占式调度算法中,正在运行的任务可以被其他任务打断。在非抢占式调度算法中,一旦任务开始运行,该任务只有在运行完后而主动放弃CPU资源或者是因为等待其他资源而被阻塞的情况下才可能停止。

2.静态和动态调度

根据任务优先级确定的时机,把调度算法分为静态调度和动态调度两种。在静态调度算法中,所有任务的优先级在运行之前已经确定下来,这就要求能够完全把握系统中的所有任务及其时间约束(如截止时间,运行时间,优先顺序等)。在动态调度算法中,任务的优先级在在运行时确定,并且可能不断的发生变化。



接着介绍EDF算法:

EDF算法是一种采用动态调度的优先级调度的算法,任务的优先级根据任务的截止时间来确定。任务的截止时间越近,任务的优先级越高,当有新的任务处于就绪状态的时候,任务的优先级就有可能进行调整。

下面举个例子来说明一下,现在有如下的一些任务:

任务名称               到达时刻     执行时间   截止期限

     T1 0                10                 30

     T2 4                 3                 10

处理器调度中的实时调度算法主要有两种,即 Earliest Deadline First (EDF, 最早截止期优先) Rate Monotonic Scheduling (RMS, 率单调调度)。 **Earliest Deadline First (EDF):** EDF算法是一种抢占式的实时调度策略,主要用于保证硬实时系统的响应时间。它的核心思想是按照任务的截止时间(Deadline)进行排序,总是优先执行截止时间最近的任务。在系统空闲时,EDF会挑选截止时间最早的任务运行。如果当前任务未在截止时间前完成,即使新任务到达也可能被强行中断并切换到截止时间更紧迫的任务上。EDF算法可以确保所有具有剩余时间大于零的任务都能在截止时间之前得到处理,因此对于最严格的实时需求非常适用。 **Rate Monotonic Scheduling (RMS):** 相比之下,RMS算法是一种非抢占式(一旦开始就不被抢占)的调度策略,适用于软实时或资源受限的系统。它根据任务的执行速率(处理周期)来进行调度,保证每个任务在其预定的时间间隔内至少有一次运行机会。RMS规则是按照任务的执行速率从高到低排序,优先级高的任务先获得处理器时间。由于其简单性公平性,RMS常用于操作系统中作为默认的调度策略,但对于那些对截止时间敏感的硬实时任务可能不如EDF灵活。 **相关问题--:** 1. EDFRMS的主要区别是什么? 2. 在实时任务系统中,何时会选择使用RMS而不是EDF? 3. EDF算法如何确保任务的截止时间满足?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值