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