电工吧
◎ 电工吧 >> 设为首页 >> 加入收藏>> 联系方式 >> 投稿 >>留言 
网站首页 · 电工新闻 · 电工基础 · 电力技术 · 电子技术 · 电工图片 · 电工法规 · 电工图书 · 电工搜索 · 论坛交流
 
      最新电子论文
 · 开关电源设计知识介绍(中 
 · 印制电路板设计原则和抗干 
 · 电路设计常用软件介绍 
 · 各种滤波电路的比较 
 · 激光头维修的简便方法 
 · 回扫线现象全面剖析 
 · 线性NTC温度传感器使用指南 
 · 变压器的基本知识 
      推荐电子论文

 · 单片机初学者编程最简练的指导
 · 电力行业蓄电池容量测试方案
 · 定点dsp与浮点dsp的比较
 · 永不消逝的电波
 · 分时操作系统思想在单片机编程
 · PC机打印口与便携式数据采集系
 · 单线数字温度传感器的原理与应
 · 一个单片机串行数据采集,传输
 · PLD应用的方方面面
 · 一种纸币识别系统的设计

  ■ 所在位置:首页>>电子技术>>电子应用>>正文
 

嵌入式系统设计过程中任务优先级调度的策略

调度程序的功能是调度任务的执行顺序,非调度实体的存在却会导致调度程序的效率下降,为时限调度程序而设计的系统总是尽可能地减少非调度实体的数量以及这些实体所占用的CPU时间,本文介绍嵌入式系统设计过程中任务优先级调度的策略。

在过去的几年里,固定优先级调度技术的发展迅速。分时系统和一些实时系统,要求所有的任务要同时运行。它赋予每个任务一个有效的优先级,并且该优先级在任务等候执行的过程中逐步递增。最后每一个任务都将获得一个有效的优先级,该优先级将确保该任务至少会获得一个短暂的CPU执行时间。

一个高优先级的任务可能会发现自己正在等待一个低优先级的任务释放资源。这样将高优先级任务的有效优先级下降到了低优先级任务的有效优先级以下。这种技术可以实现,但是对于调试却是有害的。优先级继承以及优先级限制协议就是专为解决这样的问题而发明的。该技术推进了低优先级任务的优先级,与此同时保留了一定的资源确保高优先级的任务在需要时可以使用。

实际上,绝大多数的实时操作系统都采用静态优先级调度方式,本文介绍如何通过时限调度(deadline scheduling)来保证系统的实时性。

速率单调分析

速率单调性分析(rate monotonic analysis)证明,如果一个固定优先级抢占系统在执行的一系列彼此独立的周期性任务,那么不存在为周期性任务静态分配优先级的算法,而为这样的任务分配较短的时间来获得较高的优先级却更容易找到办法。

为此,人们研发了RMA调度,RMA的一个重要特征是可以分析系统的可实现性(feasibility)。采用RMA,结构设计人员可以收集系统的情况,然后分析系统的可实现性,从而获得“调度程序正是如此工作”或者是“固定优先级调度程序不能进行这样的调度”等分析结果。

简单、通用版本的RMA使用超出69%的CPU时间,这将构成实际系统的可实现性方面的问题。如果结构设计工程师退回到老式的时间线分析,RMA甚至要占用100%的CPU时间,问题是我们采用的是单调乏味的手工仿真,而不是高等的代数运算。

在某些系统中,几乎所有的事件都是周期性的,但是大多数的系统中都存在大量的非周期性事件,现实就是如此。可以在一个周期严格的系统中处理非周期性事件,通常是将它们分配到一个周期性调度的时隙中,由于需要实现这种时隙的轮询,所以会极大地降低系统的性能。系统设计工程师也必须决定轮询这些非周期性事件的频度,以及处理这些事件允许的时间长度。

然后,要考虑软实时方面的问题。通过弹出一个任务的优先级使之高于该时段指示的优先级水平,从而在RMA中可以对重要性进行度量。这样就会造成那些没有施加优先级弹出的任务出现问题,这种情况正好与RMA的整体设想相反。程序将分析可实现性,然后确保系统的成功。RMA不是为不可实现的系统而设计的。

固定优先级调度

固定优先级调度最大的问题是对时限的要求具有易忘性,也就是说这种优先级调度对硬实时不敏感。这就像是一个基于定时器的交通灯,没有任何的交通流量传感器。如图1所示。上面的时间线(H)表示一个高优先级的任务,下面的时间线(L)表示一个低优先级的任务。调度程序会首先执行高优先级的任务,这样就容易在该任务的时限内完成该任务。任务H完成后,调度程序就切换到任务L,然而在任务L的时限内可能没有足够的时间来完成任务L。如果调度程序对这些时限的情况很了解,那么调度程序就有可能在任务H之前先运行任务L,这样可能能够满足两个任务所有的时限要求。

一个有经验的实时程序设计师可能用一些设计技巧来处理这样的问题,如在系统运行时巧妙地处理优先级,或者是用加锁的方法来实现,然而在此工程师面临的是如何处理调度程序而不是如何使用调度程序的问题。

固定优先级调度最大的优势在于:1. 每一个主流的操作系统或者任务切换内核都支持固定优先级调度。2. 实时工程师在他们的职业生涯中一直都在使用这种技术。3. 许多书籍、论文和专业课程都是围绕固定优先级调度技术来编写的。

固定优先级调度程序需要几百字节的资源以及占用很少的CPU时间。相比之下,动态优先级调度程序通常都很复杂。动态优先级调度程序则明显要超出上面的指标。 硬实时

本新闻共3页,当前在第1页  [1]  [2]  [3]  

 
         相关文章

·
·
·
·
·
·

 
 
  关于本站 | 友情站点 | 联系方式 | 版权声明 | 电工技术服务与支持中心
Copyright© 2005-2006 Dg8.Com.CN ,All Rights Reserved
电工网 电工吧 电子吧