跳转至

01 嵌入式系统软件组成与实时操作系统

考频:★★★★★(高频,每年必考)


一、嵌入式软件层次结构

嵌入式软件从底层到上层,分为以下几层(从低到高):

┌──────────────────────────────────┐
│        应用程序(Application)      │  ← 最上层,用户直接使用
├──────────────────────────────────┤
│  文件系统 / 网络协议栈 / GUI 中间件   │
├──────────────────────────────────┤
│      操作系统(OS Kernel)          │
├──────────────────────────────────┤
│    驱动程序(Device Driver)        │
├──────────────────────────────────┤
│    引导程序(Bootloader / HAL)      │  ← 最底层,上电第一个运行
└──────────────────────────────────┘
            硬件(Hardware)

[!TIP] 填空题记忆口诀:引(引导程序)→ 驱(驱动程序)→ 操(操作系统)→ 文/网/图 → 应(应用程序)

填空题标准答案

嵌入式软件通常由以下部分组成: 1. 引导加载程序(Bootloader) 2. 外设驱动程序(Device Driver) 3. 操作系统(OS) 4. 文件系统 / 网络协议栈 / GUI 5. 应用程序


二、实时系统特征

实时系统必须具备的特征

特征 说明
异步 I/O 能响应随机发生的外部事件
中断处理 快速响应硬件中断
优先级调度 高优先级任务优先执行
时间确定性 响应时间可预测,有时间保证

[!CAUTION] 时间片轮转调度不是实时 OS 必须具备的特征!

考题中如果问"实时操作系统应具有哪些特征",选项里有"时间片轮转调度"就不选它(选 D 是陷阱)。 时间片轮转是分时系统的特征,实时系统强调的是优先级抢占,而不是平等地分配时间片。


三、实时时限:相对时限 vs 绝对时限

考频:★★★★(填空常考)

时限类型 定义 举例
相对时限(Relative Deadline) 从任务请求发出到必须响应完成的最大允许时间段 "必须在 10ms 内响应"
绝对时限(Absolute Deadline) 任务必须完成的具体截止时刻(某个固定时间点) "必须在 14:30:00.500 前完成"

记忆方法: - 相对 = 一段时间(时间段,从现在开始算) - 绝对 = 一个时刻(时间点,某个固定时间)


四、硬实时 vs 软实时

考频:★★★★★(选择题必考)

定义对比

类型 定义 后果
硬实时(Hard Real-Time) 必须严格在时限内完成,不允许任何超时 错过时限 = 系统失败(可能造成灾难)
软实时(Soft Real-Time) 尽量在时限内完成,偶尔超时可以容忍 错过时限 = 性能下降,但系统不会崩溃

常见系统分类

系统名称 实时类型 备注
VxWorks 硬实时 工业级 RTOS,航空航天常用
QNX 硬实时 微内核架构,车载系统常用
μC/OS-II 硬实时 嵌入式教学标准 RTOS
Windows Embedded 软实时 微软嵌入式版本
嵌入式 Linux 软实时 通用 Linux 嵌入式版
μCLinux 软实时 无 MMU 的 Linux,注意:是软实时!

[!WARNING] 高频陷阱:μCLinux 是软实时,不是硬实时! 考题中常把 μCLinux 混入"硬实时OS"选项,要选三个硬实时的话,答案是 VxWorks、QNX、μC/OS-II


五、实时系统的重要性质:可预测性

[!NOTE] 实时系统最重要的性质是可预测性(Predictability)

具体含义:RTOS 能对任务的响应时间执行时间进行准确判断,确保在规定时间内完成任务。

填空答案:实时操作系统最重要的性质是可预测性,即能对任务的响应时间(有时也说"执行时间")进行判断。


六、操作系统内核结构

考频:★★★★(单内核/微内核对比必考)

单内核(宏内核,Monolithic Kernel)

所有操作系统功能都运行在同一个内核空间中,功能紧密耦合。

代表系统:Linux、Unix、Windows CE(WinCE)、Android、DOS

优点 缺点
运行效率高,性能好 内核体积大,占用内存多
模块间通信开销小 可靠性低(一个模块出错影响全局)
不易扩展和裁剪

微内核(Microkernel)

内核只保留最基本功能(调度、IPC、内存管理),其余功能以服务进程方式运行在用户空间。

代表系统:QNX、L4、Mach

优点 缺点
内核体积小,占用内存少 功能切换(进程间通信)开销大
可靠性高,灵活易扩展 性能不如单内核
便于移植和定制

[!CAUTION] 两个常见陷阱:

  1. WinCE 是单内核,不是微内核!考题里经常把 WinCE 放在微内核选项里迷惑你。

  2. 单内核的缺点是"内存大、可靠性低、不易扩展","内核切换开销太大"是微内核的缺点,不是单内核的缺点。


七、iOS 与 Unix 的关系

[!NOTE] iOS 基于 UNIX

苹果的 macOS 和 iOS 底层都使用 XNU 内核,XNU 基于 Mach 微内核 + BSD Unix,所以说 iOS 是 UNIX 系的操作系统。

填空/选择答案:iOS 基于 UNIX(或说"iOS的底层内核基于Unix")。


本章小结

实时OS特征:异步I/O + 中断处理 + 优先级调度 + 时间确定性
(时间片轮转 ≠ 实时OS特征!)

硬实时三剑客:VxWorks + QNX + μC/OS-II
软实时:嵌入式Linux + μCLinux + Windows Embedded

内核结构:
  单内核 → Linux/WinCE/Android(性能好,可靠性差)
  微内核 → QNX/L4(灵活可靠,切换开销大)

真题演练

以下是NCRE三级嵌入式真题中与本节相关的典型考题:

1. IEEE的实时UNIX分委会认为实时操作系统应该具备若干特征,下面哪一项不是实时操作系统必须具有的特征?( )

  • A)具有异步I/O和中断处理能力
  • B)任务切换时间和中断延迟时间确定
  • C)优先级中断和调度
  • D)轮转调度
答案解析

答:D IEEE的实时UNIX分委会认为实时操作系统应具备7个特征:具有异步I/O和中断处理能力;任务切换时间和中断延迟时间确定;优先级中断和调度;抢占式调度;内存锁定;连续文件;同步。轮转调度不是实时操作系统的必备特征。


2. 一般按照对外部事件的响应时间快慢,将嵌入式操作系统分成强实时型和普通实时型。以下均为强实时嵌入式操作系统的是( )。

  • A)VxWorks,pSOS,uC/OS-II
  • B)VxWorks,pSOS,Windows Embedded
  • C)pSOS,uC/OS-II,uCLinux
  • D)pSOS,Windows Embedded,Symbian
答案解析

答:A 强实时嵌入式操作系统有VxWorks、pSOS、uC/OS-II。Windows Embedded、uCLinux和Symbian属于普通实时(软实时)系统。


3. 以下关于微内核操作系统的叙述中,错误的是( )。

  • A)内核小巧,传统操作系统内核中的许多部分都被移出内核
  • B)接口一致,所有进程请求使用统一接口,进程不区分内核模式和用户模式服务
  • C)各个功能模块之间松散耦合,只完成服务功能,系统管理功能交给一个或多个特权服务程序
  • D)微内核功能扩充方便,而且各个功能之间的切换而引起的开销比较小
答案解析

答:D 微内核操作系统将传统内核中的许多部分移出内核,接口一致,模块间松散耦合。微内核功能扩充确实方便,但各个功能之间的切换开销比较大(而非比较小),这是微内核相对于单内核的主要缺点。


4. 【填空题】响应时间(Response Time)是计算机从识别一个外部事件到做出响应的时间。在RTOS运行过程中响应时间是重要指标之一,其具体指标包括:_延迟时间和_切换时间。

答案

答:中断;任务 RTOS的响应时间具体指标包括中断延迟时间(从中断发生到开始执行中断服务程序的时间)和任务切换时间(从一个任务切换到另一个任务所需的时间)。这两个指标是衡量RTOS实时性能的关键参数。