《嵌入式第五章(1).ppt》由会员分享,可在线阅读,更多相关《嵌入式第五章(1).ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1信息学院第五章嵌入式实时操作系统2信息学院对嵌入式系统而言,ERTOS的引入会带来很多好处。(1)标准化的任务管理机制,可以提升开发单位的管理水平和开发人员的业务素质。(2)完整的应用编程接口API,可以大大简化应用编程,提高系统的可靠性。(3)使得应用软件与下层硬件环境无关,便于嵌入式软件系统的移植。(4)可以直接使用许多应用编程中间件,增强了嵌入式系统软件的复用能力,又降低了开发成本。3信息学院最初的嵌入式系统软件只是一个单循环轮询系统,稍微复杂的是带监控的前后台系统。如单片机,基于微处理器直接编程,不需操作系统支持,仍有很大市场。随着嵌入式操作系统在复杂性上的增长,系统中需要管理的资源
2、越来越多,如存储器、外设、网络协议栈、多任务、多处理器等。4信息学院嵌入式实时操作系统,嵌入到具体的器件当中,需要实时。RTOS是功能强大的主控程序,嵌入在目标代码中,系统复位后首先执行;相当于用户的主程序,用户的其它应用程序都建立在RTOS之上。RTOS还是一个标准的内核,将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。5信息学院嵌入式操作系统构成示意图一台等价的扩展计算机6信息学院核心内容RTOS的特点RTOS的体系结构实时内核RTOS的扩展组件7信息学院5.1RTOS的关键概念上下文切换(Conte
3、xtSwitching)优先级驱动(PriorityDriven)优先级逆转(PriorityInversion)优先级继承(PriorityInheritance)8信息学院上下文切换(ContextSwitching)多任务系统中,上下文切换是指CPU的控制权由运行任务转移到另外一个就绪任务时所发生的事件,当前运行任务转为就绪(挂起、睡眠或阻塞)状态,另一个被选定的就绪任务成为当前任务。上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境。上下文的内容依赖于具体的CPU。9信息学院优先级驱动(PriorityDriven)在一个多任务系统中,正在运行的事务总是最高优先级的任务;
4、在任何给定的时间,总是把微处理器分配给最高优先级的就绪任务。5.1RTOS的关键概念优先级逆转(PriorityInversion)当一个任务等待比它优先级低的任务释放资源而被阻塞时,产生优先级逆转,即优先级低的任务阻塞了优先级高的任务,这是实时系统中发生死锁的原因之一。10信息学院优先级继承(PriorityInheritance)优先级继承是解决优先级逆转的技术。当优先级逆转发生时,较低优先级任务的优先级被暂时提高,以匹配较高优先级任务的优先级,这样就可以使较低优先级任务尽快执行并释放较高优先级任务所需资源,在一定程度上可以避免死锁的发生。5.1RTOS的关键概念11信息学院5.2RTOS
5、的特点及时性(Timeliness)是最基本的特点,主要任务是对外部事件做出实时响应,即使在峰值负载下。分类三种:(1)硬实时(HardReal-Time),系统响应时间必须小于规定的时间限制(Deadline)。(2)软实时(SoftReal-Time),不会影响正常工作。(3)严格实时(FirmReal-Time),介于以上两种方法之间,对于既需要软实时和分时(操作系统服务)又需要硬实时(时间约束)的应用,如多媒体和网络。12信息学院(2)在规定的时序范围内,有多少外部事件可以到达必须是可预测的。(3)对系统资源占用的确定化。可确定性(Deterministic)系统在运行过程中,(1)系
6、统调用的时间可以预测,最大执行时间可以确定。截止时间(deadline)作为指标。13信息学院并发性(concurrence)在复杂的实时系统中,外部事件的到达是随机的,因此某一时刻可能有多个外部事件到达,RTOS需要同时激活多个任务处理对于外部的请求。一般情况下,实时系统采用多任务机制或多处理机结构解决并发性问题,RTOS用相应的管理。14信息学院高可信性(1)可靠性(Reliability)一定时期内不发生故障的概率。(2)鲁棒性(Robustness)容错处理和出错自动恢复。(3)防危性(Safety)关心引起危险的软件故障。15信息学院安全性网络设备(路由器、交换机)等基础设备安全性。
7、常用RTOS法则:将RTOS与上层应用软件捆绑成一个完整的可执行程序,下载到目前的系统中;当目标系统启动时,首先引导RTOS执行,再控制管理其他应用软件模块。可嵌入性(Embeddedability)因为RTOS及其应用软件要嵌入到具体的设备或仪器中,必须体积够小。16信息学院可剪裁性(Tailorability)由于资源有限,RTOS不能装载大量功能模块,所以必须可剪裁,只要够用即可。可扩展性(Extensibility)包括功耗控制、动态加载、嵌入式文件系统、嵌入式GUI系统、嵌入式数据库系统。17信息学院5.4RTOS的体系结构:整体结构18信息学院系统模式可访问任何空间,可执行任何操作
8、用户模式系统空间受到保护,并且有些操作受到限制。有了RTOS就为嵌入式应用提供了完整的平台。整体式内核结构的操作系统实质上“无结构”。操作系统功能由一系列模块堆砌而成,模块之间相互调用,不分层次,形成网状调用模式。整体式内核结构的操作系统不进行任何的数据封装和隐藏,在具有较高效率的同时,存在着难以扩展和升级的缺点。19信息学院网状调用无结构20信息学院5.4RTOS的体系结构:层次结构21信息学院层次式内核结构的操作系统将模块功能划分为不同层次,下层模块封装内部细节,上层模块调用下层模块提供的接口。每一层对上一层像一个虚拟计算机。每层之间划分为一个或多个模块(又称组件)。22信息学院内核位于R
9、TOS的最底层,在某些简单的实时系统中,内核是唯一的层。内核最基本的任务是任务切换。内核的运行与操作密不可分。23信息学院不管整体式结构,还是层次式结构,它们的操作系统都包括了许多将其用于各种可能领域时需要的功能,故被称为宏内核操作系统,以至可以认为该内核本身便是一个完整的操作系统。比如UNIX,其内核包括了进程管理、文件系统、设备管理、网络通信等功能,用户层仅仅提供一个操作系统外壳和一些实用工具程序。24信息学院5.4RTOS的体系结构:微内核结构25信息学院微内核并不是通过减少内核的服务功能模块而变小的,而是把内核中应提供的部分服务功能模块移到内核外来实现的。要求服务的进程有服务要求时,仍
10、然是通过系统调用接口向内核提出服务申请,而系统调用接口接收到该申请后,则立即通过向内核外的服务进程发送一个消息来启动这个服务进程,从而为要求服务的进程提供了相应的服务。26信息学院把要求服务的进程叫做“客户”,把提供服务的进程叫做“服务器”,这种微内核结构也叫做“客户服务器”C/S结构。27信息学院5.6RTOS的体系结构:构件协作关系28信息学院其他体系结构共享数据:消息队列、信号标志、非模块化的同步设计等,用同步机制管理。分类:内核不可抢占和内核可抢占式。1.抢占式多任务结构保证实时性,先执行高优先级任务。在此结构中,为了保证一个任务的执行不破坏另一个任务的执行环境,需要将各个任务隔离;2
11、9信息学院解决新问题:(1)改写操作系统内核,提供实时性、安全性、可靠性等所需要的支持;(2)采用双核或多核体系结构,每个内核可支持一种特性。30信息学院2.双核或多核结构原操作系统既保证实时性,又不浪费资源31信息学院1商业系统Vxworks,WindowsCE2专用系统3开放系统Linux(RTlinux,uClinux)5.5RTOS分类32信息学院RTOS最关键的部分是实时多任务内核。一系列的管理功能都是由内核系统调用的形式交给用户。5.6实时内核内核将某种调度算法加入到这些任务的执行中,使每个任务拥有自己的上下文,包括CPU执行环境和系统资源。这种内核调度机制是任务运行时所必需的。一
12、个多任务环境允许将实时运用构造成一套独立的任务集合,每个任务拥有各自的执行进程和系统资源,这些任务共同合作来实现整个系统的功能。33信息学院任务控制块(TCB)RTOS在进行任务管理时,每个任务的上下文(当前状态)都保存在TCB中,包括:CPU寄存器、任务代码执行点指针、任务优先级、任务使用的内存块指针、动态变量和函数调用的堆栈、标准输入输出、出错的I/O分配以及相关的时间约束等。5.6实时内核34信息学院任务控制块(TCB)5.6实时内核固定的时间间隔实时任务的要求35信息学院内核最基本的功能是任务切换也可称为上下文切换。任务的切换过程实质上是对TCP的改写过程,其中一项最重要的工作是保存当
13、前任务的执行状态。通常,当前任务的执行状态存储在堆栈中,保存了所有相关寄存器的值。任务切换时,将堆栈中相关寄存器值取出,存入TCB中;同样将代执行任务TCB中的寄存器信息取出,设置到堆栈中,完成切换。任务切换36信息学院任务状态当前任务正在执行待用完成挂起任务处在就绪队列中或唤醒任务所占资源不释放,发生时系统状态被保存37信息学院任务调度5.6实时内核对处于运行状态和就绪状态的任务进行CPU使用权的分配与再分配,称为调度。RTOS的调度增加了严格时间要求,对进入系统的、含有前驱与后继关系、资源要求、任务特征以及时间特征等信息的任务进行合理的CPU及其他相关资源的分配。包括给任务分配优先级。38
14、信息学院大多数RTOS提供抢占式和非抢占式两种调度策略。采用机制与策略分离调度原则。以下调度策略:任务调度静态调度表驱动基于优先级的调度可抢占的调度非抢占的调度时间片的调度39信息学院指在系统运行前根据各任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表。静态调度表驱动这张运行时刻表与列车运行时刻表类似,指明了各任务的起始运行时刻及运行时间。运行时刻表一旦生成就不再发生变化了。在系统运行时,调度器只需根据这张时刻表启动相应的任务即可。40信息学院优先级驱动策略指按照任务优先级的高低确定任务的执行顺序。优先级驱动策略又分为静态优先级调度策略和动态优先级调度策略。基于优先级的调度静态优先级调度是指任务的优先级分配好之后,在任务的运行过程中,优先级不会发生改变。静态优先级调度又称为固态优先级调度。动态优先级调度是指任务的优先级可以随着时间或系统状态的变化而发生变化。41信息学院任务队列5.6实时内核在RTOS中,任务调度的操作同样是针对队列进行的,任务的每一种状态对应一个队列,最核心是就绪队列。两个基本队列:就绪和等待队列。42信息学院5.6实时内核可以多极也可以单一,多极队列管理复杂,但查找任务方便获得资源