几种嵌入式实时操作系统的研究与比较
浅谈嵌入式实时操作系统

以在 内存 保 护 的多 个 级 别 中选 择 。 Wid r e 公 司 的 V Wok , 经 过 了 广泛 的验 证 , 统 稳 定 可 靠 , nRi r v x rs它 系 并 且提 供 了包 括 网络 通 信 等 丰 富 的开 发 组 件 , 到 了许 多 硬 件 厂 商 的 支 5 几 种嵌 入 实 时 系 统 的特 性 得
试 、 护 与 扩展 。 维
以下 是 所有 商业 R O T S的共 性 : 速 度 和 效 率 : 多数 R OS是 低 开 销 的 微 内核 。 中有 一 些 , 发 大 T 其 在
送消息给系统服务提供者 时, 没有上下文切换开销。 系统 调 用 : 系统 调 用 的某 些 端 口是 非抢 占互 斥 。这 些 部 分 高度 优 化 , 可 能 的简 短 和 确 定 。 尽 调 度 : 遵 从 P I 标 准 , 有 的 R OS至少 提 供 3 为 0Sx 所 T 2种 优 先 级 ,
在计 算 机 嵌 人 式 应 用 中 使用 实 时 操作 系 统 , 因为 R OS将应 用 是 T 分 解 成 多 任务 . 大 简化 了应 用 程 序 软 件 的 设 计 ; 任 务 间可 能 的竞 大 多 争 问 题 、 务 问通 讯 问题 , 操 作 系 统替 用 户 考 虑 ;T S使 控 制 系统 任 有 RO 的实 时 性 得 到保 证 , 以 接 近 理 论 上 能 达 到 的最 好 水 平 ; 可 良好 的 多 任 务 设 计 . 助 于 提 高 系 统 的 稳 定 性 和 可 靠 性 , 使 应用 程 序更 便 于 测 有 也
【 键 词 】 OS V W ok; iC QNX 关 RT ; x rsW n E;
1 嵌 入 式 实 时操 作 系 统简 介
4种实时操作系统实时性的分析对比

英特尔全球同庆公司成立 3 5 周年
日前,英特尔公司宣布在全球启动“英特尔员工庆 祝周”,隆重庆祝公司成立 35周年,纪念公司在过去35 年的创新历程中创造出的各种微处理器产品对整个世界 产生的重要影响。
a. I/O原则:不同的外设执行不同任务; b. 优先级原则:不同优先级处理不同的任务; c. 大量运算:归为一个任务; d. 功能耦合:归为一个任务; e. 偶然耦合:归为一个任务; f. 频率组合:对于周期时间,不同任务处理不同的 频率。
如果我们在具体分析一个系统的时候发生原则冲突 的话,则要为每一个原则针对具体的系统设定“权重”,必 要的时候可以通过计算“权重”来最终确定如何去划分任 务。
总结
VxWorks、µC/OS-II、RT-Linux、QNX 都是优秀的 强实时操作系统,各有特色:VxWorks 的衡量指标值最 好;µC/OS-II 最短小精悍;RT-Linux支持调度策略的改 写;QNX 支持分布式应用。当我们充分理解和掌握它们 实现技术、衡量指标的不同,注意所存在的问题,就能在 实时性应用中游刃有余。■
强实时操作系统的函数调用与服务的执行时间应具 应时间等辅助的衡量指标。
有可确定性。系统服务的执行时间不依赖于应用程序任
务的多少。系统完成某个确定任务的时间是可预测的。
若干问题
实时性能重要指标
衡量实时操作系统实时性能的重要指标有:
虽然当今的实时操作系统已日臻完善,但仍有一 些问题存在并干扰着强实时的实现。我们应充分的重视, 并通过合理的安排程序减少它们的危害。
操作系统中的实时系统与嵌入式系统

操作系统中的实时系统与嵌入式系统操作系统是计算机系统中的核心软件之一,它负责管理计算机硬件资源和控制程序执行,以便提供良好的用户体验。
在操作系统的大类中,实时系统和嵌入式系统是两个重要的子类。
本文将重点探讨这两种系统的特点、应用领域以及关键技术。
一、实时系统的介绍实时系统是一种强调任务完成时间性能的操作系统。
它要求在指定的时间范围内能够满足任务的实时性要求。
实时系统主要分为硬实时系统和软实时系统两种。
硬实时系统要求系统能够在任务要求的截止时间之前准确地完成任务。
常见的硬实时系统应用包括航空航天、核能控制等领域。
例如,宇航员的生命支持系统必须在特定的时间内提供所需的氧气和食物,一旦超时,将可能导致灾难性的后果。
软实时系统也是具有时间要求的系统,但它对于任务的完成时间有一定的宽容度。
软实时系统在多媒体、实时游戏等领域得到广泛应用。
例如,在实时游戏中,玩家对游戏画面的响应速度要求较高,但不像硬实时系统那样对时间延迟具有严格的要求。
二、嵌入式系统的介绍嵌入式系统是指被嵌入到具体设备中的计算机系统,主要用于控制和操作特定设备。
它通常包括硬件和软件两个部分。
嵌入式系统的主要特点是紧凑、高度可靠和低功耗。
嵌入式系统可以广泛应用于各个领域,如消费电子、汽车、医疗设备等。
例如,智能手机中的操作系统就是一种嵌入式系统,它可以控制和管理手机的各种功能。
三、实时系统与嵌入式系统的关系实时系统和嵌入式系统之间存在紧密的关系。
很多嵌入式系统需要具备实时性能,以满足对任务截止时间的严格要求。
例如,一台智能车辆需要在特定的时间内对路况进行感知并作出相应的驾驶决策,这就需要嵌入式系统具备实时性能。
另外,实时系统和嵌入式系统都面临着资源有限的挑战。
由于嵌入式系统通常具有较小的体积和功耗限制,因此其资源(如内存、处理能力等)较为有限。
这就要求实时系统和嵌入式系统在设计和实现时都需要充分考虑资源利用的效率和优化。
四、实时系统与嵌入式系统的关键技术实时系统和嵌入式系统的设计和实现都需要依赖一些关键技术来保证其功能和性能。
嵌入式系统中的实时操作系统研究与应用

嵌入式系统中的实时操作系统研究与应用嵌入式系统是指被嵌入在其他设备中的电子计算系统。
这种系统通常具有小巧、低功耗、低成本等特点。
嵌入式系统被广泛运用于智能家居、智能交通、医疗器械、工业控制等领域。
嵌入式系统最重要的特点之一就是实时性。
实时性是指系统能够在预定的时间内,按照既定的要求完成任务。
因此,在嵌入式系统中,实时操作系统是非常重要的。
本文将围绕嵌入式系统中的实时操作系统进行研究探讨。
一、实时操作系统概述实时操作系统(RTOS)是嵌入式系统中最常见的操作系统类型之一。
RTOS是一种使得系统能够及时响应外部事件,按时完成任务的操作系统。
它具有高度的可预测性和可靠性。
RTOS常被运用于需要实时响应的设备中,如航空飞行控制系统、医疗监测设备、智能交通系统等。
与一般的操作系统不同,RTOS需要具备以下特点:1.响应速度快:实时操作系统需要及时响应任务,而且响应时间必须小于任务的时间限制。
2.可预测性:实时操作系统需要保证任务在规定时间内完成,因此必须具有可预测性。
3.可靠性:RTOS需要保证任务的可靠性,确保任务能够按时完成,不出错。
4.实时性:RTOS需要保证系统实时性,能够在规定时间内完成任务。
二、实时系统的分类按照实时性的要求,实时系统可以分为硬实时系统和软实时系统。
硬实时系统:硬实时系统对任务的响应时间有极高的要求,任务必须在严格的时间限制内完成。
举例来说,发生在航空飞行控制系统中的事件必须在极短的时间内得到响应,否则将带来灾难性的后果。
软实时系统:软实时系统对任务的响应时间要求有所放宽,任务可以在更广泛的时间范围内完成。
虽然并不是所有任务都必须在规定时间内得到响应,但是任务响应的时间超出一定的范围,也会对系统造成灾难性的后果。
通常,软实时系统和硬实时系统一同出现在一个复杂的嵌入式系统中。
三、实时操作系统的调度机制实时操作系统可以采用不同的调度策略。
常见的调度策略如下:1.先进先出调度(FIFO):按照任务的到来顺序进行调度。
实时系统中的实时操作系统选择与比较(七)

实时系统中的实时操作系统选择与比较引言:实时系统是指对时间要求非常严格的计算机系统,特别是对于任务的响应时间有严格要求的系统。
这些系统常见于航空航天、自动控制、工业控制等领域。
为了满足实时系统的需求,选择适合的实时操作系统是至关重要的。
本文将从实时性、可靠性、性能和适用环境四个方面进行分析和比较。
一、实时性:实时操作系统的核心特点就是保证任务的实时性。
硬实时是指对任务的响应时间有严格的时间限制,一旦错过了截止时间,可能会导致系统故障。
软实时是指对任务的响应时间有一定的限制,但是可以容忍一定的延迟。
1. 实时性要求高的系统:VxWorksVxWorks是一款被广泛应用于嵌入式实时系统的操作系统。
它具有高度可靠性和精确的任务调度机制,可以满足硬实时系统的要求。
VxWorks采用微内核架构,具有优秀的实时性能和可扩展性,适用于复杂实时任务的处理。
2. 实时性要求中等的系统:FreeRTOSFreeRTOS是一款开源的实时操作系统,适用于中小型嵌入式系统。
它具有较好的实时性能和低延迟,可以满足软实时系统的要求。
FreeRTOS采用可抢占式调度算法,支持多任务并发执行,适合处理简单的实时任务。
二、可靠性:实时系统对于任务的可靠性要求很高,要能够在各种不确定的环境下保证任务的正确性。
1. 可靠性要求高的系统:QNXQNX是一款广泛应用于工业控制和汽车电子领域的实时操作系统。
它具有高度的可靠性和容错能力,可以有效防止系统崩溃。
QNX采用微内核架构,通过进程间通信实现任务的隔离,从而保证系统的稳定性和可靠性。
2. 可靠性要求中等的系统:uC/OS-IIuC/OS-II是一款常用于嵌入式实时系统的实时操作系统。
它具有较好的可靠性和高可移植性,适用于中小型实时系统的开发。
uC/OS-II采用事件驱动的任务调度方式,可以方便地处理实时任务的同步与通信。
三、性能:实时系统对于性能的要求取决于任务的复杂度和响应时间限制。
嵌入式系统中的实时操作系统

嵌入式系统中的实时操作系统嵌入式系统是一种特殊的计算机系统,通常嵌入在其他设备中,用于控制和管理设备的功能。
在嵌入式系统中,实时操作系统(RTOS)起着至关重要的作用。
本文将介绍嵌入式系统中的实时操作系统的概念、特点以及在嵌入式开发中的应用。
一、实时操作系统的概念实时操作系统是一种专为嵌入式系统设计的操作系统,具有高度可预测性和响应性能。
它的主要特点是能够在严格的时间约束下处理任务,并能够及时响应外部事件。
实时操作系统分为硬实时系统和软实时系统两种类型。
硬实时系统要求任务必须在预定的时间内完成,不能有任何延迟。
这种系统广泛应用于一些对时间要求非常严格的领域,例如航空航天和医疗设备。
软实时系统对任务的时间要求相对较轻松,任务可以在一定范围内有一定的延迟。
这种系统适用于一些对时间要求较为宽松的场景,例如智能家居和工业控制。
二、实时操作系统的特点1.提供任务调度和管理:实时操作系统能够根据任务的优先级和时间要求进行任务的调度和管理,确保高优先级任务能够及时得到处理。
2.保证任务的及时响应:实时操作系统能够在严格的时间约束下响应任务,确保任务按时完成,并能够实时处理外部事件。
3.可靠性和稳定性:实时操作系统需要具备高度的可靠性和稳定性,以确保嵌入式系统的正常运行。
4.低内存占用和低功耗:嵌入式系统通常具有资源有限的特点,实时操作系统需要占用较少的内存,并尽量降低功耗,以提高系统的效率和续航时间。
三、实时操作系统在嵌入式开发中的应用实时操作系统在嵌入式开发中有广泛的应用,以下是一些常见的应用场景:1.工业控制:实时操作系统可以用于工业自动化系统中,例如控制生产线上的机器人进行精确的动作控制,保证生产线的高效运行。
2.汽车电子:实时操作系统在汽车电子系统中发挥着重要作用。
例如,车载信息娱乐系统需要及时响应驾驶员的指令,并能够处理导航和娱乐功能。
3.医疗设备:医疗设备通常对时间要求非常严格,实时操作系统可以保证医疗设备准确地进行数据采集和处理,并及时响应医生的指令。
三种开源嵌入式操作系统的比较

;i●■三种开源嵌入式操作系统的比较苟军年(兰州交通大学自动化与电气工程学院甘肃兰州730070)信息科掌【捕要】嵌入式操作系统的性能和选择是大多数嵌入式系统开发都要面临的问题。
比较3种开源嵌入式操作系统嵌入式L i nu x、Q N x和ecos,分析3种开源操作系统的主要性能,并根据分析结果指出各自的适用领域.【关键词】嵌入式操作系统RT O S嵌入式系统中图分类号:TP316.2文献标识码:A文章编号i1671--7597(2008)1110061--01一、三种开曩E O S介绍(一)嵌入式L i M U X.L i n ux是一个类似于U ni x的操作系统,它已经是最为流行的一款开放源代码的操作系统。
嵌入式L i nux由于其源代码公开,人们可以任意修改来满足自己的应用。
像大多数自由软件一样,L i nux遵从G PL,因此使用它无须为每例应用交纳许可证费。
Li nux下的应用软件大量可用,其中大部分都遵从GPL,是开放源代码和免费的。
稳定是L i nu x本身具备的一个很大优点。
内核精悍,运行所需资源少,支持的硬件数量庞大等都是Li nux所具备的.(二)O N X∞。
Q N)【O S是由0N X软件系统有限公司开发的一套实时操作系统,它是一个实时的、可扩展的操作系统,部分遵循了PO S I X( Por t abl e O per a t i ng S ys t em I nt er f ace of U ni x)相关标准,可以提供一个很小的微内核及一些可选择的配合进程。
其内核仅提供4种服务:进程调度、进程阃通信、底层网络通信和中断处理。
(三)e C os。
e C os(e m be dde d C onf i gur a bl e oper a t i ng syst em),即嵌入式可配置操作系统。
它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。
其最大特点是配置灵活,采用模块化设计,包括内核、c语言库和底层运行包在内的核心部分由不同的组件构成。
操作系统的实时系统与嵌入式实时操作系统

操作系统的实时系统与嵌入式实时操作系统操作系统是计算机系统中的核心组成部分。
它负责管理和协调计算机硬件与软件资源,为用户和应用程序提供良好的使用环境。
操作系统又可分为实时系统和非实时系统,其中实时系统又可以进一步分为普通实时系统和嵌入式实时系统。
本文将着重探讨实时系统和嵌入式实时操作系统的概念、特点以及应用领域。
一、实时系统实时系统是指能够在规定的时间范围内对于事件进行产生、处理和响应的计算机系统。
它的特点是对时间要求极为严格,要求系统能够在给定的时间限制内完成任务的响应。
根据实时性能要求的不同,实时系统可以分为硬实时系统和软实时系统。
硬实时系统是指必须严格按照预定时间完成任务的实时系统。
在硬实时系统中,任务的延迟必须小于预定的数值,否则会导致系统失效。
这类系统通常应用于航空航天、核电站等对安全性要求极高的领域。
软实时系统则对于任务完成的时间要求相对宽松一些。
在软实时系统中,任务的延迟可以超过预定时间,但是超过的延迟应该尽量减小,以达到更好的系统性能和用户体验。
例如,在多媒体应用中,要求视频播放的延迟尽可能小,以免出现卡顿的情况。
二、嵌入式实时操作系统嵌入式实时操作系统是一种运行在嵌入式计算机系统上的实时操作系统。
它通常被嵌入在具有特定功能的设备或系统中,以实时地完成特定的任务。
嵌入式实时操作系统的特点是高度可靠、实时性强、功耗低以及对硬件资源的优化利用。
与通用操作系统相比,嵌入式实时操作系统更加注重对实时任务的管理和调度。
它可以根据任务的优先级和时间要求,合理分配系统资源,确保任务在规定时间内得到处理和响应。
此外,嵌入式实时操作系统还通常具有小内核、快速启动和低资源消耗等特点,以满足对于设备功耗和响应速度的要求。
嵌入式实时操作系统被广泛应用于各个领域,如交通系统、医疗设备、工业自动化等。
例如,在交通系统中,嵌入式实时操作系统可以实时处理交通信号灯的状态,以确保交通流畅和安全。
在医疗设备中,嵌入式实时操作系统可以实时监测患者的生命体征,并根据需要发出相应的指令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
几种嵌入式实时操作系统的分析与比较2008-07-04 20:54种性能优良并被广泛应用的实时是4C/OS-II和eCos、VxWorks、μClinuxμ种操作系统的主要性能进行分析与比较,归纳出它操作系统。
本文通过对这4 们的选型依据和适用领域。
种操作系统的介绍 1. 4(1>VxWorks公司的产品,是目前嵌入式系统领域中应用很广WindRiver VxWorks是美国多个400 泛,市场占有率比较高的嵌入式操作系统。
VxWorks时操作系统由实相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定规范的内存管>POSIX(可移植操作系统接口时器和内存管理等功能,内建符合在核心方面甚至理,以及多处理器控制程序;并且具有简明易懂的用户接口, 8 KB。
町以微缩到OS-IIC/ (2> μC/OS-II是在μC-OS的基础上发展起来的,是美国嵌入式系统专家μJean J.Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。
μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
(3>μClinuxμClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。
同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCP /IP网络协议等。
因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。
(4>eCoseCos(embedded Configurable operating system>,即嵌入式可配置操作系统。
它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。
最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。
每个组件可提供大量的配置选项(实时内核也可作为可选配置>,使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。
2. 性能分析与比较任务管理、任务及中断间的同步与通信机制、内存管理、中断管理、文件系统、对硬件的支持和系统移植这几方面是实时操作系统的主要性能。
下面就从这几个方面着手对上述4种操作系统进行分析与比较。
2.1 任务管理任务管理是嵌入式实时操作系统的核心和灵魂,决定了操作系统的实时性1 / 7 能。
它通常包含优先级设置、多任务调度机制和时间确定性等部分。
2.1.1 优先级设置嵌入式操作系统支持多任务,每个任务都具有优先级,任务越重要,赋予的优先级应越高。
优先级的设置分为静态优先级和动态优先级两种。
静态优先级指的是每个任务在运行前都被赋予一个优先级,而且这个优先级在系统运行期间是不能改变的;动态优先级则是指每个任务的优先级(特别是应用程序的优先级>在系统运行时可以动态地改变。
2.1.2 多任务调度机制任务调度主要是协调任务对计算机系统资源的争夺使用。
对系统资源非常匮乏的嵌入式系统来说,任务调度尤为重要,它直接影响到系统的实时性能。
通常,多任务调度机制分为基于优先级抢占式调度和时间片轮转调度。
基于优先级抢占式调度:系统中每个任务都有一个优先级,内核总是将CPU分配给处于就绪态的优先级最高的任务运行。
如果系统发现就绪队列中有比当前运行任务更高的优先级任务,就把当前运行任务置于就绪队列中,调入高优先级任务运行。
系统采用优先级抢占方式进行调度,可以保证重要的突发事件及时得到处理。
时间片轮转调度:让优先级相同的处于就绪状态的任务按时间片使用CPU,以防止同优先级的某一任务长时间独占CPU。
在一般情况下,嵌入式实时操作系统采用基于优先级抢占式调度与时间片轮转调度相结合的调度机制。
2.1.3 时间的可确定性嵌入式实时操作系统甬数调用与服务的执行时间应具有可确定性。
系统服务的执行时间不依赖于应用程序任务的多少。
基于此特征,系统完成某个确定任务的时间是可预测的。
表1具体列出了4种操作系统的调度机制。
4种嵌入式实时操作系统都支持多任务,只是在支持任务数量上和任务调度机制上有所不同。
VxWorks具有高效的任务管理功能,它支持多任务,可分配256个优先级,支持优先级抢占式调试和时间片轮转调度,实时性最好。
μC/OS-II 内核是针对实时系统的要求设计实现的,只支持基于固定优先级抢占式调度;调度方法简单,可以满足较高的实时性要求。
μClinux在结构上继承了标准Linux的多任务实现方式,分为实时进程和普通进程,分别采用先来先服务和时间片轮转调度;仅针对中低档嵌入式CPU特点进行改良,且不支持内核抢占。
eCos调度方法丰富,提供了两种基于优先级的调度器(即位图调度器和多级队列调度器>,允许用户在进行配置时选择其中一个凋度器,适应性好。
2.2 任务及中断间的同步与通信机制实时操作系统的功能一般要通过若干任务和中断服务程序共同完成。
任务与任务之间、任务与中断间任务及中断服务程序之间必须协调动作,互相配合,这就涉及任务间的同步与通信问题。
嵌入式实时操作系统通常是通过信号量、互斥信号量、事件标志和异步信号来实现同步,通过消息邮箱、消息队列、管道和共享内存来提供通信服务。
由于互斥信号量的使用,带来了实时操作系统中常见的优先级反转问题。
优先级反转是一种不确定的延迟形式,当高2 / 7优先级任务企图访问已被低优先级占有的共享资源时,必须等待低优先级任务释放共享资源;如果这时低优先级任务被一个或多个中优先级任务抢占,那么高优先级任务被延迟的时间将更进一步延长,实时性难以保证。
因此,应采取相关措施以尽鼍避免出现优先级反转问题。
实时系统通常采用优先级继承和优先级置顶机制。
优先级继承足指拥有互斥量的任务被提升到与下一个在等待该互斥最的最高优先级任务相同的优先级;优先级置顶是指获得互斥量的任务将其优先级提升到一个事先规定好的值。
表2为4种操作系统的同步与通信机制的比较。
4种系统都具有灵话的任务间同步与通信机制,都可以通过信号量、消息队列来实现同步与通信,但是VxWorks与μClinux都不支持邮箱和事件标志,而且除了μClinux和eCos中的位图调度器,其他操作系统都采取了措施抑制优先级反转。
2.3 内存管理内存管理主要包括:内存分配原则,存储保护和内存分配方式。
2.3.1 内存分配原则内存分配原则包括快速性、可靠性和高效性。
其中,快速性要求内存分配过程要尽可能快,所以一般采用简单、快速的分配算法;可靠性指的是内存分配的请求必须得到满足;系统强调高效性的要求,不仅仅是对系统成本的要求,而且由于系统本身可配置的内存容量也是很有限的,所以要尽可能地避免浪费。
2.3.2 存储保护通常在操作系统的内存中既有系统程序也有用户程序,为了使两者都能正3 / 7 常运行,避免程序间相互干扰,需要对内存中的程序和数据进行保护。
存储保护通常需要硬件支持,在很多系统中都采用MMU,并结合软件实现;但由于嵌入式系统的成本限制内核和用户程序通常都在相同的内存空间中。
2.3.3 内存分配方式内存分配方式可分为静态分配和动态分配。
静态分配是在程序运行前一次性分配给相应内存,并且在程序运行期间中不允许再申请或在内存中移动;动态分配则允许在程序运行整个过程中进行内存分配。
静态分配使系统失去了灵活性,但对于实时性要求比较高的系统是必需的;而动态分配赋予了系统设计者更多自主性,可以灵活地调整系统的功能。
VxWorks对内存的使用采用的是Flat Mode,可被静态或动态链接。
VxWorks为用户提供了两种内存区域Region和Partition。
Region是变长的内存区,用户可以从创建的Region中分配Segment,其特点是容易产生碎片,但灵活并且不浪费;Partition是定长的内存区,用户可以从刨建的Partition中分配Buffer,其特点是不会产生碎片,技率高但是易浪费。
VxWorks采用最先算法分配内存。
μC/OS-II把连续的大块内存按分区来管理,每个分区中都包含整数个大小相同的内存块,但不同分区之间内存的太小可以不同。
用户动态分配内存时,只须选择一个适当的分区,按块来分配内存,释放时将该块放回到以前所属的分区,这样就消除了因多次动态分配和释放内存所引起的碎片问题。
μClinux是针对没有MMU的处理器设计的,不能使用处理器的虚拟内存管理技术,只能采用实存储器管理策略。
系统使用分页内存分配方式,在启动时对实际存储器进行分页。
系统对内存的访问是直接的操作系统对内存空间没有保护,多个进程可共享一个运行空间,所以,即使是一个无特权进程调用一个无效指针也会触发一个地址错误,并有可能引起程序崩溃甚至系统崩溃。
eCos对内存分配既不分段也不分页,而是采用一种基于内存池的动态内存分配机制。
通过两种内存池类来实现两种内存管理方法:一种是变长的内存池;另一种是定长的内存池,类似于VxWorb的管理方案。
表3为4种操作系统内存管理的比较。
2.4 中断管理中断管理是实时系统中一个很重要的部分,系统经常通过中断与外部事件交互。
主要考虑是否支持中断嵌套、中断处理机制、中断延时等。
(1>VxWorks的中断管理4 / 7VxWorks操作系统中断管理采用中断处理与普通任务分别在不同栈中处理的中断处理机制,使得中断只会引发一些关键寄存器的存储,而不会导致任务的上下文切换,从而极大地缩短了中断延时。
同时,VxWorks的中断处理程序只能在最短时间内通告中断的发生,而将其他的非实时处理尽量放入被引发的中断服务程序中来完成,这也缩短了中断延时。
但是凼为中断服务程序不在一个固定的仟务上下文中执行,而目没有任务控制块,所以所有中断服务程序使用相同的中断堆栈。
为了能处理最坏情况下的中断嵌套,必须分配足够大的中断堆栈空间。
(2>μC/OS-II的中断管理μC/OS-II中断处理比较简单。
一个中断向量上只能挂一个中断服务子程序ISR,而且用户代码必须都在ISR中完成。
ISR需要做的事情越多,中断延时也就越长。
内核所能支持的最大嵌套深度为255。
(3> μClinux的中断管理μClinux操作系统将中断处理分为两部分:顶半处理和底半处理。
在顶半处理中,必须关中断运行,且仅进行必要的、非常少、速度快的处理,其他处理交给底半处理;底半处理执行那些复杂、耗时的处理,而且接受中断。