您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 嵌入式实时操作系统课件
第二十讲嵌入式实时操作系统袁嵩实时系统简介嵌入式实时调度嵌入式实时操作系统一实时系统简介一般而言具有实时性能的控制系统是实时系统。实时表示一个非常短的时间间隔“timegap”(也可以认为表示时间框架“timeframe”或者时间窗口“timewindow”),具有“立即”之含义。当计算机进行实时处理时,要求在接收到数据的同时执行操作并输出计算结果,不能超出计算机系统所能容忍的时限。实时系统的定义IEEE(美国电气电子工程师协会)给出的实时系统定义是“那些正确性不仅取决于计算的逻辑结果,也取决于产生结果所花费的时间的系统”。这就是说,实时系统运算能力具有及时与正确的双重特征。本教程给出的实时系统(Real-TimeSystem)定义是:对外来事件能在限定的响应时间内做出预定质量处理的计算机系统。实时系统的体系结构实时系统的体系结构必须满足:高运算速度高速的中断处理高的I/O吞吐率合理的处理器和I/O设备的拓扑连接高速可靠的和有时间约束的通信体系结构支持的出错处理,体系结构支持的调度体系结构支持的操作系统,体系结构支持的实时语言特性。实时的调度理论。由于实时系统应用的特殊性,以往通用系统中以大吞吐量为目标的调度算法必须改进以适应实时应用的需要。主要要求是满足时间的正确性,然后提供高度动态的,满足在线需求的,强适应性的实时调度。实时操作系统的设计和实现。在设计上首要目标是提供保证实时性的方法,包括一系列的经典问题的针对实时系统的解决方案。实现上要求操作系统的低开销,而且必须保证内核以及其他关键部件的可重入性。实时系统的主要特点及时响应外部发生的随机任务请求在规定的时间范围内完成任务任务执行的时间限制类型•截止时间•任务执行时间•截止时间一个时间界限。它要求一个任务在该时刻之前完成•任务执行时间一个任务从启动到完成所花费的时间。分为平均任务执行时间和最坏任务执行时间实时系统中一般指最坏任务执行时间,考虑了可能的等待、阻塞等最不利的情况•任务余量截止时间减去任务执行时间所得的值,反映了系统工作的从容程度•紧时间约束在满足任务时限的同时,留给系统的时间比较紧张。由任务的余量小而引起•松时间约束与紧时限概念相反,指在满足任务时限的同时,留给系统的时间比较宽松实时系统的关键因素计算机系统的实时性能主要由操作系统和运行在操作系统上的应用软件决定,对于无操作系统的计算机则由控制程序决定。具有实时性能的操作系统称为实时操作系统(Real-TimeOperatingSystem,RTOS)实时系统与非实时系统的例子实时系统典型例子•民用飞机的导航系统•汽车的防刹车抱死系统非实时系统典型例子•银行数据查询处理系统•视频播放系统•图像扫描•文字识别系统提高实时性能的因素以下几种途径常常用来提高应用系统实时性能•尽量采用硬件处理•优化微处理器的中断机制•采用简单的单线程循环程序•采用基于实时操作系统的复杂多线程操作可见硬件加速和RTOS应用是提高实时系统的两个主要因素实时系统的属性和指标实时系统的两个基本属性•可预测性和可靠性实时系统的实时性能主要根据其RTOS的三个主要指标来衡量•响应时间(responsetime)•吞吐量(throughput)•生存时间(survivaltime)可预测性系统能够对实时任务的执行时间进行判断,确定是否能够满足任务的时限要求嵌入式系统的两个可预测性硬件延迟的可预测性软件系统的可预测性应用程序的响应时间是可预测的,即在有限的时间内完成必须的工作操作系统的可预测性,即实时原语、调度函数等运行开销应是有界的以保证应用程序执行时间的有界性•资源约束指多个实时任务共享有限的资源时,必须按照一定的资源访问控制协议进行同步,以避免死锁和高优先级任务被低优先级任务堵塞的时间(即优先级反转时间)不可预测可靠性可靠性已成为衡量实时系统性能不可缺少的重要指标。采用静态分析和保留资源的方法及冗余配置,使关键任务的要求总能满足,系统在最坏情况下能正常工作或避免损失一个系统的可靠性是由其组成元素共同决定的,这些元素包括硬件、板级开发包、RTOS和应用等。实时系统与通用系统区别通用系统方便用户管理计算机资源追求系统资源最大利用率实时系统调度的实时性响应时间可确定性高可靠性性能衡量对传统的通用系统大的系统吞吐量合理的响应速度对每个系统用户相对公平的进行计算资源的分配实时系统实时的数据吞吐取代了吞吐量对硬实时应用的优先响应取代了恰当的反应速度系统的计算资源和其他外设资源必须优先满足实时应用的要求取代了公平响应时间计算机从识别一个外部事件到做出响应的时间RTOS响应时间的具体指标是:•中断延迟时间(InterruptLatency)•任务切换时间(TaskSwitchingLatency)响应时间两个时间指标的计算公式是:•中断延迟时间=TCloseINT+TDoISR+TSaveReg+TStartServiceTCloseINT:关中断的最长时间TDoISR:开始执行中断服务子程序的第一条指令的时间TSaveReg:保存CPU内部寄存器的时间TStartService:内核进入中断服务函数的执行时间计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间•任务切换时间:TtoDoBTaskTime–TtoPauseATaskTimeTtoDoBTaskTime:开始执行B任务的时刻TtoPauseATask:暂停执行A任务的时刻也就是CPU从停止一个任务执行切换到执行另一个任务所需要的时间下表给出了eCos嵌入式可配置操作系统内核实时响应时间参考数据硬件测试环境中断延迟时间任务切换时间ARM7TDMI(20MHz)22.10ms49.14msStrongARM(221.2MHz)3.25ms1.85msIntelXcale(600MHz)1.87ms0.87ms吞吐量生存时间它是指在指定时间内系统可处理的事件总数,例如通信控制器用每秒处理的字符数来表示他的吞吐量它是输入数据的有效等待时间。如果在这段时间内系统能接收到输入数据,就能给出有用的输出时间。否则,即使接收到数据,也给不出有效的输出数据实时系统分类按实时性分硬实时系统-灾难后果指应用的时间需求能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏航空航天、军事、核工业等软实时系统-性能下降应用虽提出时间需求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响视频点播(Video-On-Demand,VOD)、监控系统、信息采集系统硬实时系统和软实时系统时限效益效益损失效益损失(a)硬实时时限效益示意图(b)软实时时限效益示意图时间时间事件触发时间事件触发时间时限时限实时系统的分类按照响应时间的快慢分类:•强实时系统:其响应时间在毫秒级或微秒级•普通实时系统:其响应时间一般几秒•弱实时系统:其响应时间一般在数十秒•实时过程控制系统系统实时地从外界获得被控系统的当前状态,进行预定的处理,根据处理结果对外界被控系统进行及时控制,使其处于要求的状态下实时信息处理系统系统仅从外界系统中获得当前状态并进行相应处理不直接控制外界系统的变化任务的两种基本类型•周期性任务按一定周期启动执行可以在周期开始时启动,也可以在周期开始以后启动必须在周期结束前完成非周期性任务任务启动没有规定的时间要求,随机启动执行必须有一个完成时间也就是说无论那种任务,必须在规定的时间内完成。周期性实时系统的例子两个任务T1和T2•T1的周期为10ms,执行时间为3ms•T2的周期为6ms,执行时间为1ms任务T1任务T2306121824301020CPU上的执行过程起始时间完成时间(Deadline)任务的执行二嵌入式实时调度实时调度算法分类周期任务调度优先级调度非优先级调度非周期任务调度基于优先级的调度给每个任务分配一个优先级,在每次任务调度时,调度器总是让CPU执行具有最高优先级的任务。优先级驱动算法是事件驱动算法,即当任务所需要的资源就绪后,会立即执行而无需等待。此算法又称为贪心调度算法,保持工作调度算法或者列表调度算法。优先级调度静态实时调度系统在编译时就决定从就绪任务队列选择哪个任务来执行,即系统中实时任务特性是事先知道的。分为速率单调调度RMS和截止时间单调调度DMS动态实时调度指调度器在运行期间才决定选择哪个就绪任务来运行。分为最早截止时间优先EDF和最小空闲时间优先LSF周期性实时任务调度的基本结构执行就绪休眠任务的状态就绪-执行•如果当前有新的任务就绪,则比较正在执行任务和新任务的优先级,选择优先级高的任务执行,低优先级任务回到就绪状态。执行-休眠•当前周期性任务执行结束,根据下一个周期开始时间确定休眠时间,启动定时器休眠-执行•当休眠定时器时间到,将到时的任务加入到就绪任务队列中,并进行优先级选择。静态实时调度速率单调调度(RMS)基于嵌入式系统作了如下假设1.所有任务请求必须是周期性的,必须在限定时间内完成2.任务之间相互独立3.任务的运行时间不变即不考虑中断情况4.所有非周期性任务都在特殊情况下运行5.采用单处理器,任务切换时间忽略不计速率越高,周期越短,任务的优先级越高RMS算法的可调度性分析12122(21)eeUPPRMS算法是一个最优的静态调度策略•如果有其它静态调度策略可以完成一个任务集合的调度,则RMS算法也可以完成如果有两个任务,其执行时间分别为e1,e2执行周期分别为P1,P2,如果满足则这两个任务可被RMS算法调度如果有N个任务,其执行时间分别为e1,e2,…,eN执行周期分别为P1,P2,…,如果满足则这N个任务是RMS算法可以调度的11212...(21)NNNeeeUNPPP截止时间单调调度DMS按照任务的相对截止时间分配优先级,相对截止时间短的优先级高。它具有和RMS相同的优点,但放松了对任务周期必须等于其相对截止时间的限制。如果每个任务的相对时限与它的周期成正比,则RMS算法与DMS算法一致当相对时限是任意的时候,DMS算法表现要好些,此时DMS算法有时有可能产生可行的调度表,RMS算法却不可以;如果DMS算法不能产生可行的调度表,RMS算法肯定也不能.动态实时调度最早截止时间优先算法EDF分配给任务的优先级是根据它们当前对截止时限的要求定的,离截止时限越短的就绪任务优先级越高基于的模型假设1.所有实时任务启动时间为零2.任何任务不存在不可抢占的代码段,且抢占代价可忽略3.任务无关,无先后次序的约束4.任务的相对最终完成时限与它的周期相等5.只有处理器的请求有意义,内存、I/O和其他资源的请求可忽略EDF算法的例子到达时间执行时间DeadlineTask101030Task24310Task358253个非周期任务0246810121416T1T2T3Task2Task3Task1T1EDF的基本结论EDF算法是一个优化的单处理器调度算法•如果有一个动态调度算法能完成实时调度,则EDF算法必然可以•如果EDF算法不能完成一个任务集合的实时调度,则不存在其它的动态调度算法来完成实时调度。在周期性实时系统中,如果每个任务的截止时限都等于其周期,则只要总的处理器利用率小于1,EDF算法都可以调度。EDF算法在负载相对较低时很有效,但在系统负载较重时,系统性能急剧下降,会导致大量任务超过运行时限,甚至可能大量CPU时间花费在调度上。这样可能使一些进程因为来不及处理而夭折,为避免这个缺陷提出了LSF算法最小空闲时间优先算法LSF按照空闲时间分配优先级空闲时间是指任务截止时间与剩余执行时间之差。空闲时间越小,优先级越高。它能在任意时刻把最高优先级分配给具有最小空闲时间的任务,以保证紧急任务能够执行。它的缺点是由于等待任务的空闲时间是递减的,其等待执行的缓急程度也随时间逝去而越来越紧迫,因此在系统执行过程中,等待任务随时可能抢占当前任
本文标题:嵌入式实时操作系统课件
链接地址:https://www.777doc.com/doc-3760652 .html