嵌入式操作系统及应用-Chapter4-嵌入式实时内核基础.ppt
《嵌入式操作系统及应用-Chapter4-嵌入式实时内核基础.ppt》由会员分享,可在线阅读,更多相关《嵌入式操作系统及应用-Chapter4-嵌入式实时内核基础.ppt(112页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式操作系统及应用-Chapter4-嵌入式实时内核基础 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望主要内容主要内容q嵌入式实时内核的关键设计问题嵌入式实时内核的关键设计问题 q嵌入式实时内核的主要功能嵌入式实时内核的主要功能 q嵌入式实时内核的重要性能指标嵌入式实时内核的重要性能指标 第一节第一节嵌入式实时内核的关键设计问题嵌入式实时内核的关键设计问题 实时性实时性可移植性可移植性可剪裁、可配置性可剪裁、可配置性可靠性可靠性应用编程接口应用编程接口嵌嵌入入
2、式式实实时时内内核核,在在设设计计时时通通常常需需要要考考虑以下要求:虑以下要求:v实时性实时性v可移植性可移植性v可剪裁、可配置性可剪裁、可配置性v可靠性可靠性v应用编程接口应用编程接口 实时性实时性q实时性是实时内核最重要的特性之一。实时性是实时内核最重要的特性之一。q实实时时系系统统的的正正确确性性不不仅仅依依赖赖于于系系统统计计算算的的逻逻辑辑结结果果,还还依依赖赖于于产产生生这这些些结结果果的的时间。时间。q从从整整体体上上考考虑虑,一一个个系系统统的的实实时时性性能能与与硬硬件件、操操作作系系统统及及应应用用程程序序三三方方面面都都有有关关系系,提提高高硬硬件件能能力力可可以以在在
3、一一定定程程度度上上提提高高实实时时性性,但但是是当当硬硬件件条条件件确确定定之之后后,嵌嵌入入式式系系统统的的性性能能主主要要是是由由操操作作系系统统来来决定,其中实时内核起着关键的作用。决定,其中实时内核起着关键的作用。实时性实时性q所谓实时性是指:所谓实时性是指:v实实时时内内核核应应该该保保证证系系统统尽尽可可能能快快地地对对外外部部事事件产生响应件产生响应v系系统统对对外外部部事事件件响响应应的的最最坏坏时时间间是是可可以以预预知知的的 实时性实时性q关于内核实时性的几个重要原则:关于内核实时性的几个重要原则:v支支持持多多任任务务:为为了了降降低低任任务务切切换换延延迟迟,许许多多
4、实实时时内内核核的的实实现现都都使使用用轻轻量量级级任任务务(即即线线程程)。线线程程是是轻轻量量级级的的,因因为为它它们们携携带带的的信信息息比比进进程程要要少少。这这意意味味着着一一个个线线程程的的控控制制块块比比进进程程的的控控制制块块要要小小,存存储储被被抢抢占占线线程程的的控控制制块块和和恢恢复复下下一一个个执执行行线线程程的的控控制制块块所所带带来来的的开开销销就就被被降降低低了了。因因此此在在嵌嵌入入式式实实时时系系统统中中,多多采采用用单单进进程程多多线线程程(任任务务)调调度度来来提提高高实实时性。时性。v支持抢占式多任务支持抢占式多任务 实时性实时性v支持任务的优先级调度支
5、持任务的优先级调度v支持可预测的任务同步机制支持可预测的任务同步机制 v实实时时内内核核的的运运行行时时间间(如如中中断断延延迟迟、任任务务切切换延迟等)可知并可以预测换延迟等)可知并可以预测v系系统统调调用用的的确确定定性性。指指系系统统调调用用的的执执行行时时间间即即使使在在最最坏坏的的情情形形下下也也是是可可预预测测的的。一一个个时时间间确确定定的的系系统统调调用用,它它的的执执行行时时间间往往往往不不是是唯唯一一的的值值,而而是是在在一一个个范范围围内内。系系统统调调用用运运行行时时间间可可以以预预测测还还有有一一层层含含义义,即即不不论论系系统统负负载载如如何何,系系统统调调用用的的
6、最最大大执执行行时时间间可可以以确确定。定。实时性实时性q影响实时性的主要因素影响实时性的主要因素 v调度算法调度算法v内核的可抢占性内核的可抢占性v内核的关中断时间内核的关中断时间v存储管理机制存储管理机制v资源等待的处理资源等待的处理v优先级反转的处理优先级反转的处理v中断处理中断处理v浮点数的处理浮点数的处理调度算法调度算法在在设设计计一一个个实实时时内内核核的的调调度度器器的的时时候候,公公平平和和最最小小化化平平均均响响应应时时间间不不是是重重要要的的。重重要要的的是是所所有有的的硬硬实实时时任任务务要要在在它它们们的的最最后后期期限限之之前前完完成成(或或开开始始),以以及及尽尽可
7、可能能多多的的软软实实时时任任务务也也在在它它们们的的最最后后期期限限之之前前完完成成(或或开开始始)。因因此此,实实时时内内核核被被设设计计为为尽尽可可能能地地响响应应实实时时任任务务,当当一一个个实实时时任任务务的的最最后后期期限限接接近近时时,它它能能够被迅速地调度。够被迅速地调度。调度算法调度算法当前任务当前任务实时任务实时任务一个实时任务就绪一个实时任务就绪该实时任务被调度该实时任务被调度当前任务阻塞或完成当前任务阻塞或完成调度时间调度时间优先级驱动的非抢占优先级驱动的非抢占式调度式调度在一个非抢占式的调度器中,可以使用优先级调度,给予实时任务较在一个非抢占式的调度器中,可以使用优先
8、级调度,给予实时任务较高的优先级。高的优先级。在这种情况下,一旦当前任务阻塞或运行完成,一个已就绪的优先级在这种情况下,一旦当前任务阻塞或运行完成,一个已就绪的优先级更高的实时任务将会被调度。如果一个慢速的、低优先级的任务在这更高的实时任务将会被调度。如果一个慢速的、低优先级的任务在这个关键的时间执行,就可能延迟优先级更高的实时任务,因而这个方个关键的时间执行,就可能延迟优先级更高的实时任务,因而这个方法对实时内核来说是不可接受的。法对实时内核来说是不可接受的。调度算法调度算法在下一个抢占点处实时任务被调度在下一个抢占点处实时任务被调度一个实时任务就绪一个实时任务就绪调度时间调度时间当前任务当
9、前任务实时任务实时任务抢占点抢占点基于抢占点的优先级驱基于抢占点的优先级驱动的抢占式调度动的抢占式调度在规定的时间间隔处设置抢占点,当一个抢占点发生时,如果有在规定的时间间隔处设置抢占点,当一个抢占点发生时,如果有一个更高优先级的任务在等待,当前运行的任务就被抢占。一个更高优先级的任务在等待,当前运行的任务就被抢占。在这种情况下造成的延迟根据抢占点之间的时间间隔而定,可能在这种情况下造成的延迟根据抢占点之间的时间间隔而定,可能在几个毫秒的数量级上。在几个毫秒的数量级上。调度算法调度算法一个实时任务就绪一个实时任务就绪当前任务当前任务实时任务实时任务实时任务抢占当前任务并立即执行实时任务抢占当前
10、任务并立即执行调度时间调度时间立即抢占调度立即抢占调度可以满足要求更高的实时应用,该方法被称为立即抢占。可以满足要求更高的实时应用,该方法被称为立即抢占。在这种情况下,内核几乎立即地响应一个实时任务,除非系统处在这种情况下,内核几乎立即地响应一个实时任务,除非系统处于一个临界代码锁定段中。一个实时任务的调度延迟可以被降低于一个临界代码锁定段中。一个实时任务的调度延迟可以被降低到更少。到更少。调度算法调度算法q在大多数实时内核中,为了能够在突发状在大多数实时内核中,为了能够在突发状态时迅速做出反应,大都采用态时迅速做出反应,大都采用“抢占式优抢占式优先级任务调度先级任务调度”的机制,也就是实时内
11、核的机制,也就是实时内核有权主动终止当前任务的执行,将执行权有权主动终止当前任务的执行,将执行权交给新就绪的高优先级任务,并且是立即交给新就绪的高优先级任务,并且是立即抢占的。抢占的。q目前比较流行的思路是采用基于优先级的目前比较流行的思路是采用基于优先级的可抢占调度作为主要的调度方式,配合同可抢占调度作为主要的调度方式,配合同优先级时间片轮转调度作为可选择的调度优先级时间片轮转调度作为可选择的调度方式,兼顾同优先级任务,使它们具有平方式,兼顾同优先级任务,使它们具有平等的运行权利。基于优先级的调度方式是等的运行权利。基于优先级的调度方式是指指CPU总是让处于就绪态的、优先级最高总是让处于就绪
12、态的、优先级最高的任务先运行。的任务先运行。调度算法调度算法q非抢占式调度与抢占式调度非抢占式调度与抢占式调度v非抢占式调度要求每个任务主动放弃非抢占式调度要求每个任务主动放弃CPU的的使用权。使用权。v在抢占式调度的情况下,一旦更高优先级的在抢占式调度的情况下,一旦更高优先级的任务就绪,当前任务的任务就绪,当前任务的CPU使用权就会被尽使用权就会被尽快剥夺,以使更高优先级的任务能够尽快得快剥夺,以使更高优先级的任务能够尽快得到到CPU。非抢占式调度非抢占式调度中断服务以后,中断服务以后,CPUCPU使用权归还给原来使用权归还给原来被中断了的那个任务,直到该任务主被中断了的那个任务,直到该任务
13、主动放弃动放弃CPUCPU的使用权,新就绪的高优先的使用权,新就绪的高优先级的任务才能获得级的任务才能获得CPUCPU的使用权。的使用权。假设在任务运行过程中可以响应中断,并且中断服务使一个高优假设在任务运行过程中可以响应中断,并且中断服务使一个高优先级任务由其它状态变为就绪态。先级任务由其它状态变为就绪态。抢占式调度抢占式调度中断服务程序使一个高优先级中断服务程序使一个高优先级任务就绪,中断完成后,高优任务就绪,中断完成后,高优先级任务开始运行。先级任务开始运行。内核的可抢占性内核的可抢占性q可抢占内核(可抢占内核(preemptable kernel)与可抢)与可抢占调度(占调度(pree
14、mptive scheduling)是不同)是不同的概念。内核可抢占与不可抢占,体现的概念。内核可抢占与不可抢占,体现在任务在使用内核提供的系统调用的过在任务在使用内核提供的系统调用的过程中被中断打断的不同处理上。程中被中断打断的不同处理上。内核的可抢占性内核的可抢占性q可抢占内核:即使正在执行的是内核服务可抢占内核:即使正在执行的是内核服务函数,也能响应中断,并且中断服务程序函数,也能响应中断,并且中断服务程序退出时能进行任务重新调度:如果有优先退出时能进行任务重新调度:如果有优先级更高的任务就绪,就立即让高优先级任级更高的任务就绪,就立即让高优先级任务运行,不要求回到被中断的任务,将未务运
15、行,不要求回到被中断的任务,将未完成的系统调用执行完。完成的系统调用执行完。内核的可抢占性内核的可抢占性q不可抢占内核:不可抢占内核有两种情况,一不可抢占内核:不可抢占内核有两种情况,一是内核服务函数不能被中断,二是能被中断但是内核服务函数不能被中断,二是能被中断但是不能进行任务重新调度。在第一种情况下,是不能进行任务重新调度。在第一种情况下,系统在执行内核服务函数时处于关中断状态,系统在执行内核服务函数时处于关中断状态,不能响应外部可屏蔽中断,这样就会在一定程不能响应外部可屏蔽中断,这样就会在一定程度上延迟中断响应时间。在第二种情况下,系度上延迟中断响应时间。在第二种情况下,系统在执行内核服
16、务函数时可以响应中断,不会统在执行内核服务函数时可以响应中断,不会延迟中断响应时间,但是在中断退出时不进行延迟中断响应时间,但是在中断退出时不进行任务重新调度,即使在中断服务程序执行过程任务重新调度,即使在中断服务程序执行过程中有更高优先级的任务就绪,也必须回到被中中有更高优先级的任务就绪,也必须回到被中断的任务将未完成的内核函数执行完后,才能断的任务将未完成的内核函数执行完后,才能让高优先级任务执行。让高优先级任务执行。内核的可抢占性内核的可抢占性低优先级任务低优先级任务内核服务内核服务ISRISR高优先级任务高优先级任务时时间间(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)不
17、可抢占内核不可抢占内核内核的可抢占性内核的可抢占性低优先级任务低优先级任务内核服务内核服务ISRISR高优先级任务高优先级任务时时间间(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)可抢占内核可抢占内核内核的关中断时间内核的关中断时间q内核的关中断时间由内核服务函数对临界资源内核的关中断时间由内核服务函数对临界资源的操作而引入。的操作而引入。q为了保护临界资源不被破坏,在临界区中需要为了保护临界资源不被破坏,在临界区中需要暂时屏蔽中断。暂时屏蔽中断。q内核服务函数对临界区的操作可能不连续,即内核服务函数对临界区的操作可能不连续,即临界区之间有非临界区的操作。对于内核中的临界区之间有
18、非临界区的操作。对于内核中的这种服务函数,可以合理地设置一些可抢占区这种服务函数,可以合理地设置一些可抢占区域或可抢占点(开放中断的地方)减少系统的域或可抢占点(开放中断的地方)减少系统的关中断时间。关中断时间。q不同的内核在中断响应时间上的差异主要来自不同的内核在中断响应时间上的差异主要来自于内核的最大关中断时间,所以,通过这些处于内核的最大关中断时间,所以,通过这些处理可以让内核具有较好的及时响应中断的能力。理可以让内核具有较好的及时响应中断的能力。存储管理机制存储管理机制q在嵌入式实时内核的实现中,通常不采用虚拟在嵌入式实时内核的实现中,通常不采用虚拟内存管理机制,以提高系统的实时性。内
19、存管理机制,以提高系统的实时性。q虚拟内存管理中的缺页调度时间取决于需要调虚拟内存管理中的缺页调度时间取决于需要调入的页面在外围存储介质中的物理位置(比如入的页面在外围存储介质中的物理位置(比如某一柱面、磁道、扇区),造成执行时间上的某一柱面、磁道、扇区),造成执行时间上的无法预测性。一个严格的实时、嵌入式系统要无法预测性。一个严格的实时、嵌入式系统要求实时性、内存锁定和代码紧凑,虚拟内存管求实时性、内存锁定和代码紧凑,虚拟内存管理往往不能满足这些要求。尤其对于一个强实理往往不能满足这些要求。尤其对于一个强实时的嵌入式系统,虚拟内存管理机制对时间确时的嵌入式系统,虚拟内存管理机制对时间确定性是
20、不利的,而且还有移植上的困难(在不定性是不利的,而且还有移植上的困难(在不同的嵌入式目标硬件平台上实现虚存管理需要同的嵌入式目标硬件平台上实现虚存管理需要一定硬件机制的支持,比如微处理器的内存管一定硬件机制的支持,比如微处理器的内存管理单元理单元MMU。不是所有的微处理器都具备。不是所有的微处理器都具备MMU功能)。功能)。存储管理机制存储管理机制q从实践上,大多数的嵌入式系统一方面不具备从实践上,大多数的嵌入式系统一方面不具备大容量的外部存储器以支持虚拟存储;另一方大容量的外部存储器以支持虚拟存储;另一方面,嵌入式系统是确定的,不像通用计算机那面,嵌入式系统是确定的,不像通用计算机那样总是希
21、望运行更多的应用程序,对于既定的样总是希望运行更多的应用程序,对于既定的应用来说,它在运行过程中所需的动态数据空应用来说,它在运行过程中所需的动态数据空间也是可预测的。因而在嵌入式系统中的内存间也是可预测的。因而在嵌入式系统中的内存容量一般都是经过特别计算并适合应用需求的。容量一般都是经过特别计算并适合应用需求的。资源等待的处理资源等待的处理q在多任务实时应用中,任务没能获得需要的资在多任务实时应用中,任务没能获得需要的资源就会被阻塞。源就会被阻塞。q如果该资源并不是任务继续运行必备的,任务如果该资源并不是任务继续运行必备的,任务可选择有限等待该资源,在等待一段时间后如可选择有限等待该资源,在
22、等待一段时间后如果还没获得该资源,内核可以唤醒该任务,确果还没获得该资源,内核可以唤醒该任务,确保它余下的工作不被耽误。这就是资源的有限保它余下的工作不被耽误。这就是资源的有限时间等待方式,采用该方式能有效地避免死锁,时间等待方式,采用该方式能有效地避免死锁,并提高系统的实时性。并提高系统的实时性。优先级反转的处理优先级反转的处理q抢占式的内核设计虽然可以降低任务重新调度抢占式的内核设计虽然可以降低任务重新调度的延迟时间,但会产生优先级反转失控的问题:的延迟时间,但会产生优先级反转失控的问题:低优先级的任务低优先级的任务L占用临界资源,高优先级任占用临界资源,高优先级任务务H拥有执行权但又必须
23、等待该临界资源,这拥有执行权但又必须等待该临界资源,这样就导致低优先级的任务反而优先执行。这时样就导致低优先级的任务反而优先执行。这时如果系统中不断有中等优先级任务出现,系统如果系统中不断有中等优先级任务出现,系统的任务调度将变得不稳定并且难以预测。的任务调度将变得不稳定并且难以预测。q优先级继承和优先级天花板两种方法可以解决优先级继承和优先级天花板两种方法可以解决优先级反转问题。优先级反转问题。中断处理中断处理在中断处理方面,可通过以下方法提高系统的实在中断处理方面,可通过以下方法提高系统的实时性:时性:v允许中断嵌套允许中断嵌套 在处理某一级中断的过程中,允许更高优先级的中断在处理某一级中
24、断的过程中,允许更高优先级的中断打断它。中断嵌套让更紧急的中断优先得到服务。打断它。中断嵌套让更紧急的中断优先得到服务。通过这项功能,系统设计者可以指定外部中断的优先通过这项功能,系统设计者可以指定外部中断的优先级,从而确保高优先级的中断能及时处理。利用外部级,从而确保高优先级的中断能及时处理。利用外部中断控制器来设置中断的优先级,在中断处理程序的中断控制器来设置中断的优先级,在中断处理程序的启动过程中,设置中断控制器(比如启动过程中,设置中断控制器(比如8259)的中断屏)的中断屏蔽寄存器的相应位,使得较低优先级的中断不能被响蔽寄存器的相应位,使得较低优先级的中断不能被响应;在离开中断处理程
25、序时,恢复屏蔽位。应;在离开中断处理程序时,恢复屏蔽位。中断处理中断处理v简短的中断服务程序简短的中断服务程序 基于几方面的原因,中断服务程序应该尽量简短:基于几方面的原因,中断服务程序应该尽量简短:一方面,中断处理过程中屏蔽了同级和较低级别的中断,一方面,中断处理过程中屏蔽了同级和较低级别的中断,对这些中断的处理要等当前的中断服务程序执行完后才能对这些中断的处理要等当前的中断服务程序执行完后才能开始。如果发生中断嵌套致使当前中断服务程序被打断,开始。如果发生中断嵌套致使当前中断服务程序被打断,则被打断的中断服务程序要等所有高优先级中断的服务程则被打断的中断服务程序要等所有高优先级中断的服务程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 操作系统 应用 Chapter4 实时 内核 基础
限制150内