首页 > 知识点讲解
       实时系统调度
知识路径: > 嵌入式系统软件基础知识 > 嵌入式操作系统基础知识 > 处理器管理 > 
相关知识点:38个      
        许多嵌入式操作系统都是实时操作系统,对于RTOS调度器来说,任务之间的公平性并不是最重要的,它追求的是实时性,即要让每个任务都在其最终时间期限之前完成。
        大多数RTOS调度器都采用了基于优先级的可抢占调度算法,但是在具体实现上,需要考虑几个方面的问题,例如,如何设定各个任务的优先级?优先级是静态设置的还是动态可变的?算法的性能如何,能否满足实时要求?
               任务模型
               考虑实时系统中常用的任务模型,即周期性任务模型。所谓的周期任务,就是该任务每隔固定的一段时间,就会运行一次。
               首先定义如下的数据结构:
               .启动时间ri,j):第i个任务的第j次执行的开始时间;
               .时间期限Di):第i个任务所允许的最大响应时间(从任务启动到运行结束所需的时间);
               .周期P(i):第i个任务的连续两次运行之间的最小时间间隔;
               .执行时间Ei):对于第i个任务,当它所需要的资源都已具备时,其执行所需要的最长时间。
               在任务模型中,每一个任务用一个三元组来表示(执行时间、周期、时间期限),一般来说,一个任务的周期时间同时也是它的时间期限,因为该任务必须在它的下一个周期开始之前,完成此次运行。另外,任务可以在一个周期内的任何时刻被启动,但必须在它的时间期限之前完成,如下图所示。
               
               RTOS任务模型
               RMS算法
               单调速率调度算法(Rate Monotonic Scheduling,RMS)是一种静态优先级调度算法,也是最常用的一种确定任务优先级的算法。RMS算法是基于以下的几个假设条件。
               (1)所有的任务都是周期性任务。
               (2)任务的时间期限等于它的周期。
               (3)任务在每个周期内的执行时间是一个常量。
               (4)任务之间不进行通信,也不需要同步。
               (5)任务可以在任何位置被抢占,不存在临界区的问题。
               RMS算法的基本思路:任务的优先级与它的周期表现为单调函数的关系,任务的周期越短,优先级越高;任务的周期越长,优先级越低。
               RMS算法是一种最优调度算法:如果存在一种基于静态优先级的调度顺序,使得每个任务都能在其期限时间内完成,那么RMS算法总能找到这样的一种可行的调度方案。当然,对于具体的某一组任务而言,这种调度方案并不一定存在。但只要存在,就能通过RMS算法进行调度。
               为了判断一组任务的可调度性,可以计算CPU的使用率:。如前所述,Ei是第i个任务的执行时间,Pi是它的周期。
               .如果U>1,则RMS调度方案不存在(处理器不可能一天工作25个小时);
               .如果Un(21/n-1),n为任务的个数,则RMS调度方案一定存在;
               .如果n(21/n-1)<U≤1,则RMS调度方案可能存在也可能不存在。
               令T=n(21/n-1),表示可调度上限。例如,当n=1时,T=1;当n=2时,T=0.83;当n趋向于无穷大时,T=1n2=0.69。
               例如,如下表所示,有两个任务T1和T2。T1的执行时间为2,周期和时间期限为5;T2的执行时间为4,周期和时间期限为7。由于T1的周期更短,因此它的优先级要高于T2。另外,在该系统当中,CPU的使用率U=2/5+4/7=0.97,而RMS的可调度上限T=0.83,因此,在这种情形下,RMS无法保证能够找到合适的调度顺序,使得每个任务都能在自己的时间期限之前完成。
               
               RMS举例
               EDF算法
               最早期限优先(Earliest Deadline First,EDF)调度算法是一种动态优先级调度算法,它能根据需要动态地修改各个任务的优先级,是目前性能较好的一种调度算法。
               EDF算法的基本思路是:根据任务的截止时间来确定其优先级,对于时间期限最近的任务,分配最高的优先级。当有一个新的任务处于就绪状态时,各个任务的优先级就有可能要进行调整。与RMS算法一样,EDF算法的分析也是在一系列假设的基础上进行的,它不要求系统中的任务都必须是周期任务,其他的假设条件与RMS相同。
               EDF算法是最优的单处理器动态调度算法,其可调度上限为100%。对于给定的一组任务,只要它们的CPU使用率小于或等于1,EDF就能找到合适的调度顺序,使得每个任务都能在自己的时间期限内完成。反之,如果EDF不能满足这组任务的调度要求,则其他的调度算法也不行。
               仍以上表当中的系统为例,在RMS方式下,任务T2会发生超时的现象。但如果采用EDF算法,则可以避免这个问题。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有