几种嵌入式实时操作系统的分析与比较

上传人:夏** 文档编号:479611447 上传时间:2023-06-08 格式:DOCX 页数:5 大小:19.78KB
返回 下载 相关 举报
几种嵌入式实时操作系统的分析与比较_第1页
第1页 / 共5页
几种嵌入式实时操作系统的分析与比较_第2页
第2页 / 共5页
几种嵌入式实时操作系统的分析与比较_第3页
第3页 / 共5页
几种嵌入式实时操作系统的分析与比较_第4页
第4页 / 共5页
几种嵌入式实时操作系统的分析与比较_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《几种嵌入式实时操作系统的分析与比较》由会员分享,可在线阅读,更多相关《几种嵌入式实时操作系统的分析与比较(5页珍藏版)》请在金锄头文库上搜索。

1、于嵌入式实时操作系统可以支持多任务,使得程序开发更加容易,在便于维护的同时还能提 高系统的稳定性和可靠性,所以逐步成为嵌入式系统的重要组成部分,对嵌入式操作系统的 研究变得尤为重要。本文介绍4种嵌入式实时操作系统VxWorks、yClinux、gC / OS-II和 eCos,详细分析比较了这4种操作系统的主要性能,并根据分析结果指出了各自的适用领域。 VxWorks、 gClinux、 gC/ OS-II 和 eCos 是 4 种性能优良并被广泛应用的实时操作系统。本 文通过对这 4 种操作系统的主要性能进行分析与比较,归纳出它们的选型依据和适用领域。1 4种操作系统的介绍(1) VxWor

2、ksVxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用很广泛,市场占有率 比较高的嵌入式操作系统。VxWorks实时操作系统由400多个相对独立、短小精悍的目标 模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、 任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系 统接口)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的用户接口,在核心 方面 甚至町以微缩到 8 KB。(2) gC/ OS-IIgC/OS-II是在yC-OS的基础上发展起来的,是美国嵌入式系统专家Jean J. Labrosse

3、用C 语言编写的一个结构小巧、抢占式的多任务实时内核。 gC/OS-II 能管理 64个任务,并提 供任务调度与管理、内存管理、任务间 同步与通信、时间管理和中断服务等功能,具有执 行效率高、占用空间小、实时性能优良和可扩展性强等特点。(3) gClinuxyClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指 微控制Linux。同标准的Linux相比,yClinux的内核非常小,但是它仍然继承了 Linux操作 系统的主要特性, 包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、 标准丰富的API,以及TCP/IP网络协议

4、等。因为没有MMU内存管理单元,所以其多 任 务的实现需要一定技巧。(4) eCoseCos(embedded Configurable operating system) ,即嵌入式可配置操作系统。它是一个源代码 开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用 模块化设 计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组 件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很 方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。2 性能分析与比较 任务管理、任务及中断间的同步与通信机制、内存

5、管理、中断管理、文件系统、对硬件的支 持和系统移植这几方面是实时操作系统的主要性能。下面就从这几个方面着手对上述4种操 作系统进行分析与比较。21 任务管理 任务管理是嵌入式实时操作系统的核心和灵魂,决定了操作系统的实时性能。它通常包含优 先级设置、多任务调度机制和时间确定性等部分。2.1.1 优先级设置 嵌入式操作系统支持多任务,每个任务都具有优先级,任务越重要,赋予的优先级应越高。 优先级的设置分为静态优先级和动态优先级两种。静态优先级指的是每个 任务在运行前都 被赋予一个优先级,而且这个优先级在系统运行期间是不能改变的;动态优先级则是指每个 任务的优先级(特别是应用程序的优先级)在系统运

6、行时 可以动态地改变。2.1.2 多任务调度机制任务调度主要是协调任务对计算机系统资源的争夺使用。对系统资源非常匮乏的嵌入式系统 来说,任务调度尤为重要,它直接影响到系统的实时性能。通常,多任务调度机制分为基于 优先级抢占式调度和时间片轮转调度。基于优先级抢占式调度:系统中每个任务都有一个优先级,内核总是将 CPU 分配给处于就 绪态的优先级最高的任务运行。如果系统发现就绪队列中有比当前运行任 务更高的优先级 任务,就把当前运行任务置于就绪队列中,调入高优先级任务运行。系统采用优先级抢占方 式进行调度,可以保证重要的突发事件及时得到处理。时间片轮转调度:让优先级相同的处于就绪状态的任务按时间片

7、使用CPU,以防止同优先 级的某一任务长时间独占 CPU。在一般情况下,嵌入式实时操作系统采用基于优先级抢占式调度与时间片轮转调度相结合的 调度机制。2.1.3 时间的可确定性 嵌入式实时操作系统甬数调用与服务的执行时间应具有可确定性。系统服务的执行时间不依 赖于应用程序任务的多少。基于此特征,系统完成某个确定任务的时间是可预测的。表 1 具体列出了 4种操作系统的调度机制。4 种嵌入式实时操作系统都支持多任务,只是在支持任务数量上和任务调度机制上有所不同。VxWorks具有高效的任务管理功能,它支持多任务,可分配256个优先级,支持优先 级抢占式调试和时间片轮转调度,实时性最好。卩C/OS-

8、II内核是针对实时系统的要求设计 实现的,只支持基于固定优先级抢占式 调度;调度方法简单,可以满足较高的实时性要求。 卩Clinux在结构上继承了标准Linux的多任务实现方式,分为实时进程和普通进程,分别采 用先来先 服务和时间片轮转调度;仅针对中低档嵌入式CPU特点进行改良,且不支持内核 抢占。 eCos 调度方法丰富,提供了两种基于优先级的调度器(即位图调度器和 多级队列调 度器),允许用户在进行配置时选择其中一个凋度器,适应性好。22 任务及中断间的同步与通信机制实时操作系统的功能一般要通过若干任务和中断服务程序共同完成。任务与任务之间、任务 与中断间任务及中断服务程序之间必须协调动作

9、,互相配合,这就涉及任 务间的同步与通 信问题。嵌入式实时操作系统通常是通过信号量、互斥信号量、事件标志和异步信号来实现 同步,通过消息邮箱、消息队列、管道和共享内存来提供 通信服务。由于互斥信号量的使 用,带来了实时操作系统中常见的优先级反转问题。优先级反转是一种不确定的延迟形式, 当高优先级任务企图访问已被低优先级占 有的共享资源时,必须等待低优先级任务释放共 享资源;如果这时低优先级任务被一个或多个中优先级任务抢占,那么高优先级任务被延迟 的时间将更进一步延长, 实时性难以保证。因此,应采取相关措施以尽鼍避免出现优先级 反转问题。实时系统通常采用优先级继承和优先级置顶机制。优先级继承足指

10、拥有互斥量的任务被提升到与下一个在等待该互斥最的最高优先级任务相 同的优先级;优先级置顶是指获得互斥量的任务将其优先级提升到一个事先规定好的值。表 2为4种操作系统的同步与通信机制的比较。4 种系统都具有灵话的任务间同步与通信机制,都可以通过信号量、消息队列来实现同步与 通信,但是VxWorks与yClinux都不支持邮箱和事件标志,而且除了 yClinux和eCos中的 位图调度器,其他操作系统都采取了措施抑制优先级反转。23 内存管理内存管理主要包括:内存分配原则,存储保护和内存分配方式。2.3.1 内存分配原则内存分配原则包括快速性、可靠性和高效性。其中,快速性要求内存分配过程要尽可能快

11、, 所以一般采用简单、快速的分配算法;可靠性指的是内存分配的请求必须 得到满足;系统 强调高效性的要求,不仅仅是对系统成本的要求,而且由于系统本身可配置的内存容量也是 很有限的,所以要尽可能地避免浪费。2.3.2 存储保护 通常在操作系统的内存中既有系统程序也有用户程序,为了使两者都能正常运行,避免程序 间相互干扰,需要对内存中的程序和数据进行保护。存储保护通常需要硬 件支持,在很多 系统中都采用MMU,并结合软件实现;但由于嵌入式系统的成本限制内核和用户程序通常 都在相同的内存空间中。2.3.3 内存分配方式 内存分配方式可分为静态分配和动态分配。静态分配是在程序运行前一次性分配给相应内 存

12、,并且在程序运行期间中不允许再申请或在内存中移动;动态分配则允许 在程序运行整 个过程中进行内存分配。静态分配使系统失去了灵活性,但对于实时性要求比较高的系统是 必需的;而动态分配赋予了系统设计者更多自主性,可以灵 活地调整系统的功能。VxWorks对内存的使用采用的是Flat Mode,可被静态或动态链接。VxWorks为用户提供了 两种内存区域 Region 和 Partition。 Region 是变长的内存区,用户可以从创建 的 Region 中 分配Segment,其特点是容易产生碎片,但灵活并且不浪费;Partition是定长的内存区,用 户可以从刨建的Partition中分配Bu

13、ffer,其特点是不会产生碎片,技率高但是易浪费。VxWorks采用最先算法分配内存。卩C/OS-II把连续的大块内存按分区来管 理,每个分区中 都包含整数个大小相同的内存块,但不同分区之间内存的太小可以不同。用户动态分配内存 时,只须选择一个适当的分区,按块来分配内存,释放时 将该块放回到以前所属的分区, 这样就消除了因多次动态分配和释放内存所引起的碎片问题。卩Clinux是针对没有MMU的 处理器设计的,不能使用处理器的 虚拟内存管理技术,只能采用实存储器管理策略。系统 使用分页内存分配方式,在启动时对实际存储器进行分页。系统对内存的访问是直接的操作 系统对内存空间没 有保护,多个进程可共

14、享一个运行空间,所以,即使是一个无特权进程 调用一个无效指针也会触发一个地址错误,并有可能引起程序崩溃甚至系统崩溃。 eCos 对 内存分配既不分段也不分页,而是采用一种基于内存池的动态内存分配机制。通过两种内存 池类来实现两种内存管理方法:一种是变长的内存池;另一种是定长的内 存池,类似于 VxWorb的管理方案。表3为4种操作系统内存管理的比较。2.4 中断管理 中断管理是实时系统中一个很重要的部分,系统经常通过中断与外部事件交互。主要考虑是 否支持中断嵌套、中断处理机制、中断延时等。(1) VxWorks 的中断管理VxWorks操作系统中断管理采用中断处理与普通任务分别在不同栈中处理的

15、中断处理机制, 使得中断只会引发一些关键寄存器的存储,而不会导致任务的上下 文切换,从而极大地缩 短了中断延时。同时, VxWorks 的中断处理程序只能在最短时间内通告中断的发生,而将 其他的非实时处理尽量放入被引发的中断服务 程序中来完成,这也缩短了中断延时。但是 凼为中断服务程序不在一个固定的仟务上下文中执行,而目没有任务控制块,所以所有中断 服务程序使用相同的中断堆 栈。为了能处理最坏情况下的中断嵌套,必须分配足够大的中 断堆栈空间。(2) yC / OS-II的中断管理卩C/OS-II中断处理比较简单。一个中断向量上只能挂一个中断服务子程序ISR,而且用户 代码必须都在ISR中完成。

16、ISR需要做的事情越多,中断延时也就越长。内核所能支持的最 大嵌套深度为 255。yClinux的中断管理卩Clinux操作系统将中断处理分为两部分:顶半处理和底半处理。在顶半处理中,必须关中 断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给 底半处理;底半处理执 行那些复杂、耗时的处理,而且接受中断。因为系统中存在有许多中断的底半处理,所以会 引起系统中断处理的延时。(4)eCos 的中断管理eCos使用了分层式中断处理机制,把中断处理分为传统的ISR和滞后中断服务程序DSR。 类似于gClinux的处理机制,这种机制可以在中断允许时 运行DSR,因此在处理较低优先 级中断时允许高优先级的中断和处理。为了极大地缩短中断延时,ISR应当可以快速运行。 如果中断引起的服务量少,则ISR可以单独处理中断;如果中断服务复杂,则ISR只屏蔽 中断源,然后交由DSR处理。2.5 文件系统 所谓“文件系统”是指负责

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号