嵌入式系统与软件4.ppt
《嵌入式系统与软件4.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统与软件4.ppt(115页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、嵌入式系统与软件4 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望嵌入式实时内核的关键设计问题嵌入式实时内核的关键设计问题l实时性实时性l可移植性可移植性l可剪裁、可配置性可剪裁、可配置性l可靠性可靠性l应用编程接口应用编程接口2实时性实时性l实时性是指实时内核应该保证系统尽可能实时性是指实时内核应该保证系统尽可能快地对外部事件产生响应。快地对外部事件产生响应。l实时性是实时内核最重要的特性之一。实时性是实时内核最重要的特性之一。l实时系统的正确性不仅依赖于系统计
2、算的实时系统的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这些结果的时间。逻辑结果,还依赖于产生这些结果的时间。l系统的实时性与硬件、操作系统及程序三系统的实时性与硬件、操作系统及程序三方面有关系。方面有关系。3l相关概念相关概念确定性:是指系统对外部事件响应的最坏时确定性:是指系统对外部事件响应的最坏时间是可以预知的。间是可以预知的。响应性:是指系统在识别外部事件以后,要响应性:是指系统在识别外部事件以后,要花多长时间来服务该事件。花多长时间来服务该事件。响应时间:确定性和响应性结合在一起构成响应时间:确定性和响应性结合在一起构成了系统对外部事件的响应时间,对于多任务了系统对外部事件的响
3、应时间,对于多任务实时应用来说,可以分两种情况:中断响应实时应用来说,可以分两种情况:中断响应时间和任务响应时间。时间和任务响应时间。实时性实时性4实时性实时性l内核实时性的重要原则:内核实时性的重要原则:支持多任务;支持多任务;支持强占式多任务;支持强占式多任务;支持任务的优先级调度;支持任务的优先级调度;任务的优先级可以继承;任务的优先级可以继承;支持可预测的任务同步机制;支持可预测的任务同步机制;实时内核的运行时间可知并可以预测;实时内核的运行时间可知并可以预测;系统调用的确定性。系统调用的确定性。5实时性实时性l影响实时性的主要因素影响实时性的主要因素调度算法调度算法可抢占式内核可抢占
4、式内核内核的关中断时间内核的关中断时间数据结构数据结构存储管理机制存储管理机制资源的有限时间等待资源的有限时间等待优先级反转问题的解决优先级反转问题的解决中断处理中断处理浮点数的优化处理浮点数的优化处理6l可抢占内核与不可抢占内核可抢占内核与不可抢占内核 体体现现在在任任务务在在使使用用内内核核提提供供的的系系统统调调用用的的过过程程中被中断打断的不同处理上。中被中断打断的不同处理上。可可抢抢占占内内核核:中中断断服服务务程程序序退退出出时时进进行行任任务务重重调调度度,如如果果有有优优先先级级更更高高的的任任务务就就绪绪,就就立立即即让让高高优优先先级级任任务务运运行行,不不要要求求必必须须
5、回回到到被被中中断断的任务,将未完成的系统调用执行完的任务,将未完成的系统调用执行完不不可可抢抢占占内内核核:中中断断服服务务程程序序退退出出时时,即即使使有有优优先先级级更更高高的的任任务务就就绪绪也也必必须须回回到到被被中中断断的的任任务务,将将未未完完成成的的系系统统调调用用执执行行完完后后,才才能能让让高高优先级任务执行。优先级任务执行。7可移植性可移植性l可移植性是设计实时内核时需要重点考虑的可移植性是设计实时内核时需要重点考虑的目标之一;目标之一;l嵌入式软件的移植工作分为异种处理器平台嵌入式软件的移植工作分为异种处理器平台之间的移植和同种处理器平台之间的移植;之间的移植和同种处理
6、器平台之间的移植;l不同处理器平台间的移植工作集中在任务切不同处理器平台间的移植工作集中在任务切换、中断控制设备和时间设备的驱动上;换、中断控制设备和时间设备的驱动上;l同种处理器平台间的移植工作集中在对芯片同种处理器平台间的移植工作集中在对芯片级控制寄存器的操作上。级控制寄存器的操作上。8影响内核可移植性的因素影响内核可移植性的因素l编程语言:高级语言与汇编语言。编程语言:高级语言与汇编语言。l体系结构:体系结构:可以将内核设计为三层结构:硬件无关层、硬可以将内核设计为三层结构:硬件无关层、硬件抽象层和硬件相关层。件抽象层和硬件相关层。l代码实现的技巧:代码实现的技巧:对不可移植代码的使用转
7、换成对函数和宏定义对不可移植代码的使用转换成对函数和宏定义的使用。的使用。9可剪裁、可配置性可剪裁、可配置性l可剪裁表示系统在增加、删除功能模块时仅需要可剪裁表示系统在增加、删除功能模块时仅需要做少量的修改或者根本不用修改。可剪裁性要求做少量的修改或者根本不用修改。可剪裁性要求系统中各功能模块之间尽量不存在耦合关系。系统中各功能模块之间尽量不存在耦合关系。l可配置性是针对系统中未被卸装的模块,根据应可配置性是针对系统中未被卸装的模块,根据应用在数量、机制、工作空间和堆栈等方面的不同用在数量、机制、工作空间和堆栈等方面的不同需求,决定系统的规模、功能以及内存分配等。需求,决定系统的规模、功能以及
8、内存分配等。10可靠性可靠性l可靠性对于实时系统来说通常比非实时系可靠性对于实时系统来说通常比非实时系统更为重要。统更为重要。l提高可靠性所采用的机制有:异步信号、提高可靠性所采用的机制有:异步信号、定时器、优先级继承、优先级天花板、异定时器、优先级继承、优先级天花板、异常(出错)处理、用户扩展和内存保护等。常(出错)处理、用户扩展和内存保护等。11编程接口编程接口l每个操作系统提供的系统调用的功能和种类都不同。每个操作系统提供的系统调用的功能和种类都不同。一般来说,系统调用提供得越多,功能越强,越能一般来说,系统调用提供得越多,功能越强,越能对应用程序的开发提供高效率的支持,同时也会减对应用
9、程序的开发提供高效率的支持,同时也会减少应用程序的维护工作量;相反,系统调用提供得少应用程序的维护工作量;相反,系统调用提供得越少,越单一,应用程序越复杂,可靠性越低。越少,越单一,应用程序越复杂,可靠性越低。lAPIAPI影响着应用参与系统控制的深浅程度。通过实影响着应用参与系统控制的深浅程度。通过实时内核提供的时内核提供的APIAPI,开发者可以在应用中使用实时,开发者可以在应用中使用实时内核提供的各种功能,达到对系统硬件资源和软件内核提供的各种功能,达到对系统硬件资源和软件资源的合理、充分的使用。资源的合理、充分的使用。l提供面向行业的接口标准是嵌入式实时操作系统的提供面向行业的接口标准
10、是嵌入式实时操作系统的一个发展趋势。一个发展趋势。12嵌入式实时内核的主要功能嵌入式实时内核的主要功能l任务管理任务管理l中断管理中断管理l任务间的同步与通任务间的同步与通信管理信管理l时间管理时间管理l对共享资源的互斥对共享资源的互斥管理管理l存储管理存储管理lI/O管理管理l出错管理出错管理l用户扩展管理用户扩展管理l电源管理电源管理13任务管理任务管理l任务是被调度执行和竞争资源的最基本实体任务是被调度执行和竞争资源的最基本实体单元;单元;l实时内核最基本的功能是管理任务、提供多实时内核最基本的功能是管理任务、提供多线程的支持;线程的支持;l任务管理主要包括创建任务、删除任务、改任务管理
11、主要包括创建任务、删除任务、改变任务状态和查询任务状态等功能;变任务状态和查询任务状态等功能;l任务管理的核心是任务调度,确定一个适合任务管理的核心是任务调度,确定一个适合嵌入式应用特定要求的任务调度算法。嵌入式应用特定要求的任务调度算法。14多任务管理机制的好处多任务管理机制的好处l相对于前后台软件结构而言,多任务软件结相对于前后台软件结构而言,多任务软件结构的每个任务规模较小,每个任务更容易编构的每个任务规模较小,每个任务更容易编码和调试,其质量也更容易得到保证。码和调试,其质量也更容易得到保证。l不少应用本身就是由多个任务构成的,采用不少应用本身就是由多个任务构成的,采用多任务的处理方式
12、是应用问题的一个非常自多任务的处理方式是应用问题的一个非常自然的解决方式。然的解决方式。l任务之间具有较高的独立性,耦合性小,通任务之间具有较高的独立性,耦合性小,通过增加新的任务就能方便地扩充系统功能。过增加新的任务就能方便地扩充系统功能。l实时性强,保证紧急事件得到优先处理成为实时性强,保证紧急事件得到优先处理成为可能。可能。15进程进程l进程的定义主要包括以下内容:进程的定义主要包括以下内容:一个正在执行的程序;一个正在执行的程序;计算机中正在运行的程序的一个实例;计算机中正在运行的程序的一个实例;可以分配给处理器,并由处理器执行的一个实可以分配给处理器,并由处理器执行的一个实体;体;由
13、一个顺序的执行线程、一个当前状态和一组由一个顺序的执行线程、一个当前状态和一组相关的系统资源所刻画的活动单元。相关的系统资源所刻画的活动单元。l进程由代码、数据、堆栈和进程控制块进程由代码、数据、堆栈和进程控制块PCB构成。构成。16任务任务 l任务定义任务定义 任务是一个具有独立功能的无限循环的程序段的一任务是一个具有独立功能的无限循环的程序段的一次运行活动,是操作系统调度的单位。具有动态性、次运行活动,是操作系统调度的单位。具有动态性、并行性和异步独立性。并行性和异步独立性。动动态态性性:任任务务状状态态是是不不断断变变化化的的。任任务务状状态态一一般般分分为为就就绪绪态态(ready),
14、运运行行态态(running),阻阻塞塞态态(wait/suspended)。)。并并行行性性:系系统统中中同同时时存存在在多多个个任任务务,它它们们宏宏观观上上是同时运行的是同时运行的异异步步独独立立性性:每每个个任任务务各各自自按按相相互互独独立立的的不不可可预预知的速度运行,走走停停。知的速度运行,走走停停。17程序与任务之间的区别程序与任务之间的区别l任务更能真实地描述并发,而程序不能任务更能真实地描述并发,而程序不能l任务是由程序和数据两部分组成的任务是由程序和数据两部分组成的l程序是静态的,任务是动态的程序是静态的,任务是动态的l任务有生命周期,有诞生有消亡,短暂的;而程任务有生命
15、周期,有诞生有消亡,短暂的;而程序是相对长久的序是相对长久的l一个程序可对应多个任务,反之亦然一个程序可对应多个任务,反之亦然l任务具有创建其他任务的功能,而程序没有任务具有创建其他任务的功能,而程序没有18l任务组成任务组成代码(如:代码(如:Code)数据(如:数据(如:DATA、BSS)堆栈(用户堆栈、核心堆栈)堆栈(用户堆栈、核心堆栈)任务控制块任务控制块TCB任务标识、任务优先级任务标识、任务优先级任务状态和控制信息任务状态和控制信息保存保存CPU的现场的现场任务任务 19内核代码内核代码多任务模型多任务模型内核数据内核数据栈栈数据数据任务任务控制块控制块栈栈任务任务控制块控制块栈栈
16、任务任务控制块控制块代码代码代码代码代码代码数据数据数据数据20任务参数任务参数l任务的特性可以通过优先级、周期、计算时间、任务的特性可以通过优先级、周期、计算时间、就绪时间和截止时间等参数来进行描述。就绪时间和截止时间等参数来进行描述。任务优先级表示任务对应工作内容在处理上的优先程任务优先级表示任务对应工作内容在处理上的优先程度。优先级越高,表明任务越需要得到优先处理。任度。优先级越高,表明任务越需要得到优先处理。任务优先级分为静态优先级和动态优先级。静态优先级务优先级分为静态优先级和动态优先级。静态优先级表示任务的优先级被确定后,在系统运行过程中将不表示任务的优先级被确定后,在系统运行过程
17、中将不再发生变化;动态优先级则意味着在系统的运行过程再发生变化;动态优先级则意味着在系统的运行过程中,任务的优先级是可以动态变化的。中,任务的优先级是可以动态变化的。周期是周期任务所具有的参数,表示任务周期性执行周期是周期任务所具有的参数,表示任务周期性执行的间隔时间。的间隔时间。任务的计算时间是指任务在特定硬件环境下被完整执任务的计算时间是指任务在特定硬件环境下被完整执行所需要的时间,也被称为任务的执行时间。行所需要的时间,也被称为任务的执行时间。21任务参数任务参数l任务的特性可以通过优先级、周期、计任务的特性可以通过优先级、周期、计算时间、就绪时间和截止时间等参数来算时间、就绪时间和截止
18、时间等参数来进行描述。进行描述。任务的就绪时间表示任务具备了在处理器上任务的就绪时间表示任务具备了在处理器上被执行所需要的条件时的时间。被执行所需要的条件时的时间。任务的截止时间意味着任务需要在该时间到任务的截止时间意味着任务需要在该时间到来之前被执行完成。截止时间可以通过绝对来之前被执行完成。截止时间可以通过绝对截止时间和相对截止时间两种方式来表示,截止时间和相对截止时间两种方式来表示,相对截止时间为任务的绝对截止时间减去任相对截止时间为任务的绝对截止时间减去任务的就绪时间。务的就绪时间。22l任务状态任务状态多多任任务务系系统统中中任任务务参参与与资资源源竞竞争争,处处理理器器资资源在任务
19、之间分配,任务状态在不断的变化源在任务之间分配,任务状态在不断的变化不不同同的的内内核核实实现现对对任任务务状状态态的的定定义义不不尽尽相相同同,但是都可以概括为以下三种状态:但是都可以概括为以下三种状态:执行态:当前占有执行态:当前占有CPU的任务状态的任务状态 就就绪绪态态:一一旦旦获获得得CPU就就能能执执行行的的任任务务状状态态 阻阻塞塞态态:由由于于资资源源条条件件未未满满足足,没没有有资资格格竞争竞争CPU的任务状态的任务状态 任务 23任务状态就绪就绪执行执行阻塞阻塞24任务任务l任务的上下文和上下文切换任务的上下文和上下文切换 任任务务的的上上下下文文记记录录了了该该任任务务的
20、的执执行行环环境境(如如,寄寄存器的内容)。存器的内容)。针针对对不不同同体体系系结结构构的的处处理理器器,任任务务的的上上下下文文有有不不同的定义。同的定义。任任务务的的上上下下文文切切换换表表示示当当前前执执行行任任务务在在将将处处理理器器的的控控制制权权交交给给即即将将运运行行的的任任务务之之前前,把把它它的的执执行行环环境境(该该任任务务的的上上下下文文)保保存存到到相相应应的的数数据据结结构构中,用即将运行任务的上下文重新布置执行环境。中,用即将运行任务的上下文重新布置执行环境。25任务管理机制任务管理机制l任务管理用来实现对任务状态的直接控制和访问,任务管理用来实现对任务状态的直接
21、控制和访问,实时内核的任务管理是通过系统调用来实现的,这实时内核的任务管理是通过系统调用来实现的,这些系统调用主要包括任务创建、任务删除、任务挂些系统调用主要包括任务创建、任务删除、任务挂起、任务唤醒和设置任务属性等内容。起、任务唤醒和设置任务属性等内容。任务创建:为任务分配和初始化相关的数据结构。任务创建:为任务分配和初始化相关的数据结构。l获得任务控制块获得任务控制块TCB;l根据实时内核用户提供的信息初始化根据实时内核用户提供的信息初始化TCB;l为任务分配一个可以唯一标识任务的为任务分配一个可以唯一标识任务的ID;l使任务处于就绪状态,把任务放置到就绪队列;使任务处于就绪状态,把任务放
22、置到就绪队列;l进行任务调度处理。进行任务调度处理。26任务删除:实时内核根据任务创建时获得的任务删除:实时内核根据任务创建时获得的ID删删除指定的任务。除指定的任务。l根据指定的根据指定的ID,获得对应任务的,获得对应任务的TCB;l把任务的把任务的TCB从队列中取出来,挂入空闲从队列中取出来,挂入空闲TCB队列;队列;l释放任务所占用的资源。释放任务所占用的资源。任务挂起:根据任务的任务挂起:根据任务的ID把指定任务挂起,直到把指定任务挂起,直到通过唤醒任务对任务进行解挂。通过任务挂起,通过唤醒任务对任务进行解挂。通过任务挂起,一个任务可以把自己挂起。一个任务可以把自己挂起。l根据指定的根
23、据指定的ID,获取对应任务的,获取对应任务的TCB;l把任务的状态变为等待状态,并把把任务的状态变为等待状态,并把TCB放置到等待队放置到等待队列;列;l如果任务自己挂起自己,则进行任务调度。如果任务自己挂起自己,则进行任务调度。任务管理机制任务管理机制27任务唤醒:根据任务任务唤醒:根据任务ID解挂指定的任务。解挂指定的任务。l根据指定的根据指定的ID,获得对应任务的,获得对应任务的TCB;l如果任务在等待其他资源,任务将仍然处于等如果任务在等待其他资源,任务将仍然处于等待状态;否则,把任务的状态变为就绪状态,待状态;否则,把任务的状态变为就绪状态,并把并把TCB放置到就绪队列;放置到就绪队
24、列;l进行任务调度。进行任务调度。任务睡眠:使当前任务睡眠一段指定的时间,时任务睡眠:使当前任务睡眠一段指定的时间,时间到后,任务又重新回到就绪状态。间到后,任务又重新回到就绪状态。l修改任务状态,把任务状态变为等待状态;修改任务状态,把任务状态变为等待状态;l把任务把任务TCB放置到时间等待链放置到时间等待链l进行任务调度。进行任务调度。任务管理机制任务管理机制28关于任务扩展:以便于应用能够向系统中添加一关于任务扩展:以便于应用能够向系统中添加一些关于任务的附加操作,为应用提供在系统运行些关于任务的附加操作,为应用提供在系统运行的关键点上进行干预的手段。的关键点上进行干预的手段。l任务扩展
25、的时机:任务创建时、任务删除时、任务扩展的时机:任务创建时、任务删除时、任务上下文切换时。任务上下文切换时。l任务扩展功能可通过任务扩展表或是单独应用任务扩展功能可通过任务扩展表或是单独应用编程接口的方式来实现。编程接口的方式来实现。l任务扩展表用来存放实现任务扩展处理的例程,任务扩展表用来存放实现任务扩展处理的例程,实时内核通过查找任务扩展表来获取扩展处理实时内核通过查找任务扩展表来获取扩展处理的入口函数。的入口函数。任务管理机制任务管理机制29任务管理机制任务管理机制任务变量:某些例程可能同时被多个任务调用,任务变量:某些例程可能同时被多个任务调用,每个调用任务又期望例程中的全局或是静态变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 软件
限制150内