




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.3嵌入式操作系统,嵌入式操作系统发展,近十年来,嵌入式操作系统得到飞速的发展 从支持8位微处理器到16位、32位甚至64位微处理器; 从支持单一品种的微处理器芯片到支持多品种微处理器芯片; 从只有内核到除了内核外还提供其他功能模块,如文件系统,TCP/IP网络系统,窗口图形系统等。,嵌入式操作系统技术现状,适应不同的嵌入式硬件平台,具有可移植、可伸缩能力。 采用的主要技术: 编程语言普遍采用高级语言实现,主要以C语言为主。 体系结构采用分层和模块化结构或微内核结构。,嵌入式操作系统技术现状(续),分层和模块化结构,将操作系统分为: 硬件无关层 硬件抽象层 硬件相关层 每层再划分功能模块 移植工作集中在硬件相关层,与其余两层无关 功能的伸缩集中在模块上,从而确保了系统具有良好的可移植性和可伸缩性。,嵌入式操作系统技术现状(续),良好的实时性:时间确定性是嵌入式实时操作系统必备的特点,特别对于强实时嵌入式系统而言尤为重要。 采用的主要技术: 采用实时调度算法。主要采用静态优先级的可抢占式调度、比率单调算法等。 采用内存静态分配策略和零拷贝技术保证确定性。 内存管理不采用虚存管理机制 采用优先级继承和优先级天花板两种技术解决优先级反转(倒置)问题,嵌入式操作系统技术现状(续),可靠性和高可用 采用的主要技术: 利用存储管理单元(MMU)、用户态和核心态机制,实现操作系统与应用程序的隔离,以及应用程序和应用程序之间的隔离,以防止应用程序破坏操作系统的代码、数据。,嵌入式操作系统的发展趋势,体系结构向微内核方向发展 可伸缩、可移植、可剪裁、可配置 行业的标准:多种操作系统平台,应用决定操作系统 结构紧凑、功能强大 高可用(High Available)、高可靠(High Reliable )、支持多处理器和分布式计算 可动态加载和升级软件 与开发工具有机的结合起来,行业标准,行业性嵌入式软硬件平台 嵌入式系统是以应用为中心的系统,不会象PC一样只有一种平台 吸取PC的成功经验,形成不同行业的标准。 统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段。,1.嵌入式实时系统基础,实时计算(real-time computing)是许多重要应用领域中的关键技术。这些领域包括:过程控制、核电站、智能车辆公路系统、航空、飞行控制、通信、多媒体、办公自动化、自动化控制、计算机外设、消费电子、实时模拟、虚拟现实、医疗应用和军事等。几乎所有的安全关键(safety critical)系统和许多嵌入式计算机系统都是实时系统。实时计算正变得越来越重要和普遍。,2.嵌入式实时操作系统及发展,广泛使用的有三种操作系统即多道批处理操作系统、分时操作系统以及实时操作系统。 多道批量处理系统一般用于计算中心较大的计算机系统中。由于它的硬件设备比较全,价格较高,所以此类系统十分注意CPU及其它设备的充分利用,追求高的吞吐量,不具备实时性。分时系统的主要目的是让多个计算机用户能共享系统的资源,能及时地响应和服务于联机用户,只具有很弱的实时功能,,IEEE的实时UNIX分委会认为实时操作系统应具备以下的几点: 1.异步的事件响应 2.切换时间和中断延迟时间确定 3.优先级中断和调度 4.抢占式调度 5.内存锁定 6.连续文件 7.同步,嵌入式操作系统,嵌入式操作系统常常有实时要求 早期:嵌入式操作系统 = 实时操作系统 近期: 1)手持计算机和掌上计算机的出现; 2)CPU速度的提高; 3)常规操作系统增加实时进程调度的支持,如POSIX.4 嵌入式操作系统 实时操作系统,实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统,嵌入式实时操作系统的发展,嵌入式实时操作系统得到飞速的发展,从支持8位微处理器到16位、32位甚至64位,从支持单一品种的微处理器芯片到支持多品种微处理器芯片, 从只有实时内核到除了内核外还提供其他功能模块如:高速文件系统,TCP/IP网络系统,窗口系统。,嵌入式操作系统从八十年代初出现商业化产品,经过近二十年的发展,到目前为止,国际市场上已出现了近百个嵌入式操作系统家族,支持不同处理器的200多个产品。,Wind River公司的VxWorks,pSOS+,Microtec Research公司(MRI)的VRTX,弱实时,强实时,3 COM的PalmOS、 微软的Windows CE、 版本众多的嵌入式Linux。,嵌入式实时操作系统正向实时超微内核、定制化(ASOS)和支持无线网络、低功耗及动态加载等方向发展。,超微内核是一种非常紧凑的基本内核代码层, 为嵌入式应用提 供了可抢占, 快而确定的实时服务, 在它的基础上可以灵活地构 造各种类型的、与现成系统兼容的、可伸缩的嵌入式实时操作 系统。因此能满足应用代码的可重用和可伸缩性(scalability)的需求。,DeltaCORE2.0是一个强实时、嵌入式多任务操作系统内核。其目标CPU为Intel 80x86,ARM,MPC860,MIPS运行方式为平面保护模式(flat protected mode),适用于内存要求较大、可靠性要求较高的嵌入式系统。 DeltaCORE2.0的任务响应时间快速、确定,并且不随负载大小改变。DeltaCORE2.0提供任务扩展处理接口,用户可以通过这些接口扩展内核处理任务的功能。DeltaCORE2.0绝大部分源代码用C语言编写,具有良好的可移植性。DeltaCORE2.0提供系统配置表,用户可以根据应用的具体情况配置内核的规模。,1.4.1 任务管理,任务的定义有多种提法,常用的有以下几种: - 一个可调度的单元 - 可获得处理器的实体 - 并发系统中互相竞争资源的单个执行体 可以与其它计算序列并发执行的计算序列。 具有独立功能的无限循环的程序段的一次运行活动,不同的内核实现对任务状态的定义不尽相同,但是都可以概括为以下三种状态: -执行态E 当前占有CPU的任务状态 -就绪态R 一旦获得CPU就能执行的任务状态 -阻塞态B 由于资源条件未满足,没有资格竞争CPU的任务状态,任务的上下文和上下文切换,任务的上下文记录了该任务的执行环境(如,寄存器的内容)。针对不同体系结构的处理器,任务的上下文有不同的定义。任务的上下文切换表示当前执行任务在将处理器的控制权交给即将运行的任务之前,把它的执行环境(该任务的上下文)保存到相应的数据结构中,用即将运行任务的上下文重新布置执行环境。,任务响应,任务响应是指从任务就绪到它真正开始运行这一过程。任务响应时间又称调度延迟(scheduling latency),表示完成这一过程需要的时间。,任务调度的概念,任务调度就是从就绪状态的任务中,挑选一个任务到处理器上运行。操作系统中负责任务调度的程序称为任务调度程序(scheduler)或任务调度器(dispatch)。,实时操作系统内核常用的几种任务调度算法,优先级调度算法 优先级调度就是让高优先级的任务优先得到处理的调度策略。 1不可抢占调度(non-preemptive scheduling) 系统中,一旦某个任务占有了处理器就一直运行下去,直到该任务由于自身的原因(如等待事件)自愿放弃处理器,任务调度程序才按优先级进行重调度,让其它任务运行。任务在运行过程中只能被中断打断(抢占)。,2可抢占调度(preemptive scheduling),任何时刻都严格按照高优先级任务在处理器上运行的原则进行任务调度,或者说,在处理器上运行的任务永远是就绪任务中优先级最高的任务。,同优先级任务的时间片轮转调度算法,时间片轮转调度算法是指当有两个或多个就绪任务具有相同 的优先级且它们是就绪任务中优先级最高的任务时,任务调度 程序按照这组任务就绪的先后次序调度第一个任务,让它运行 一段时间。运行的这段时间称为时间片(time slicing)。当任务 运行完一个时间片后,该任务即使还没有停止运行,也必须释 放处理器让下一个与它相同优先级的任务运行(假设这时没有 更高优先级的任务就绪)。释放处理器的任务被排到同优先级 就绪任务链的链尾,等待再次运行。,一种嵌入式操作系统的任务调度机制,就绪任务队列链组 建立一个新任务通过系统调用task_create,系统会为这个新任务分配一个任务控制块,并完成一系列的初始化的操作,如设置任务调度方式,分配任务堆栈空间等,然后调用task_start, 使得任务的状态变为就绪态,建立一个链表数组_Thread_Ready_chain255,数组的长度为 255,分别代表优先级为从1到255的(0级被系统保留)255个 就绪任务队列链。如新任务1的优先级为30,如果它的状态变为 就绪态,则把它的任务控制块挂接到链表_Thread_Ready_chain30中。,优先级位图算法,在进行任务重调度时,要从所有就绪任务中找出优先级最高的那个任务。所以要在发生任务调度之前,先计算好_Thread_Heir,使继承任务为优先级最高的那个任务。但为了保证调度时间的确定性,采用优先级位图算法迅速计算优先级最高的任务,做到调度时间与就绪任务数无关。,优先级位图算法通过两个数据结构_the_Priority_map和_Priority_Major_bit_map来计算优先级最高的就绪任务。_the_Priority_map定义为一个无符号短整型数组,大小为16。无符号短整型长度为16比特,其中的每一位都表示一个优先级,若为1,表示相应的优先级上有任务已经处于就绪态(不一定只有一个任务),若为0,则相应的优先级上没有任务就绪。无符号短整型由16位比特组成,数组的大小又为16,所以一共可以表示256个优先级(其中0级为系统保留)。,位图_the_Priority_map,_Priority_Major_bit_map,使用了一个无符号的16位短整型_Priority_Major_bit_map来表示 相应的优先级组中是否有任务就绪,为1则表示该组中有任务就绪。,寻找优先级最高的任务即成为先通过_Priority_Major_bit_map计算有就 绪任务的最高优先级组,再根据找到的组号到位图_the_Priority_map相应的组 中寻找有就绪任务的这组中的最高的优先级,最后根据这个优先级到就绪任务 队列链组中寻找相应的就绪任务队列链,得到链首任务的任务控制块,这就是 继承任务,把它赋值给_Thread_Heir。,任务调度,当发生任务调度的时候,通过调用函数_Thread_Dispatch()来完成。 _Thread_Executing和_Thread_Heir是两个重要的指针常量,_Thread_Executing指向当前正在运行的任务的任务控制块,_Thread_Heir指向下一个应该得到运行的任务的任务控制块,,void _Thread_Dispatch( void ) 关中断; 通过常量_Thread_Executing和_Thread_Heir得到进行调度的两个任务的任务控制块; 转变任务常量等一系列的操作; 执行任务上下文的切换函数_Context_Switch(运行任务,继承任务); 开中断; ,1.4.2 任务间同步、通信机制的分析,实时操作系统的内核一般通过信号量(semaphore)和事件(event)来满足同步的需要;通过消息机制(message queue)提供通信的服务。另外,有的操作系统内核还提供异步信号量机制(signal or asynchronous signal)、管道(pipe)和共享内存(shared memory)做为补充方式。,信号量机制,信号量用于实现任务之间、任务与中断服务程序之间的同步和任务之间的互斥。根据用途,信号量一般分为三种:用于解决互斥问题的互斥信号量、用于解决同步问题的二进制信号量和用于解决资源计数问题的计数信号量。其中互斥信号量比较特殊,存在的优先级反转问题。一般是通过解决它存在的优先级反转问题来解决资源竞争中存在的优先级反转问题。,简单二值信号量 仅用于实现同步机制,初始值为0。一个任务调用 delta_semaphore_obtain等待另一个任务的到来。另 一个任务到达同步点时,调用delta_semaphore_release 唤醒等待的任务。 一般二值信号量 可实现同步或者互斥机制。用于同步时初始值为0,用于互 斥时初始值为1。用于互斥机制时,任务进入保护区前,需 执行delta_semaphore_obtain防止其它任务进入,退出保护 区前,需执行delta_semaphore_release允许其它任务进入。 计数信号量,初始值为非负整数。 控制若干资源的访问,优先级反转问题,优先级反转是一种不确定的延迟形式,经常出现于存在共享资源的多任务、可抢占的执行体中。当高优先级任务企图访问已被某低优先级任务占有的共享资源时,就会引起优先级反转。高优先级任务必须等待直到低优先级任务释放它占有的资源。如果该低优先级任务又被一个或多个中等优先级任务阻塞,问题就更加严重。因为低优先级任务得不到执行就不能访问资源、释放资源。于是,低优先级任务就以一个不确定的时间阻塞高优先级的任务,系统的实时性没有保障。,系统存在任务A、B、C(优先级从高到低排列)和资源 D。某时,任务A和任务B 都被阻塞,任务C运行,占用资源D。一段时间后,任务A和任务B相继就绪,任务 A抢占任务C运行,申请资源D失败被挂起。由于任务B的优先级高于任务C,任务 B运行。任务A因任务C不能运行、释放资源D,一直被阻塞。极端情况下,任务A 永远无法运行,处于饿死状态。解决优先级反转问题的常用算法有优先级继承和优 先级天花板。,优先级继承,优先级继承是将低优先级任务的优先级抬升到等待它所占有的资源的高优先级任务的优先级。每当高优先级任务由于等待资源被阻塞,此资源的拥有者的优先级将会被抬升。 使用按任务优先级等待策略的互斥信号量可以采用优先级继承算法。当占有互斥信号量的任务的优先级低于请求获得互斥信号量的任务的优先级时,占有互斥信号量的任务的优先级被抬升到请求互斥信号量的任务的优先级。当任务释放完它所占有的全部互斥信号量时,它的优先级才恢复到它在进行任何优先级继承操作前的优先级。,优先级继承的一个示例,优先级天花板,优先级天花板算法是将申请某资源的任务的优先级抬升到可能访问该资源的所有任务中最高优先级任务的优先级。这个优先级称为该资源的优先级天花板。互斥信号量的优先级天花板在它被创建时指定。,优先级继承与优先级天花板的比较,一方面,优先级天花板算法避免了优先级继承算法因为需要若干次改变占有资源的任务的优先级引入的额外开销,具有较高的效率。 另一方面,优先级天花板算法要求在互斥信号量被创建时就确定出可能访问竞争资源的任务情况,从而获得该资源的优先级天花板。对于一个简单的系统这一点不成问题,但是对于一个复杂的系统要确定竞争资源的优先级天花板是一件非常困难的事。,事件机制 事件机制用于任务之间、任务与ISRs之间的同步。一个事件就是一个标志,不具备其它信息。往往内核会定义若干个事件,称为事件组。 信号量也能用于同步,那么提供事件机制的意义何在呢?,事件可以提供更复杂的同步机制。等待事件的操作可以有“与”或者“或”的 关系。“与”关系表示等待的几个事件都要发生才算等待的结果发生了。 “或”关系表示等待的几个事件只要有一个发生就算等待的结果发生了。,DeltaCORE定义的事件有以下特点: 1事件只与任务相关,事件间相互独立 DeltaCORE定义的每个任务拥有DELTA_EVENT_0到DELTA_EVENT_31,共32个事件标记,用一个32-bit无符号整形数记录,每一个bit代表一个事件。若干个事件构成一个事件组。 2事件仅用于同步,不提供数据传输功能 3事件无队列,即多次向任务发送同一事件,其效果等同于只发送一次。 delta_event_send 发送事件 delta_event_receive 接收事件,DELTA_EVENT_3| DELTA_EVENT_15| DELTA_EVENT_22| DELTA_EVENT_31 这是一个包括事件3、15、22、31的事件组。,消息机制,消息机制在任务和任务之间、任务和中断服务程序之间提供消息传送(通信)机制。DeltaCORE提供双向同步消息机制,定义的消息是一段长度可变的缓冲区,其内容可以是实际的数据或者是数据块的指针。,嵌入式操作系统的存储管理机制分析,一般操作系统的存储管理非常复杂,广泛使用了虚拟存储管理。 在具体的嵌入式应用中,任务的数量和各自可能使用的内存容量在开发时就已预测。另外,对于实时、嵌入式应用,如果采用虚拟存储管理,由于页交换的时间不可预测会影响整个系统的确定性。所以实时、嵌入式系统通常不采用虚拟存储管理,采用静态内存分配;或者为了提高内存分配的灵活性,采用动态内存分配。动态内存分配根据内存块的大小是否固定,分为固定大小的内存分配和可变大小的内存分配两种方式。其中,可变大小的内存分配一般没有回收内存碎片的处理,而是通过对申请的内存大小加一些限制和在算法中加入一些技巧来避免内存碎片的产生。,DeltCORE内存管理机制提供分区和堆两种管理机制。分区用于固定大小内存块的分配,堆用于可变大小内存块的分配。,中断管理机制的分析,中断是对内部、外部事件立即做出响应的一种机制,由外设 或者机器指令触发,不受调度程序支配。用于处理某一中断 的程序称为该中断的服务程序或者处理程序(ISR)。,中断的处理包括以下三部分: 前导部分 保存中断现场,通知系统进入中断处理。 用户的ISR 这部分由用户提供,完成对中断的处理,包括使用一些系统调用,与任务 通信与同步。用户ISR与普通的函数(无参数和返回值)具有完全相同的模式。 后续部分 恢复中断现场,通知系统退出中断处理程序。最后一级中断退出时, 产生调度,返回到优先级最高的任务,否则退出到上一级被中断的中断处理 程序。,图4-6中断接管机制,中断嵌套 每个中断都有一个硬件上定义好了的优先级。有的实时内核允许一个中断的处理过程 被优先级更高的中断打断,即中断嵌套。,中断延迟时间,中断延迟时间定义为中断发生到开始执行ISR第一条指令之间的时间。即中断延迟时间 = 最大关中断时间 + 硬件开始处理中断到开始执行ISR第一条指令之间的时间。,中断响应时间 中断响应时间是实时系统重要的性能指标。它被定义为从中断发生到开始执行用户中断服务程序的第一条指令之间的时间。根据内核是可抢占内核还是不可抢占内核,中断响应时间的内容不同。 - 不可抢占内核 中断响应时间 = 中断延迟时间 + 中断现场保存时间。 - 可抢占内核 处理中断时先要做一些处理,确保中断返回前调度器能正常工作。这些处理包括通知内核处于中断处理中、保存中断嵌套计数器,以便中断解除嵌套后允许重调度的发生。所以,中断响应时间 = 中断延迟时间 + 中断现场保存时间 + 内核所做处理的时间。,中断恢复时间 中断恢复时间的定义为用户中断服务程序结束到返回被中断的代码之间的执行时间。根据内核是否可被抢占中断恢复时间的内容不同。 - 不可抢占内核 中断恢复时间 = 中断现场恢复时间 + 中断返回指令之前的执行时间。 - 可抢占内核 因包括重调度在内,所以中断恢复时间 = 中断现场恢复时间 + 重调度时间 + 中断返回指令之前的执行时间。,时间、定时管理,时间分为两种,绝对时间和相对时间。 绝对时间就是日历时间,以年、月、日、时、分、秒的时间格式记录,时间单位为秒。 相对时间是相对某一刻经过的时间,时间单位为时基。时间设备以一定的晶振频率(该频率可能是固定的或者可调节,要看硬件是否提供相应的支持,并且该频率与CPU的频率无关)提供一个规则的脉冲序列,若干个脉冲序列(通常称为初始计数值)完成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 悲催的狮子经理650字10篇范文
- 项目可行性研究分析模板
- 六年级写人作文我的好朋友500字12篇范文
- 企业年度财务预算编制及执行报告
- 特别的除夕夜作文400字8篇
- 企业培训需求调研报告数据驱动版
- 时代的选择课件
- 纪检四大监督课件
- 统编版语文二年级上册第一单元测试卷含答案
- 《新编商务应用文写作》第四章 习题参考答案
- 2022年上海市法院系统辅助文员招聘128人笔试备考题库及答案解析
- 北师大版九年级数学上九年级第一二单元综合数学试题
- 二级建造师成绩复核申请
- 全过程工程咨询服务技术方案
- GB/T 35568-2017中国荷斯坦牛体型鉴定技术规程
- GB/T 28707-2012碟簧支吊架
- GB/T 2791-1995胶粘剂T剥离强度试验方法挠性材料对挠性材料
- GB/T 25702-2010复摆颚式破碎机颚板磨耗
- GB 29541-2013热泵热水机(器)能效限定值及能效等级
- 住宅项目实测实量操作指引(图文并茂)
- 流体力学-流体力学基本方程课件
评论
0/150
提交评论