系统架构设计师常见高频考点总结之操作嵌入式系统

嵌入式系统最标准的定义,通常表述为:"嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能 、可靠性 、成本 、体积 、功耗等严格要求的专用计算机系统。

一、 实时操作系统 (RTOS) 核心考点

1. RTOS 的本质特征

  • 确定性 :这是 RTOS 与 Windows/Linux 等通用系统最大的区别。它不要求速度最快,但要求在规定的时间内必须完成 (硬实时)或大概率完成(软实时)。

  • 高可靠性:系统不能轻易崩溃。

2. RTOS 性能评价指标(高频考点)

在评估一个 RTOS 好不好时,我们看以下指标(越短越好):

  • 上下文切换时间:CPU 保存当前任务现场,加载下一个任务现场所需的时间。

  • 最大中断延迟:从中断信号到达 CPU,到 CPU 开始执行中断服务程序(ISR)第一条指令的时间。

  • 任务抢占时间:高优先级任务从就绪状态到实际获得 CPU 控制权的时间。

  • 调度算法的效率:调度器决定哪个任务运行所需的时间(通常要求 O(1)复杂度)。

注意(避坑): 任务执行时间 (取决于应用程序代码的复杂度和 CPU 主频,属于应用层面的事,不是操作系统本身的性能指标。

二、 任务调度与并发控制

1. 调度方式

  • 抢占式:高优先级任务一旦就绪,立即剥夺低优先级任务的 CPU 使用权(RTOS 标配)。

  • 轮转调度:同优先级的任务按时间片轮流执行。

2. 优先级反转 ------ 必考难点

  • 现象 :高优先级任务(H)被低优先级任务(L)阻塞,而中优先级任务(M)抢占了 L 的 CPU,导致 H 迟迟无法运行。结果是:中优先级的 M 先于高优先级的 H 执行了。

  • 原因:L 占用了 H 需要的共享资源(如互斥锁),但 L 优先级太低,一直被 M 抢占,导致 L 没法快速释放资源。

3. 解决方案

  • 优先级继承:

    • 原理 :当高优先级任务 H 等待低优先级任务 L 持有的资源时,临时将 L 的优先级提升到与 H 相同。

    • 效果:L 变成了"高富帅",中优先级任务 M 无法抢占 L。L 能尽快执行完临界区代码并释放资源,H 就能拿到资源运行。L 释放资源后,优先级恢复原状。

  • 优先级天花板:

    • 原理:给每个共享资源设定一个"天花板优先级"(等于所有可能访问该资源的任务中的最高优先级)。任何任务只要访问该资源,其优先级直接提升到天花板级别。

根据常见软考题型,关于优先级继承的易错点通常如下,你可以对照复习:

  1. 优先级继承不能消除死锁:它只是解决优先级反转问题,死锁需要通过资源有序分配等方式解决。

  2. 优先级是动态变化的:只有在持有资源并阻塞了高优先级任务时才提升,不是一直提升。

  3. 不能解决所有反转:如果有复杂的嵌套锁,优先级继承可能会失效或变得极其复杂。

三、 中断与 I/O 管理

1. 中断 (Interrupt)

  • 中断向量表:内存中一块区域,存放中断服务程序的入口地址。

  • 中断处理流程:保护现场 → 执行 ISR 恢复现场 → 返回。

  • 不可重入函数 :在中断服务程序中,严禁调用不可重入函数(如 malloc, printf),否则会导致堆栈破坏或系统崩溃。

2. I/O 控制方式对比

  • 程序查询 (Polling):CPU 死循环检查,效率最低。

  • 中断驱动 (Interrupt-driven):外设准备好了通知 CPU,效率较高,适合少量数据。

  • DMA (直接存储器访问) :最快 。CPU 只需要发个指令,数据由 DMA 控制器直接在外设与内存之间传输,不经过 CPU。适合大数据块传输(如硬盘读写、网络数据)。

四、 存储管理核心

1. Cache (高速缓存)

  • 解决 CPU 与主存速度不匹配的问题。利用了局部性原理(时间局部性、空间局部性)。

2. MMU (内存管理单元)

  • 虚拟地址映射:将逻辑地址转换为物理地址。

  • 内存保护:防止进程越界访问。

3. Flash (闪存)

  • NOR Flash:代码可直接运行 (XIP),适合存 Bootloader 和内核,读取快,写入慢。

  • NAND Flash:容量大,便宜,不能直接运行代码,需加载到 RAM,适合做硬盘存数据。

相关推荐
东城居士2 天前
理解Linux RTC驱动
linux·嵌入式系统
东城居士6 天前
理解Linux LCD驱动编程
linux·嵌入式系统·1024程序员节
东城居士20 天前
理解设备树下的platform驱动编写
linux·嵌入式系统
玄芯散人22 天前
【金丹·76】CPU缓存三层塔
嵌入式系统·计算机体系结构·cpu缓存
东城居士1 个月前
Linux驱动阻塞与非阻塞访问的理解
linux·嵌入式系统
东城居士1 个月前
理解pinctrl和gpio子系统驱动
linux·嵌入式系统
东城居士1 个月前
验证第一个Linux字符驱动程序
linux·嵌入式系统
东城居士2 个月前
Linux驱动程序开发环境的快速搭建
linux·嵌入式系统
捷瑞电子工坊2 个月前
深入理解CMSIS内核函数:__disable_irq() 与 __enable_irq()
stm32·嵌入式系统·cmsis·中断控制·临界区保护
在水一缸3 个月前
从“铁锁”到开源:John Deere和解协议背后的维修权革命与技术启示
开源·嵌入式系统·软件架构·固件安全·维修权