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

上传人:公**** 文档编号:494340105 上传时间:2022-11-05 格式:DOCX 页数:8 大小:26.78KB
返回 下载 相关 举报
几种嵌入式实时操作系统的分析与比较_第1页
第1页 / 共8页
几种嵌入式实时操作系统的分析与比较_第2页
第2页 / 共8页
几种嵌入式实时操作系统的分析与比较_第3页
第3页 / 共8页
几种嵌入式实时操作系统的分析与比较_第4页
第4页 / 共8页
几种嵌入式实时操作系统的分析与比较_第5页
第5页 / 共8页
点击查看更多>>
资源描述

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

1、几种嵌入式实时操作系统的分析与比较2008-07-04 20:54VxWorks、卩Clinux、卩C/OS-II和eCos是4种性能优良并被广泛应用的实时 操作系统。本文通过对这4种操作系统的主要性能进行分析与比较,归纳出它们 的选型依据和适用领域。1. 4 种操作系统的介绍(1) VxWorksVxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用很广 泛,市场占有率比较高的嵌入式操作系统。VxWorks实 时操作系统由400多个 相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和 配置系统;提供基于优先级的任务调度、任务间同步与通 信、中断处理、

2、定时 器和内存管理等功能,内建符合POSIX(可移植操作系统接口)规范的内存管理, 以及多处理器控制程序;并且具有简明易懂的用户接口, 在核心方面甚至町以 微缩到 8 KB。(2) 卩 C/OS-IIM C/OS-II是在p C-OS的基础上发展起来的,是美国嵌入式系统专家Jean J. Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。p C / OS-II 能管理64个任务,并提供任务调度与管理、内存管理、任务间 同步与通 信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良 和可扩展性强等特点。(3) p Clinuxp Clinux是一种优秀的嵌入式

3、Linux版本,其全称为micro-control Linux, 从字面意思看是指微控制Linux。同标准的Linux相比,p Clinux的内核非常小, 但是它仍然继承了 Linux操作系统的主要特性,包括良好的稳定性和移植性、 强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP网络协 议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。(4) eCoseCos(embedded Configurable opera ting sys tem),即嵌入式可配置操作系 统。它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系 统。最大特点是配置灵

4、活,采用模块化设 计,核心部分由小同的组件构成,包 括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核 也可作为可选配置),使用 eCos 提供的配置 工具可以很方便地配置,并通过不 同的配置使得 eCos 能够满足不同的嵌入式应用要求。2. 性能分析与比较任务管理、任务及中断间的同步与通信机制、内存管理、中断管理、文件系 统、对硬件的支持和系统移植这几方面是实时操作系统的主要性能。下面就从这 几个方面着手对上述 4 种操作系统进行分析与比较。2.1 任务管理任务管理是嵌入式实时操作系统的核心和灵魂,决定了操作系统的实时性 能。它通常包含优先级设置、多任务调度机制和时间确定

5、性等部分。2.1.1 优先级设置嵌入式操作系统支持多任务,每个任务都具有优先级,任务越重要,赋予的 优先级应越高。优先级的设置分为静态优先级和动态优先级两种。静态优先级 指 的是每个任务在运行前都被赋予一个优先级,而且这个优先级在系统运行期间是 不能改变的;动态优先级则是指每个任务的优先级(特别是应用程序的优先级) 在 系统运行时可以动态地改变。2.1.2 多任务调度机制任务调度主要是协调任务对计算机系统资源的争夺使用。对系统资源非常匮 乏的嵌入式系统来说,任务调度尤为重要,它直接影响到系统的实时性能。通常, 多任务调度机制分为基于优先级抢占式调度和时间片轮转调度。基于优先级抢占式调度:系统中

6、每个任务都有一个优先级,内核总是将CPU 分配给处于就绪态的优先级最高的任务运行。如果系统发现就绪队列中有比 当 前运行任务更高的优先级任务,就把当前运行任务置于就绪队列中,调入高优先 级任务运行。系统采用优先级抢占方式进行调度,可以保证重要的突发事件及时 得 到处理。时间片轮转调度:让优先级相同的处于就绪状态的任务按时间片使用 CPU, 以防止同优先级的某一任务长时间独占 CPU。在一般情况下,嵌入式实时操作系统采用基于优先级抢占式调度与时间片轮 转调度相结合的调度机制。2.1.3 时间的可确定性嵌入式实时操作系统甬数调用与服务的执行时间应具有可确定性。系统服务 的执行时间不依赖于应用程序任

7、务的多少。基于此特征,系统完成某个确定任务 的时间是可预测的。表 1 具体列出了 4 种操作系统的调度机制。4 种嵌入式实时操作系统都支持多任务,只是在支持任务数量上和任务调度机制上有所不同。VxWorks具有高效的任务管理功能,它支持多任务,可分配 256个优先级,支持优先级抢占式调试和时间片轮转调度,实时性最好。“C/ OS-II内核是针对实时系统的要求设计实现的,只支持基于固定优先级抢占式 调度;调度方法简单,可以满足较高的实时性要求。“Clinux在结构上继承了 标准 Linux 的多任务实现方式,分为实时进程和普通进程,分别采用 先来先服 务和时间片轮转调度;仅针对中低档嵌入式 CP

8、U 特点进行改良,且不支持内核抢 占。 eCos 调度方法丰富,提供了两种基于优先级的调度器(即位图调 度器和多 级队列调度器),允许用户在进行配置时选择其中一个凋度器,适应性好。2.2 任务及中断间的同步与通信机制实时操作系统的功能一般要通过若干任务和中断服务程序共同完成。任务与 任务之间、任务与中断间任务及中断服务程序之间必须协调动作,互相配合, 这 就涉及任务间的同步与通信问题。嵌入式实时操作系统通常是通过信号量、互斥 信号量、事件标志和异步信号来实现同步,通过消息邮箱、消息队列、管道和共 享 内存来提供通信服务。由于互斥信号量的使用,带来了实时操作系统中常见 的优先级反转问题。优先级反

9、转是一种不确定的延迟形式,当高优先级任务企图 访问已被 低优先级占有的共享资源时,必须等待低优先级任务释放共享资源; 如果这时低优先级任务被一个或多个中优先级任务抢占,那么高优先级任务被延 迟的时间将更进 一步延长,实时性难以保证。因此,应采取相关措施以尽鼍避 免出现优先级反转问题。实时系统通常采用优先级继承和优先级置顶机制。优先级继承足指拥有互斥量的任务被提升到与下一个在等待该互斥最的最 高优先级任务相同的优先级;优先级置顶是指获得互斥量的任务将其优先级提升 到一个事先规定好的值。表 2 为 4 种操作系统的同步与通信机制的比较。N xWgr阳M QSlClinuxrliafi内枝枪占矗否&

10、25&3233动壽甜蛊功态动态束丁优先圾推 占式漏庞i时间 片it转调症赴于阖宦忧比缎抢占直冥时道f寵束 咒嘅势】?!迪遅秤时闻片靛转罡于間宦优 凳圾枪占式 调度码丁优世堀摊 占式冏度:时闻 片比荊调應同优粗科即有有无尤限制吋附可矚疋件.&【否毎黑2心沖操作科统词步与通画机制的出较样H皋址VxWrjrlcs应 M-T1pCItnus赵&心图悶皮瓣惰号耳最用仃协畫併弓供.宜斥信 琴册.节科価志管号址互斥体、倍母 fit,爭件赫息矿E赋信号 hb电件标卷涓息阻央上宰内存卓谄邮輻Jft 队脚管退,植息羸 列、丼車内存器件蜚社、圍免优先堀忧亢纯卓岷优注霰燃倉.锐 兀绩压厲4 种系统都具有灵话的任务间同

11、步与通信机制,都可以通过信号量、消息队 列来实现同步与通信,但是VxWorks与卩Clinux都不支持邮箱和事件标志,而 且除了 p Clinux和eCos中的位图调度器,其他操作系统都采取了措施抑制优先 级反转。2.3 内存管理内存管理主要包括:内存分配原则,存储保护和内存分配方式。2.3.1 内存分配原则内存分配原则包括快速性、可靠性和高效性。其中,快速性要求内存分配过 程要尽可能快,所以一般采用简单、快速的分配算法;可靠性指的是内存分配 的 请求必须得到满足;系统强调高效性的要求,不仅仅是对系统成本的要求,而且 由于系统本身可配置的内存容量也是很有限的,所以要尽可能地避免浪费。2.3.2

12、 存储保护通常在操作系统的内存中既有系统程序也有用户程序,为了使两者都能正常 运行,避免程序间相互干扰,需要对内存中的程序和数据进行保护。存储保护 通 常需要硬件支持,在很多系统中都采用MMU,并结合软件实现;但由于嵌入式系 统的成本限制内核和用户程序通常都在相同的内存空间中。2.3.3 内存分配方式内存分配方式可分为静态分配和动态分配。静态分配是在程序运行前一次性 分配给相应内存,并且在程序运行期间中不允许再申请或在内存中移动;动态 分 配则允许在程序运行整个过程中进行内存分配。静态分配使系统失去了灵活性, 但对于实时性要求比较高的系统是必需的;而动态分配赋予了系统设计者更多自 主 性,可以

13、灵活地调整系统的功能。VxWorks对内存的使用采用的是Flat Mode,可被静态或动态链接。VxWorks 为用户提供了两种内存区域 Region 和 Partition。 Region 是变长的内存区,用 户可以从创建的Region中分配Segment,其特点是容易产生碎片,但灵活并且 不浪费;Par tit ion是定长的内存区,用户可以从刨建的Par tition中分配 Buffer,其特点是不会产生碎片,技率高但是易浪费。VxWorks采用最先算法分 配内存。p C/OS-II把连续的大块内存按分区来管理,每 个分区中都包含整数 个大小相同的内存块,但不同分区之间内存的太小可以不同

14、。用户动态分配内存 时,只须选择一个适当的分区,按块来分配内存,释放时将该块 放回到以前所 属的分区,这样就消除了因多次动态分配和释放内存所引起的碎片问题。p Clinux 是针对没有 MMU 的处理器设计的,不能使用处理器的虚拟内 存管理技 术,只能采用实存储器管理策略。系统使用分页内存分配方式,在启动时对实际 存储器进行分页。系统对内存的访问是直接的操作系统对内存空间没有保 护, 多个进程可共享一个运行空间,所以,即使是一个无特权进程调用一个无效指针 也会触发一个地址错误,并有可能引起程序崩溃甚至系统崩溃。 eCos 对内存 分 配既不分段也不分页,而是采用一种基于内存池的动态内存分配机制

15、。通过两种 内存池类来实现两种内存管理方法:一种是变长的内存池;另一种是定长的内存 池,类似于 VxWorb 的管理方案。表 3 为 4 种操作系统内存管理的比较。表34种操作系统内存管理的比较VxWorksfiC/os “ npCinux支持MMU支持不支持不支持不支持管理方直虑WfrHf器实存储擀实存储器存储谍护有-无无仔储机制分区分区分页不分段也不分区分配方式邮态或动态静态或动态荃于内存池的鬲连续分配连鍍分配页分配,非连续瘪内存分配机制2.4 中断管理中断管理是实时系统中一个很重要的部分,系统经常通过中断与外部事件交 互。主要考虑是否支持中断嵌套、中断处理机制、中断延时等。(1) VxWorks 的中断管理VxWorks 操作系统中断管理采用中断处理与普通任务分别在不同栈中处理的中 断处理机制,使得中断只会引发一些关键寄存器的存储,而不会导致任务的 上 下文切换,从而极大地缩短了中断延时。同时,VxWorks的中断处理程序只能在 最短时间内通告中断的发生,而将其他的非实时处理尽量放入被引发的中断 服 务程序中来完成

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

当前位置:首页 > 学术论文 > 其它学术论文

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