《2011-9第九课、嵌入式实时操作系统.ppt》由会员分享,可在线阅读,更多相关《2011-9第九课、嵌入式实时操作系统.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1嵌入式系统嵌入式系统AnIntroductiontoEmbeddedSystem第九课第九课 嵌入式实时操作系统嵌入式实时操作系统浙江大学计算机学院浙江大学计算机学院陈天洲陈天洲 2011.4.272011.4.2720112011夏学期,周三下午夏学期,周三下午1-31-3节,周四晚上节,周四晚上1-31-3节节玉泉曹光彪西玉泉曹光彪西5015012课程大纲课程大纲实时系统简介实时系统简介嵌入式实时调度嵌入式实时操作系统嵌入式实时操作系统实时系统概念实时系统概念实时系统定义实时系统定义n能够在指定或者确定的时间内完成系统功能和外部或内部、能够在指定或者确定的时间内完成系统功能和外部或内部、
2、同步或异步时间做出响应的系统。同步或异步时间做出响应的系统。nPOSIX 1003.bPOSIX 1003.b定义定义:指系统能够在限定的响应时间内提供所需指系统能够在限定的响应时间内提供所需水平的服务水平的服务实时系统的正确性实时系统的正确性n不仅仅依赖于计算的逻辑结果不仅仅依赖于计算的逻辑结果n而且依赖于结果产生的时间而且依赖于结果产生的时间两个特点两个特点n响应时间限定响应时间限定n可预知可预知两个能力两个能力n在事先先定义的时间范围内识别和处理离散事件的能力在事先先定义的时间范围内识别和处理离散事件的能力n系统能够处理和储存控制系统所需要的大量数据系统能够处理和储存控制系统所需要的大量
3、数据3实时系统的分类实时系统的分类1按任务到达分按任务到达分n周期性的系统周期性的系统w周期性任务周期性任务periodicperiodicn任务必须在每个周期内完成一次n可以在周期开始时启动,也可以在周期开始以后启动n必须在周期结束前完成n非周期性系统非周期性系统w非周期性任务非周期性任务(aperiodic)(aperiodic)n任务到达没有规则的时间要求n必须有一个启动时间或完成时间4多任务多任务实时任务实时任务n周期任务周期任务n偶发任务偶发任务n非周期任务非周期任务非实时任务非实时任务实时任务要求要满足时限实时任务要求要满足时限非实时任务要求要使其响应时间尽可能短非实时任务要求要使
4、其响应时间尽可能短5实时系统的分类实时系统的分类2按实时性分(时间约束性)按实时性分(时间约束性)n硬实时系统硬实时系统-灾难后果灾难后果w指应用的时间需求能够得到完全满足,否则就造成重大安全事故,指应用的时间需求能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏甚至造成重大的生命财产损失和生态破坏w航空航天、军事、核工业等航空航天、军事、核工业等n软实时系统软实时系统-性能下降性能下降w应用虽提出时间需求,但实时任务偶尔违反这种需求对系统运行应用虽提出时间需求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响及环境不会造成严重影响w视频点播(视频点播(V
5、ideo-On-DemandVideo-On-Demand,VODVOD)、监控系统、信息采集系统)、监控系统、信息采集系统调度算法调度算法n通用系统中以大吞吐量为目标通用系统中以大吞吐量为目标n实时系统实时系统w满足时间的正确性满足时间的正确性w提供高度动态的,满足在线需求的,适应性的实时调度提供高度动态的,满足在线需求的,适应性的实时调度6实时系统的特点:时间约束性实时系统的特点:时间约束性time constraint是最基本的目标是最基本的目标n系统应该能够提供对时间正确性进行指定的方法系统应该能够提供对时间正确性进行指定的方法系统提供一种指定时间尺度的方法系统提供一种指定时间尺度的方
6、法通用系统的延时不能满足通用系统的延时不能满足截止时间、截止时间、时限时限(deadline deadline)n实时系统的任务具有一定的时间约束实时系统的任务具有一定的时间约束时间约束是任何实时系统都固有的约束时间约束是任何实时系统都固有的约束7相关定义相关定义时限时限(deadline)(deadline)n一个时间界限。它要求一个任务在该时刻之前完成一个时间界限。它要求一个任务在该时刻之前完成任务执行时间任务执行时间n一个任务从启动到完成所花费的时间。一个任务从启动到完成所花费的时间。n分为平均任务执行时间和最坏任务执行时间分为平均任务执行时间和最坏任务执行时间n实时系统中一般指最坏任务
7、执行时间,考虑了可能的等待、阻塞等实时系统中一般指最坏任务执行时间,考虑了可能的等待、阻塞等最不利的情况最不利的情况任务余量任务余量(laxity)(laxity)n时限减去任务执行时间所得的值,反映了系统工作的从容程度时限减去任务执行时间所得的值,反映了系统工作的从容程度紧时间约束紧时间约束(tight time constraint)(tight time constraint)n在满足任务时限的同时,留给系统的时间比较紧张。由任务的余量在满足任务时限的同时,留给系统的时间比较紧张。由任务的余量小而引起小而引起松时间约束松时间约束(loose time constraint)(loose
8、time constraint)n与紧时限概念相反与紧时限概念相反,指在满足任务时限的同时指在满足任务时限的同时,留给系统的时间比较留给系统的时间比较宽松宽松8时限粒度时限粒度(deadline granularity)(deadline granularity)n任务从启动时刻到时限之间的时间任务从启动时刻到时限之间的时间n当这个值较小时,称为时限粒度小当这个值较小时,称为时限粒度小(或小粒度时限或小粒度时限),反之称为时限粒,反之称为时限粒度大度大(或大粒度时限或大粒度时限)强实时强实时(hard real-time)(hard real-time)任务任务n强时限任务,要求该任务在时限之
9、前完成强时限任务,要求该任务在时限之前完成,否则其结果将失去否则其结果将失去可用性可用性弱实时弱实时(soft real-time)(soft real-time)任务任务n弱时限任务,若该任务不能在时限到来之前完成弱时限任务,若该任务不能在时限到来之前完成,其结果的可用性将其结果的可用性将逐渐下降逐渐下降关键任务关键任务(critical tasks)(critical tasks)n任务的重要程度,若任务在时限之前不能完成,则会产生任务的重要程度,若任务在时限之前不能完成,则会产生灾难性灾难性后果后果时限的严格性时限的严格性(strictness of deadline)(strictne
10、ss of deadline)n当一个任务的完成超过时限时当一个任务的完成超过时限时,所得到结果的可用性程度所得到结果的可用性程度9实时系统分类实时系统分类3实时过程控制系统实时过程控制系统n系统实时地从外界获得被控系统的当前状态,进行预定的处理,系统实时地从外界获得被控系统的当前状态,进行预定的处理,根据处理结果对外界被控系统进行及时控制,使其处于要求的根据处理结果对外界被控系统进行及时控制,使其处于要求的状态下状态下n实时过程控制系统的模型是一个反馈环结构实时过程控制系统的模型是一个反馈环结构实时信息处理系统实时信息处理系统n系统仅从外界系统中获得当前状态并进行相应处理系统仅从外界系统中获
11、得当前状态并进行相应处理n不直接控制外界系统的变化不直接控制外界系统的变化10实时系统的特点:可预测性实时系统的特点:可预测性predictability系统能够对实时任务的执行时间进行判断,确定是否系统能够对实时任务的执行时间进行判断,确定是否能够满足任务的时限要求能够满足任务的时限要求是实时系统的重要性能要求是实时系统的重要性能要求嵌入式系统的两个可预测性嵌入式系统的两个可预测性n硬件延迟的可预测性硬件延迟的可预测性n软件系统的可预测性软件系统的可预测性w应用程序的响应时间是可预测的,即在有限的时间内完成必须的应用程序的响应时间是可预测的,即在有限的时间内完成必须的工作工作w操作系统的可预
12、测性,即实时原语、调度函数等运行开销应是有操作系统的可预测性,即实时原语、调度函数等运行开销应是有界的,以保证应用程序执行时间的有界性界的,以保证应用程序执行时间的有界性资源约束资源约束n指多个实时任务共享有限的资源时,必须按照一定的资源访指多个实时任务共享有限的资源时,必须按照一定的资源访问控制协议进行同步,以避免死锁和高优先级任务被低优先问控制协议进行同步,以避免死锁和高优先级任务被低优先级任务堵塞的时间(即优先级倒置时间)不可预测级任务堵塞的时间(即优先级倒置时间)不可预测11实时系统的可靠性实时系统的可靠性reliability可靠性已成为衡量实时系统性能不可缺少的重要指标。可靠性已成
13、为衡量实时系统性能不可缺少的重要指标。n采用静态分析和保留资源的方法及冗余配置,使关键任务的要采用静态分析和保留资源的方法及冗余配置,使关键任务的要求总能满足,系统在最坏情况下能正常工作或避免损失求总能满足,系统在最坏情况下能正常工作或避免损失稳定性稳定性n嵌入式的要求:强稳定性,弱交互性嵌入式的要求:强稳定性,弱交互性容错容错n大部分针对硬件的容错,也有软件容错大部分针对硬件的容错,也有软件容错分布式应用分布式应用n多机共享资源,共同完成一个任务多机共享资源,共同完成一个任务n困难困难w网络的实时性:保证网络传输时间是有界和可预测的网络的实时性:保证网络传输时间是有界和可预测的w分布式系统的
14、调度:负载平衡、信息传送、减少开销、任务粒度分布式系统的调度:负载平衡、信息传送、减少开销、任务粒度划分等划分等12实时系统的结构实时系统的结构CPUCPUn高运算速度高运算速度IOIOn实时时钟的同步实时时钟的同步n高速中断处理、高高速中断处理、高I/OI/O吞吐率、合理的处理器和吞吐率、合理的处理器和I/OI/O设备的拓扑连接设备的拓扑连接n高速可靠的和有时间约束的网络通信高速可靠的和有时间约束的网络通信可靠性可靠性n体系结构支持的出错处理体系结构支持的出错处理体系结构的依赖性体系结构的依赖性n体系结构支持的调度、操作系统体系结构支持的调度、操作系统实时编程实时编程n实时编程就是使用汇编语
15、言、安排中断优先级、写驱动程序等实时编程就是使用汇编语言、安排中断优先级、写驱动程序等n或采用或采用AdaAda语言,语言,FORTHFORTH语言语言分布式的实时数据库分布式的实时数据库13实时系统与通用系统的区别实时系统与通用系统的区别通用系统通用系统-“劫富济贫劫富济贫”n方便用户管理计算机资源方便用户管理计算机资源n追求系统资源最大利用率追求系统资源最大利用率实时系统实时系统-“劫贫济富劫贫济富”n调度的实时性调度的实时性n响应时间可确定性响应时间可确定性n高可靠性高可靠性14性能衡量标准性能衡量标准对传统的通用系统对传统的通用系统n大的系统吞吐量大的系统吞吐量n合理的响应速度合理的响
16、应速度n对每个系统用户相对公平对每个系统用户相对公平的进行计算资源的分配的进行计算资源的分配 实时系统实时系统n实时的数据吞吐实时的数据吞吐w取代了吞吐量取代了吞吐量n对硬实时应用的优先响应对硬实时应用的优先响应w取代了恰当的反应速度取代了恰当的反应速度n系统的计算资源和其他外系统的计算资源和其他外设资源必须优先满足实时设资源必须优先满足实时应用的要求应用的要求w取代了公平取代了公平15衡量指标衡量指标系统响应时间系统响应时间(System response time)(System response time)n系统发出处理要求到系统给出应答信号的时间系统发出处理要求到系统给出应答信号的时间
17、任务切换时间任务切换时间(Context-switching time)(Context-switching time)n任务之间切换而使用的时间任务之间切换而使用的时间;中断延迟中断延迟(Interrupt latency time)(Interrupt latency time)n计算机接收到中断信号到操作系统作出响应,并完成换道转入计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间中断服务程序的时间两个主要评价实时性的指标两个主要评价实时性的指标n最大中断禁止时间最大中断禁止时间+任务切换时间任务切换时间16谬误谬误“实时实时”等于等于“快速快速”X Xn实时不意味
18、着时间约束是微秒或纳秒,而首先要求的是可预测实时不意味着时间约束是微秒或纳秒,而首先要求的是可预测性性n速度越快的系统,实时应用领域越广,实时性越好速度越快的系统,实时应用领域越广,实时性越好强实时任务等于关键任务强实时任务等于关键任务 X X强实时任务是紧时限任务强实时任务是紧时限任务 X X强实时任务等同于小粒度时限任务强实时任务等同于小粒度时限任务 X X1718课程大纲课程大纲实时系统简介实时系统简介嵌入式实时调度嵌入式实时操作系统嵌入式实时操作系统实时调度算法分类实时调度算法分类周期任务周期任务n优先级调度优先级调度n非优先级调度非优先级调度非周期任务调度非周期任务调度19周期任务的
19、调度算法:优先级调度周期任务的调度算法:优先级调度基于优先级的调度基于优先级的调度n不事先计算任务的调度表,而是在作业释放以后,给它们分配不事先计算任务的调度表,而是在作业释放以后,给它们分配优先级,并按照优先级次序把作业放入就绪队列优先级,并按照优先级次序把作业放入就绪队列分为两种分为两种n固定优先级算法固定优先级算法w为每个任务中的所有作业分配相同的优先级为每个任务中的所有作业分配相同的优先级w每个周期任务的优先级相对于其他任务来说是固定不变的每个周期任务的优先级相对于其他任务来说是固定不变的n动态优先级算法动态优先级算法w给每个任务的单个作业分配不同的优先级给每个任务的单个作业分配不同的
20、优先级w作业释放并完成时,任务的优先级相对于其他任务的优先级要发作业释放并完成时,任务的优先级相对于其他任务的优先级要发生变化生变化大多数实用调度算法会给单个任务分配固定的优先级大多数实用调度算法会给单个任务分配固定的优先级n每当作业释放并准备进入就绪队列时,就给作业分配优先级每当作业释放并准备进入就绪队列时,就给作业分配优先级20速度单调算法速度单调算法速度单调算法速度单调算法(Rate MonotonicRate Monotonic,RMRM算法)算法)n19731973年,最著名,算法简单、有效、便于实现年,最著名,算法简单、有效、便于实现n属于固定优先级算法属于固定优先级算法n任务假定
21、任务假定w工作由定期任务组织,任务是周期性的工作由定期任务组织,任务是周期性的w任务的相对时限等于它的周期任务的相对时限等于它的周期w任务时间定长度任务时间定长度n算法思想:使用频率高的优先级高算法思想:使用频率高的优先级高21时限单调算法时限单调算法时限单调算法(时限单调算法(Deadline MonotonicDeadline Monotonic),),DMDM算法算法n属于固定优先级算法属于固定优先级算法设计思想设计思想n按照任务的相对时限来分配优先级按照任务的相对时限来分配优先级n相对时限越短,优先级越高相对时限越短,优先级越高蜕化蜕化n如果每个任务的相对时限与它的周期成正比,则如果每
22、个任务的相对时限与它的周期成正比,则RMRM算法与算法与DMDM算算法一致法一致当相对时限是任意的时候,当相对时限是任意的时候,DMDM算法表现最好算法表现最好n此时此时DMDM算法有时有可能产生可行的调度表,算法有时有可能产生可行的调度表,RMRM算法缺不可以算法缺不可以n如果如果DMDM算法不能产生可行的调度表,算法不能产生可行的调度表,RMRM算法肯定也不能算法肯定也不能22EDF算法算法最早时限优先算法,截止期优先调度算法,最早时限优先算法,截止期优先调度算法,Earliest Deadline Earliest Deadline FirstFirst,EDFEDFn是使用最多的一种动
23、态优先级调度算法是使用最多的一种动态优先级调度算法按照作业的绝对时限为其分配优先级按照作业的绝对时限为其分配优先级对于具有任意释放时间和时限的作业集对于具有任意释放时间和时限的作业集J J,当作业允许抢占,但作,当作业允许抢占,但作业并不竞争资源时,当且仅当业并不竞争资源时,当且仅当J J存在可行的调度时,存在可行的调度时,EDFEDF算法才能算法才能够在单处理器上产生一个可行的调度够在单处理器上产生一个可行的调度EDFEDF算法是任务级算法是任务级/作业级动态优先级算法作业级动态优先级算法n一旦作业按照所分配的优先级被放入就绪队列,它相对于队列中其他一旦作业按照所分配的优先级被放入就绪队列,
24、它相对于队列中其他作业的次序就是固定的作业的次序就是固定的23LST算法算法最小空闲时间优先算法(最小空闲时间优先算法(Least Slack Time FirstLeast Slack Time First,LSTLST)、)、最短空闲时间优先算法(最短空闲时间优先算法(Least Laxity Least Laxity FirstFirst,LLFLLF)n属于动态优先级算法属于动态优先级算法按照空闲时间分配优先级按照空闲时间分配优先级n空闲时间为已执行过的时间长度空闲时间为已执行过的时间长度n每次在新作业释放时,调度程序检查所有就绪作业的空闲时间每次在新作业释放时,调度程序检查所有就绪作
25、业的空闲时间n将新作业和现有作业重新排序将新作业和现有作业重新排序n空闲时间越小,优先级越高空闲时间越小,优先级越高LSTLST需要监视所有就绪作业的空闲时间需要监视所有就绪作业的空闲时间n只要作业间空闲时间相对发生变化,调度程序就要向作业重新分配只要作业间空闲时间相对发生变化,调度程序就要向作业重新分配优先级优先级24扩展扩展以上均属于单处理器调度,本课程不介绍多处理器调度以上均属于单处理器调度,本课程不介绍多处理器调度n参见参见并行计算与多核程序设计并行计算与多核程序设计、多核计算多核计算课程内容课程内容分布式实时调度分布式实时调度n以以RMSRMS为基础的广义为基础的广义RMSRMS调度
26、调度n以风车调度以风车调度SrSr为基础的为基础的DSrDSr调度调度25静态优先级静态优先级vs动态优先级动态优先级RMSRMS算法算法n处理器利用率低处理器利用率低w在最坏的情况下处理器的利用率要小于在最坏的情况下处理器的利用率要小于69%69%w一般情况下也要小于一般情况下也要小于88%88%n处理非周期任务较难。处理非周期任务较难。EDFEDF算法算法n利用率接近于利用率接近于1 1n负载过载的可靠性、可预测性与稳定性较差负载过载的可靠性、可预测性与稳定性较差26周期任务的调度算法:非优先级算法周期任务的调度算法:非优先级算法反向反向EDFEDF算法,又称为最迟释放时间算法,算法,又称
27、为最迟释放时间算法,Latest Latest Release Time,LRTRelease Time,LRTn非优先级驱动的算法非优先级驱动的算法设计思想设计思想n当调度的目标是满足作业的时限时,早于必须的时间完成任一作当调度的目标是满足作业的时限时,早于必须的时间完成任一作业没有好处业没有好处n可能会因为某种原因想推迟强实时作业的执行可能会因为某种原因想推迟强实时作业的执行将释放时间当作时限,将时限当作释放时间将释放时间当作时限,将时限当作释放时间n从后面调度作业,按照从后面调度作业,按照“优先级驱动优先级驱动”的方式,从时限最迟的作的方式,从时限最迟的作业开始调度,直到当前时间业开始调
28、度,直到当前时间27非周期实时调度算法非周期实时调度算法非周期作业调度算法和偶发作业调度算法(非周期作业调度算法和偶发作业调度算法(aperiodic aperiodic job and sporadic job scheduling algorithmsjob and sporadic job scheduling algorithms)n根据每个新到达的偶发作业的执行时间和时限,调度程序决定根据每个新到达的偶发作业的执行时间和时限,调度程序决定接收还是拒绝这个作业接收还是拒绝这个作业n如果作业被接受,调度程序调度该作业,使得该作业能够及时如果作业被接受,调度程序调度该作业,使得该作业能够及
29、时完成,同时不会使周期性任务和前面已接收的偶发作业错过其完成,同时不会使周期性任务和前面已接收的偶发作业错过其时限时限w关键:如何进行接收测试以及如何调度已接收的偶发作业关键:如何进行接收测试以及如何调度已接收的偶发作业n调度程序试图尽可能快地完成每一个非周期作业调度程序试图尽可能快地完成每一个非周期作业w关键:在不引起周期性任务和已接受的偶发作业错过其时限的前关键:在不引起周期性任务和已接受的偶发作业错过其时限的前提下提下28基于基于RMS 的非周期任务的调度的非周期任务的调度思想思想n将非周期任务转化成周期任务将非周期任务转化成周期任务n再利用再利用RMSRMS算法进行调度算法进行调度两种
30、实现两种实现n延迟服务器算法延迟服务器算法n随机服务器算法随机服务器算法延迟服务器算法延迟服务器算法n用一个或几个专用的周期任务执行所有非周期任务用一个或几个专用的周期任务执行所有非周期任务n有固定优先级有固定优先级n执行时间称为预算执行时间称为预算随机服务器算法随机服务器算法n类似延迟服务器算法,差别在于类似延迟服务器算法,差别在于w在预算消耗在预算消耗TsTs时间之后再补充预算时间之后再补充预算29其他非周期性调度算法其他非周期性调度算法最优的非周期性调度算法最优的非周期性调度算法n使位于非周期性作业队列头部的非周期性作业响应时间最小使位于非周期性作业队列头部的非周期性作业响应时间最小n或
31、使得按给定排队规则排列的非周期性作业的平均响应时间最小或使得按给定排队规则排列的非周期性作业的平均响应时间最小空闲挪用算法(空闲挪用算法(slack stealing algorithmslack stealing algorithm)n利用周期性作业和偶发作业的可用空闲时间,以尽早完成本次非周期利用周期性作业和偶发作业的可用空闲时间,以尽早完成本次非周期性作业性作业n保证周期性作业不会因为非周期性作业错过时限保证周期性作业不会因为非周期性作业错过时限n采用中断方式,也可以使用优先级驱动采用中断方式,也可以使用优先级驱动(更复杂更复杂)轮询算法轮询算法n轮询程序周期性的在轮询周期的整数倍时刻就
32、绪可执行,并且按照给轮询程序周期性的在轮询周期的整数倍时刻就绪可执行,并且按照给定的优先级驱动算法被调度定的优先级驱动算法被调度n当轮询程序执行时,检查非周期作业队列,如果队列非空,就执行位当轮询程序执行时,检查非周期作业队列,如果队列非空,就执行位于队列头的作业于队列头的作业带宽保留服务器算法(带宽保留服务器算法(bandwidth preserving algorithmbandwidth preserving algorithm)n改进的轮询算法改进的轮询算法n非周期性作业队列必须非空非周期性作业队列必须非空n服务器为非周期性作业保留资源服务器为非周期性作业保留资源n将非周期性任务与周期
33、性任务一起调度将非周期性任务与周期性任务一起调度3031课程大纲课程大纲实时系统简介实时系统简介嵌入式实时调度嵌入式实时操作系统嵌入式实时操作系统嵌入式实时操作系统基本功能嵌入式实时操作系统基本功能操作系统基本功能操作系统基本功能n略略嵌入式操作系统可以分为两嵌入式操作系统可以分为两类类n面向面向控制、通信等领域的控制、通信等领域的实时操作系统实时操作系统,如如windriverwindriver公司的公司的vxworksvxworks、isiisi的的psospsos、qnxqnx系统软件公司的系统软件公司的qnxqnx、atiati的的nucleusnucleus等等n面向面向消费电子产品
34、的非实时操作系统,这类产品包括个人数字助理消费电子产品的非实时操作系统,这类产品包括个人数字助理(pdapda)、移动电话、机顶盒、电子书、)、移动电话、机顶盒、电子书、webphonewebphone等等。WinCEWinCE、VxWorksVxWorks、C/OS-C/OS-等运用较等运用较广广LinuxLinuxn作为作为通用操作系统开发的,通用操作系统开发的,linuxlinux核心在实时处理能力上核心在实时处理能力上先天不足先天不足n改造改造后后能能在一定程度上成为实时操作系统在一定程度上成为实时操作系统32RTOS开源开源eCoseCosFiasco Fiasco(L4(L4 cl
35、one)clone)FreeRTOSFreeRTOSPhoenix-RTOSPhoenix-RTOSNut/OS Nut/OS PrexPrexRTAIRTAIRTEMSRTEMSRTLinuxRTLinuxSHaRK SHaRK TRON TRON ProjectProjectXenomai Xenomai RT-Thread RT-Thread 不开源不开源Ardence RTXArdence RTXBeOSBeOSChorusOSChorusOSDNIXDNIXDMERTDMERTembOS(Segger)embOS(Segger)INTEGRITYINTEGRITYITRONITRON
36、LynxOSLynxOSMERTMERTMicroC/OS-IIMicroC/OS-IIMQX RTOS 6MQX RTOS 6NucleusNucleusOS-9OS-9OSEOSEOSEK/VDXOSEK/VDXOSEKtimeOSEKtimePDOSPDOSPhar Lap Phar Lap ETSETS33PikeOSPikeOSPortosPortospSOSpSOSQNXQNXRMXRMXRSX-11RSX-11RT-11RT-11RTOS-UHRTOS-UHRTXCRTXCSalvo RTOS Salvo RTOS SINTRAN IIISINTRAN IIISymbian OS
37、Symbian OSThreadXThreadXVRTXVRTXVxWorksVxWorksWindows CEWindows CEnOSnOSUNIX-RTRUNIX-RTRREXREXHP-1000/RTE HP-1000/RTE 实时操作系统的设计和实现实时操作系统的设计和实现n首要目标是提供保证实时性的方法首要目标是提供保证实时性的方法w一系列的经典问题的针对实时系统的解决方案一系列的经典问题的针对实时系统的解决方案n实现操作系统的低开销实现操作系统的低开销n保证内核以及其他关键的可重入性保证内核以及其他关键的可重入性嵌入式实时操作系统嵌入式实时操作系统RTOSRTOS中的相关概念中的
38、相关概念n占先式内核占先式内核n可重入可重入n优先级反转优先级反转34占先式占先式/剥夺式剥夺式实时操作系统可分为可抢占型和不可抢占型两实时操作系统可分为可抢占型和不可抢占型两类类占先占先式内核式内核preemptivepreemptiven最高优先级的任务一旦就绪,总能得到最高优先级的任务一旦就绪,总能得到CPUCPU的控制权。的控制权。n高优先级的就绪任务可以打断正在执行的较低优先级的任务,高优先级的就绪任务可以打断正在执行的较低优先级的任务,进入执行态;被抢占的较低优先级任务进入就绪任务队列,等进入执行态;被抢占的较低优先级任务进入就绪任务队列,等待下一次调度待下一次调度。非占先式内核非
39、占先式内核 non-preemptivenon-preemptiven内核要求每个任务自我放弃内核要求每个任务自我放弃CPUCPU的所有权。的所有权。n中断可以使一个高优先级的任务由挂起状态变为就绪态,但中中断可以使一个高优先级的任务由挂起状态变为就绪态,但中断服务以后控制权还是回到原来被中断的那个任务,直到该任断服务以后控制权还是回到原来被中断的那个任务,直到该任务主动放弃务主动放弃CPUCPU的使用权。的使用权。n更高优先权的任务不能打断正在执行的较低优先权的任务,直更高优先权的任务不能打断正在执行的较低优先权的任务,直到较低优先权任务主动放弃到较低优先权任务主动放弃CPUCPU的的控制权
40、控制权3536抢占式(抢占式(preemptivepreemptive)当系统响应时间很重要时,要使用抢占式(当系统响应时间很重要时,要使用抢占式(preemptivepreemptive)内核内核n最高优先级的任务一旦就绪,总能得到最高优先级的任务一旦就绪,总能得到CPUCPU的控制权。的控制权。n当优先级高的任务进入了就绪态,当前任务的当优先级高的任务进入了就绪态,当前任务的CPUCPU使用使用权就被剥夺了,或者说被挂起了,那个高优先级的任权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了务立刻得到了CPUCPU的控制权。的控制权。n中断服务以后控制权不是回到原来被中断了的那个任中
41、断服务以后控制权不是回到原来被中断了的那个任务务,而是而是高优先级任务得到高优先级任务得到CPUCPU使用权使用权抢占抢占式调度式调度37抢占式任务切换过程抢占式任务切换过程低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪高优先级任务得到高优先级任务得到CPU使用权使用权TIME38非抢占式调度非抢占式调度非抢占式(非抢占式(non-preemptivenon-preemptive)非占先式调度法也称作合作型多任务(非占先式调度法也称作合作型多任务(cooperative cooperativ
42、e multitaskingmultitasking),各个任务彼此合作共享一个),各个任务彼此合作共享一个CPUCPU。中断服务可以使一个高优先级的任务由挂起状态变为就中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到改任务主动放弃的那个任务,直到改任务主动放弃CPUCPU的使用权时,那个的使用权时,那个高优先级的任务才能获得高优先级的任务才能获得CPUCPU的使用权。的使用权。39非抢占式任务切换过程非抢占式任务切换过程低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(
43、2)(3)(4)(5)(6)(7)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪低优先级任务释放低优先级任务释放CPU使用权使用权TIME抢占式调度抢占式调度vs非抢占式调度非抢占式调度抢占式调度抢占式调度n优点是实时性好、反应快,调度算法相对简单,可优先保证高优点是实时性好、反应快,调度算法相对简单,可优先保证高优先级任务的时间约束优先级任务的时间约束n缺点是上下文切换多缺点是上下文切换多非抢占式调度非抢占式调度n优点是上下文切换少优点是上下文切换少n缺点是一般情况下,处理器有效资源利用率低,可调度性不好缺点是一般情况下,处理器有效资源利用率低,可调度性不好通用内核通用内核n调
44、度策略:优先级调度、时间片轮转调度调度策略:优先级调度、时间片轮转调度n调度方式:抢占式、不可抢占式、选择可抢占式调度方式:抢占式、不可抢占式、选择可抢占式n时间片:定长时间片与变长时间片时间片:定长时间片与变长时间片商业上销售的实时内核都是抢占式内核商业上销售的实时内核都是抢占式内核40可重入性可重入性可重入性可重入性 reentrancyreentrancyn可重入型函数可以被一个以上的任务调用,而不必担心数据可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。的破坏。n可重入型函数任何时候可以被中断,一段时间后又可以执行,可重入型函数任何时候可以被中断,一段时间后又可以执行,而相
45、应的数据不会丢失。而相应的数据不会丢失。n可重入型函数只使用局部变量,即变量保存在可重入型函数只使用局部变量,即变量保存在CPUCPU寄存器中或寄存器中或堆栈中。堆栈中。在并行运行环境中非常重要在并行运行环境中非常重要可重入型函数可重入型函数不可重入型函数不可重入型函数嵌入式软件尽量写成可重入函数嵌入式软件尽量写成可重入函数41优先级反转优先级反转/优先级倒置优先级倒置高优先级的任务在申请已经被低优先级任务占据的资高优先级的任务在申请已经被低优先级任务占据的资源时,高优先级被迫进入等待态,如果有一个中优先源时,高优先级被迫进入等待态,如果有一个中优先级的任务一直在执行,则高优先级将无法执行级的
46、任务一直在执行,则高优先级将无法执行42两个解决方法两个解决方法n优先级继承(优先级继承(priority inheritancepriority inheritance)w设设S S为正占用着某项共享资源的进程为正占用着某项共享资源的进程P P以及所有正在等待占用这个以及所有正在等待占用这个资源的进程的集合;资源的进程的集合;w找出这个集合中的优先级最高者,其优先级为找出这个集合中的优先级最高者,其优先级为P Pw把进程把进程P P的优先级设置成的优先级设置成P Pn优先级封顶(优先级封顶(priority ceilingpriority ceiling)w设设S S为所有可能竞争使用某项共
47、享资源的进程的集合。事先为这个为所有可能竞争使用某项共享资源的进程的集合。事先为这个集合规定一个优先级上限集合规定一个优先级上限p p,使得这个集合中所有进程的优先级,使得这个集合中所有进程的优先级都小于都小于p p。注意。注意p p并不一定是整个系统中的最好优先级。并不一定是整个系统中的最好优先级。w在创建保护该项资源的信号量或互斥量时,将在创建保护该项资源的信号量或互斥量时,将p p作为一个参数。作为一个参数。w每当有进程通过这个信号量或互斥量取得共享资源时,就将此进每当有进程通过这个信号量或互斥量取得共享资源时,就将此进程的优先级暂时提高到程的优先级暂时提高到p p,一直到释放该项资源的
48、时候才恢复其,一直到释放该项资源的时候才恢复其原有的优先级原有的优先级43RTOS基本结构基本结构实时多任务实时多任务corecoren任务管理任务管理w多任务和基于优先级的任务调度多任务和基于优先级的任务调度n定时器定时器w系统的实时时钟服务,以及各个定时任务的调入等系统的实时时钟服务,以及各个定时任务的调入等nMemMemw管理系统的内存资源,如管理系统的内存资源,如DRAM,ROM,FLASHRAMDRAM,ROM,FLASHRAM等等n资源管理资源管理w管理系统的各种资源如系统的各种设备,端口,中断等;管理系统的各种资源如系统的各种设备,端口,中断等;n事件和消息管理事件和消息管理w管
49、理各种系统级的事件,如实时中断响应,各种异常等;任务间管理各种系统级的事件,如实时中断响应,各种异常等;任务间同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之同步和通信(信号量和邮箱等)以及各种系统消息和应用程序之间的通讯间的通讯44操作系统实时性操作系统实时性n一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问一方面是多大程度上充分发挥硬件潜力,即综合速度快慢的问题;题;n另一方面同时也是反映的速度在多大的程度上得到保证的问题。另一方面同时也是反映的速度在多大的程度上得到保证的问题。45中断延迟(中断延迟(Interrupt LatencyInterrupt Latency)n中
50、断不可嵌套中断不可嵌套wLINUXLINUX的的Bottom HalfBottom Halfn中断可嵌套:优先级中断中断可嵌套:优先级中断w大多微处理器不支持;大多微处理器不支持;wLINUXLINUX不支持;不支持;wUNIXUNIX支持支持n与指令集有关与指令集有关nDMADMA操作有关操作有关n保证系统调用的原子性有关保证系统调用的原子性有关46调度延迟(调度延迟(Scheduling LatencyScheduling Latency)n中断处理中断处理程序程序进程进程处理处理n一般调度算法(一般调度算法(Round RobinRound Robin)不能及时选中)不能及时选中n基于优