嵌入式系统设计基础91773.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2.2.3 调度 调度是所有 RTOS 中的一个重要问题。在调度过程中,内核维护操作系统 (OS) 中每个线程的优先级列表。每个进程可以包含多个线程,每个线程是一个执行途径。调度系统控制这些不同执行路径的排序顺序,且支持路径按可预测的方式彼此交互。 调度系统中出现中断时,调度程序会考虑中断,相应地调整线程的优先级。应用程序开发人员可以利用线程中的纤程,在该线程内部创建小型自定义调度系统。调度程序使用时间段进行调度决策。 Wince 是一个抢占式多任务,基于优先级的时间片算法 线程调度示例。线程 1 的优先级最高,将运行到完成;线程 2 和 3 的优先级相同,将轮流执行。 范围 说明 0 到 96 为高于驱动程序的实时操作保留。 97 到 152 由基于 CE 的默认设备驱动程序使用。 153 到 247 为低于驱动程序的实时操作保留。 248 到 255 映射到非实时优先级。 优先级反转 解决方法 1.完全嵌套,遍历阻塞线程-》执行-》直到high Priority thread运行。防止死锁, 2.优先级继承 * * * * * * * * * * * * * * * * * * * * * * * * * * 不考虑n=1的情况。RMS是单处理器下的最优静态调度算法。1973年Liu和Layland发表的这篇文章的前半部分首次提出了RM调度算法在静态调度中的最优性. 它的一个特点是可通过对系统资源利用率的计算来进行任务可调度性分析, 算法简单、有效, 便于实现。不仅如此, 他们还把系统的利用系数(utilization factor)和系统可调度性联系起来, 推导出用RM调度所能达到的最小系统利用率公式. 同时, 这篇论文中透露出来的证明思想和方法也被人们所效仿. 图中显示该曲线无限趋近于ln2,即0.693。这就意味着,任何周期大小周期性任务一旦使用RMS调度算法均能满足调度要求,即在deadline之前完成。同时CPU总运行率不会超过最小上界0.693。需要指出的时候,它仅仅是必要条件,事实上该最小上确界是比较保守的,是绝对最坏情况下(pessimistic)的值。分析表明,用RMS算法可调度CPU利用率高于0.9的周期进程集的情况并不罕见,且通过对均匀分布的任务,RMS算法平均可调度CPU使用率可达0.88. RMS已被证明是静态最优调度算法, 开销小, 灵活性好, 是实时调度的基础性理论。即使系统瞬时过载, 也完全可预测哪些任务丢失时限。缺点是处理机利用率较低, 最坏的情况下,当n→∞时, 不超过ln2 (≈ 70%)。另外, RMS是充分但非必要条件。而在一般情况下,对于随机的任务集大约只有88%. 70%或者88%的处理器利用率对于许多实时应用来说是一个严重的限制,动态调度算法如最早截止期最先(earliest deadline first,EDF)或者最少空闲时间最先(least laxity first,LLF)已经被证明是最优的,并且能够实现100% 的处理器利用率. 2,动态调度: 在嵌入式实时系统中,动态调度依赖于任务的优先级。优先级可以静态分配或者依据不同的特征参数,如截止时间、空闲时间或关键性(即任务的重要程度)等进行动态分配。动态调度可以是抢占式的或非抢占式的。当检查到一事件时,动态抢占式算法立即决定是运行与此事件相关的任务,或继续执行当前的任务; 对于动态非抢占式算法,它仅仅知道有另一个任务可以运行,在当前任务结束后,它才在就绪的任务中选择一个来运行。 截止时间优先算法EDF 最早截止时间优先算法(EDF)也称为截止时间驱动调度算法(DDS),是一种动态调度算法。EDF指在调度时,任务的优先级根据任务的截止时间动态分配。截止时间越短,优先级越高。 如果一个任务集按EDF算法调度,当且仅当U=1。 EDF的特点 (1) 任务模型: 与RMS 调度相同。 (2) 优先级分配方法: 动态分配, 距要求时限所剩时间越短优先级越高。 (3) 可调度性分析: 如果任务集满足下式, 则该任务集可调度。 EDF 调度算法已被证明是动态最优调度, 而且是充要条件。处理机利用率最大可达100% 。但瞬时过载时, 系统行为不可预测, 可能发生多米诺骨牌现象, 一个任务丢失时会引起一连串的任务接连丢失。另外, 它的在线调度开销比RMS大。 优先级调度算法在实时进程调度

文档评论(0)

xinshengwencai + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档