嵌入式操作系统的内核教学教材.ppt
《嵌入式操作系统的内核教学教材.ppt》由会员分享,可在线阅读,更多相关《嵌入式操作系统的内核教学教材.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式操作系统的内核嵌入式操作系统技术现状嵌入式操作系统技术现状 v适应不同的嵌入式硬件平台,具有可移适应不同的嵌入式硬件平台,具有可移植、可伸缩能力植、可伸缩能力。v采用的主要技术:编程语言普遍采用高级语言实现,主要以C语言为主。体系结构采用分层和模块化结构或微内核结构。嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v分层和模块化结构分层和模块化结构,将操作系统分为:v硬件无关层v硬件抽象层v硬件相关层每层再划分功能模块移植工作集中在硬件相关层硬件相关层,与其余两层无关功能的伸缩集中在模块上,从而确保了系统具有良好的可移植性和可伸缩性。嵌入式操作系统技术现状(续)嵌入式操作系统技术
2、现状(续)v良好的实时性良好的实时性:时间确定性是嵌入式实时操作系统必备的特点,特别对于强实时嵌入式系统而言尤为重要。v采用的主要技术:采用实时调度算法。主要采用静态优先级的可抢占式调度、比率单调算法等。采用内存静态分配策略和零拷贝技术保证确定性。内存管理不采用虚存管理机制采用优先级继承和优先级天花板两种技术解决优先级反转(倒置)问题 嵌入式操作系统技术现状(续)嵌入式操作系统技术现状(续)v可靠性和高可用 v采用的主要技术:利用存储管理单元(MMU)、用户态和核心态机制,实现操作系统与应用程序的隔离,以及应用程序和应用程序之间的隔离,以防止应用程序破坏操作系统的代码、数据。嵌入式操作系统的发
3、展趋势嵌入式操作系统的发展趋势嵌入式操作系统的发展趋势嵌入式操作系统的发展趋势v体系结构向微内核方向发展可伸缩、可移植、可剪裁、可配置v行业的标准:多种操作系统平台,应用决定操作系统v结构紧凑、功能强大v高可用(High Available)、高可靠(High Reliable)、支持多处理器和分布式计算v可动态加载和升级软件v与开发工具有机的结合起来行业标准行业标准v行业性嵌入式软硬件平台v嵌入式系统是以应用为中心的系统,不会象PC一样只有一种平台v吸取PC的成功经验,形成不同行业的标准。v统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品
4、竞争能力的有效手段。1.嵌入式实时系统基础 v实时计算(real-time computing)是许多重要应用领域中的关键技术。这些领域包括:过程控制、核电站、智能车辆公路系统、航空、飞行控制、通信、多媒体、办公自动化、自动化控制、计算机外设、消费电子、实时模拟、虚拟现实、医疗应用和军事等。几乎所有的安全关键(safety critical)系统和许多嵌入式计算机系统都是实时系统。实时计算正变得越来越重要和普遍。1s100ms10ms1ms100us10us1us语音和声音系统飞行模拟过程模拟和网络控制遥感勘测控制地震分析机器人控制器过程控制系统和工业自动化医疗诊断和实验自动化火警系统图2-1
5、实时应用对响应时间的需求2.嵌入式实时操作系统及发展 v广泛使用的有三种操作系统即多道批处理操作系统、分时操作系统以及实时操作系统。v 多道批量处理系统一般用于计算中心较大的计算机系统中。由于它的硬件设备比较全,价格较高,所以此类系统十分注意CPU及其它设备的充分利用,追求高的吞吐量,不具备实时性。分时系统的主要目的是让多个计算机用户能共享系统的资源,能及时地响应和服务于联机用户,只具有很弱的实时功能,IEEE的实时UNIX分委会认为实时操作系统应具备以下的几点:1.异步的事件响应2.切换时间和中断延迟时间确定3.优先级中断和调度4.抢占式调度5.内存锁定6.连续文件7.同步嵌入式操作系统v嵌
6、入式操作系统常常有实时要求早期:嵌入式操作系统=实时操作系统近期:v1)手持计算机和掌上计算机的出现;v2)CPU速度的提高;v3)常规操作系统增加实时进程调度的支持,如POSIX.4 嵌入式操作系统 实时操作系统实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统 嵌入式实时操作系统的发展 嵌入式实时操作系统得到飞速的发展,从支持8位微处理器到16位、32位甚至64位,从支持单一品种的微处理器芯片到支持多品种微处理器芯片,从只有实时内核到除了内核外还提供其他功能模块如:高速文件系统,TCP/IP网络系统,窗口系统。v嵌入式操作系统从八十年代初出现商业化产品,经过近二十年的发展,到目
7、前为止,国际市场上已出现了近百个嵌入式操作系统家族,支持不同处理器的200多个产品。Wind River公司的VxWorks pSOS+Microtec Research公司(MRI)的VRTX 弱实时 强实时 3 COM的PalmOS、微软的Windows CE、版本众多的嵌入式Linux。嵌入式实时操作系统正向实时超微内核、定制化(ASOS)和支持无线网络、低功耗及动态加载等方向发展。超微内核是一种非常紧凑的基本内核代码层,为嵌入式应用提供了可抢占,快而确定的实时服务,在它的基础上可以灵活地构造各种类型的、与现成系统兼容的、可伸缩的嵌入式实时操作系统。因此能满足应用代码的可重用和可伸缩性(
8、scalability)的需求。v DeltaCORE2.0是一个强实时、嵌入式多任务操作系统内核。其目标CPU为Intel 80 x86,ARM,MPC860,MIPS运行方式为平面保护模式(flat protected mode),适用于内存要求较大、可靠性要求较高的嵌入式系统。v DeltaCORE2.0的任务响应时间快速、确定,并且不随负载大小改变。DeltaCORE2.0提供任务扩展处理接口,用户可以通过这些接口扩展内核处理任务的功能。DeltaCORE2.0绝大部分源代码用C语言编写,具有良好的可移植性。DeltaCORE2.0提供系统配置表,用户可以根据应用的具体情况配置内核的规
9、模。1.4.1任务管理任务的定义有多种提法,常用的有以下几种:-一个可调度的单元-可获得处理器的实体-并发系统中互相竞争资源的单个执行体-可以与其它计算序列并发执行的计算序列。具有独立功能的无限循环的程序段的一次运行活动不同的内核实现对任务状态的定义不尽相同,但是都可以概括为以下三种状态:-执行态E 当前占有CPU的任务状态-就绪态R 一旦获得CPU就能执行的任务状态-阻塞态B 由于资源条件未满足,没有资格竞争CPU的任务状态ERB任务状态的变迁图任务的上下文和上下文切换任务的上下文和上下文切换 任务的上下文记录了该任务的执行环境(如,寄存器的内容)。针对不同体系结构的处理器,任务的上下文有不
10、同的定义。任务的上下文切换表示当前执行任务在将处理器的控制权交给即将运行的任务之前,把它的执行环境(该任务的上下文)保存到相应的数据结构中,用即将运行任务的上下文重新布置执行环境。任务响应 任务响应是指从任务就绪到它真正开始运行这一过程。任务响应时间又称调度延迟(scheduling latency),表示完成这一过程需要的时间。任务调度的概念 任务调度就是从就绪状态的任务中,挑选一个任务到处理器上运行。操作系统中负责任务调度的程序称为任务调度程序(scheduler)或任务调度器(dispatch)。实时操作系统内核常用的几种任务调度算法 v 优先级调度算法 优先级调度就是让高优先级的任务优
11、先得到处理的调度策略。1不可抢占调度(non-preemptive scheduling)系统中,一旦某个任务占有了处理器就一直运行下去,直到该任务由于自身的原因(如等待事件)自愿放弃处理器,任务调度程序才按优先级进行重调度,让其它任务运行。任务在运行过程中只能被中断打断(抢占)。任务1任务2任务3优先级高低时间一个不可抢占调度的示例任务2就绪任务3就绪2可抢占调度(preemptive scheduling)v任何时刻都严格按照高优先级任务在处理器上运行的原则进行任务调度,或者说,在处理器上运行的任务永远是就绪任务中优先级最高的任务。任务1任务2任务1任务3任务2优先级高低时间可抢占调度的一
12、个示例任务2就绪任务3就绪v同优先级任务的时间片轮转调度算法 时间片轮转调度算法是指当有两个或多个就绪任务具有相同的优先级且它们是就绪任务中优先级最高的任务时,任务调度程序按照这组任务就绪的先后次序调度第一个任务,让它运行一段时间。运行的这段时间称为时间片(time slicing)。当任务运行完一个时间片后,该任务即使还没有停止运行,也必须释放处理器让下一个与它相同优先级的任务运行(假设这时没有更高优先级的任务就绪)。释放处理器的任务被排到同优先级就绪任务链的链尾,等待再次运行。可抢占调度和时间片轮转调度并存的一个示例t1t3t2t1t2t2优先级高低时间任务3就绪一种嵌入式操作系统的任务调
13、度机制v就绪任务队列链组就绪任务队列链组 建立一个新任务通过系统调用task_create,系统会为这个新任务分配一个任务控制块,并完成一系列的初始化的操作,如设置任务调度方式,分配任务堆栈空间等,然后调用task_start,使得任务的状态变为就绪态建立一个链表数组_Thread_Ready_chain255,数组的长度为255,分别代表优先级为从1到255的(0级被系统保留)255个就绪任务队列链。如新任务1的优先级为30,如果它的状态变为就绪态,则把它的任务控制块挂接到链表_Thread_Ready_chain30中。优先级位图算法优先级位图算法 v在进行任务重调度时,要从所有就绪任务中
14、找出优先级最高的那个任务。所以要在发生任务调度之前,先计算好_Thread_Heir,使继承任务为优先级最高的那个任务。但为了保证调度时间的确定性,采用优先级位图算法迅速计算优先级最高的任务,做到调度时间与就绪任务数无关。v优先级位图算法通过两个数据结构_the_Priority_map和_Priority_Major_bit_map来计算优先级最高的就绪任务。_the_Priority_map定义为一个无符号短整型数组,大小为16。无符号短整型长度为16比特,其中的每一位都表示一个优先级,若为1,表示相应的优先级上有任务已经处于就绪态(不一定只有一个任务),若为0,则相应的优先级上没有任务就
15、绪。无符号短整型由16位比特组成,数组的大小又为16,所以一共可以表示256个优先级(其中0级为系统保留)。位图_the_Priority_map _Priority_Major_bit_map 使用了一个无符号的16位短整型_Priority_Major_bit_map来表示相应的优先级组中是否有任务就绪,为1则表示该组中有任务就绪。寻找优先级最高的任务即成为先通过_Priority_Major_bit_map计算有就绪任务的最高优先级组,再根据找到的组号到位图_the_Priority_map相应的组中寻找有就绪任务的这组中的最高的优先级,最后根据这个优先级到就绪任务队列链组中寻找相应的就
16、绪任务队列链,得到链首任务的任务控制块,这就是继承任务,把它赋值给_Thread_Heir。任务调度任务调度v当发生任务调度的时候,通过调用函数_Thread_Dispatch()来完成。v_Thread_Executing和_Thread_Heir是两个重要的指针常量,_Thread_Executing指向当前正在运行的任务的任务控制块,_Thread_Heir指向下一个应该得到运行的任务的任务控制块,void _Thread_Dispatch(void)关中断;通过常量_Thread_Executing和_Thread_Heir得到进行调度的两个任务的任务控制块;转变任务常量等一系列的操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 操作系统 内核 教学 教材
限制150内