实时操作系统原理介绍.pptVIP

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实时操作系统原理介绍

3.2 实时调度算法分类 周期性实时任务调度的基本结构: 3.2.1 基于优先级的调度 给每个任务分配一个优先级,在每次任务调度时,调度器总是让CPU执行具有最高优先级的任务。优先级驱动算法是时间驱动算法,即当任务所需要的资源就绪后,会立即执行而无需等待。此算法又称为贪心调度算法,保持工作调度算法或者列表调度算法。 优先级调度,分为静态实时调度和动态实时调度。 静态实时调度即系统在编译时就决定从就绪任务队列选择哪个任务来执行,即系统中实时任务特性是事先知道的。分为速率单调调度RMS和截止时间单调调度DMS。 动态实时调度指调度器在运行期间才决定选择哪个就绪任务来运行。分为最早截止时间有限EDF和最小空闲时间有限LSF。 静态调度 静态调度是在系统开始运行前进行调度的,严格的静态调度在系统运行时无法对任务进行重新调度。 静态调度的目标是把任务分配到各个处理机,并对每一处理机给出所要运行任务的静态运行顺序。静态调度算法实现简单,调度的额外开销小,在系统超载时预测性好。但也具有很大的局限性,例如资源利用率低、受系统支持的优先级个数限制以及灵活性和自适应性差等。 下面介绍两种常见的静态调度算法。 速率单调调度(Rate Monotonic Scheduling) RMS算法将最高优先级赋予最高执行频率的任务,以单调的顺序对剩余的任务分配优先级。由于采用抢占式的调度方式,高优先级的任务就绪后立即抢占正在运行的任务。 对于RMS调度算法,基于嵌入式系统作了如下假设: 所有任务请求必须是周期性的,必须在限定时间内完成; 任务之间相互独立; 任务的运行时间不变即不考虑中断情况; 所有非周期性任务都在特殊情况下运行; 采用单处理器,任务切换时间忽略不计。 并且,速率越高,周期越短,任务的优先级越高。 截止时间单调调度(Deadline Monotonic Scheduling) DMS在RMS的基础上发展起来的。不同的是任务的优先级按截止时间来分配。截止时间短的任务优先级高,截止时间长的任务优先级低。 DMS具有与RMS相同的点。但DMS算法放松了对任务的周期必须等于其截至时间的限制。在任务的截止时间小于或等于其周期的情况下,DMS已被证明是静态最优的调度算法。 如果每个任务的相对时限与它的周期成正比,则RMS算法与DMS算法一致。当相对时限是任意的时候,DMS算法表现要好些,此时DMS算法有时有可能产生可行的调度表,RMS算法却不可以;如果DMS算法不能产生可行的调度表,RMS算法肯定也不能。 动态调度 在嵌入式实时系统中动态调度依赖于任务的优先级。优先级可以静态分配或者依据不同的特征参数,如截止时间、空闲时间或关键性(即任务的重要程度或者价值)等进行动态分配。 动态调度可以是抢占式的或非抢占式的。前者用优化的标准动态调动任务,从而减少因超过截止时间而失败的任务数,后者检查系统中每一个任务,看是否有新任务可以加入调度列表,从而满足其截至时间的要求。 非抢占式内核的优点是易于分析、实现,利于保持额外的上下文切换,节省抢占式内核中由于采用互斥机制带来的开销,其缺点是可能使某些任务不能满足其截至时间的要求。 几个比较著名的商用嵌入式实时操作系统,如QNX、VxWorks提供的都是“抢占式任务调度”。 以下介绍的是两个著名的动态调度算法EDF和LSF。 最早截止时间优先算法(Earliest Deadline First) 抢占式EDF调度算法是一个动态优先级驱动的调度算法,其中分配给每个任务的优先级根据它们当前对最终期限的要求而定。 当前请求的最终期限最近的任务具有最高的优先级,而请求最终期限最远的任务被分配最低优先级。这个算法能够保证在出现某个任务的最终期限不能满足之前,不存在处理器的空闲时间。 最早截止时间优先算法(Earliest Deadline First) 该算法基于以下假设: 所有实时任务启动时间为零; 任何任务不存在不可抢占的部分,且抢占的代价可以忽略; 只有处理器请求是有意义的,内存、I/O和其它资源请求可以忽略; 所有的任务都是无关的,不存在先后次序的约束; 任务的相对最终期限与它的周期相等。 EDF算法例子 EDF算法是一个优化的单处理器调度算法,如果有一个动态调度算法能完成实时调度,则EDF算法必然可以。如果EDF算法不能完成一个任务集合的实时调度,则不存在其它的动态调度算法来完成实时调度。 在周期性实时系统中,如果每个

文档评论(0)

sheppha + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档