操作系统 — 知识地图
← 学科总览 | ← 主页
状态:📌 与 FreeRTOS 对照学习中
用法:先在这里看“为什么需要这个机制”,再跳到 FreeRTOS 看它在 MCU 里怎么实现。
🔗 前置知识
- 学习操作系统前,先补一下计算机组成里的 存储器。
- 还要知道函数调用、栈、中断、寄存器保存这些基础,不然后面任务切换、
SysTick、PendSV 会一直混。
🔗 对照学习总图
核心章节
🔴操作系统与 RTOS 的关系
🔴进程、线程与任务
- 对照到 FreeRTOS:任务模型。
- 先搞清“资源拥有者”和“执行流”这两个角色为什么会被分开。
- 学到这里要能说清:在大多数 MCU 场景里,
Task 更像“线程”;TCB + 任务栈 + 可调度状态 是重点。
🔴调度算法与上下文切换
- 对照到 FreeRTOS:调度与上下文切换。
- 教材里先抓住“运行态、就绪态、阻塞态”之间是怎么切换的,再看不同调度算法的取舍。
- 学到这里要能说清:FreeRTOS 更偏“固定优先级抢占 + 同优先级轮转”,核心不在背算法名,而在理解“阻塞唤醒”和“现场保存恢复”。
🔴同步、互斥与通信
- 对照到 FreeRTOS:同步互斥与通信。
- 这是操作系统和 FreeRTOS 最强相关的一章,必须深学。
- 学到这里要能说清:互斥是“保护共享资源”,同步是“等待条件成立”,通信是“传数据或事件”,三件事不能混着背。
🔴死锁、饥饿与优先级反转
- 对照到 FreeRTOS:同步互斥与通信。
- 教材里先抓死锁四条件、避免策略、资源分配顺序。
- 学到这里要能说清:二值信号量不等于互斥量,优先级反转是 RTOS 里非常实际的问题。
🔴中断与任务协作
- 对照到 FreeRTOS:中断与任务协作。
- 教材里先看异步事件为什么不能一直靠轮询解决,再看中断为什么要“短平快”。
- 学到这里要能说清:ISR 负责抢时间,任务负责做重活;中断里只做必要动作,然后通知任务。
🔴时间管理与软件定时器
- 对照到 FreeRTOS:时间管理与软件定时器。
- 抓住两个点:系统时间基准怎么来,周期任务为什么不能全靠
delay 硬拖。
- 学到这里要能说清:
vTaskDelay() 更像“相对延时”,vTaskDelayUntil() 更适合稳定周期任务。
🔴内存管理
- 对照到 FreeRTOS:内存管理。
- 教材里先把栈、堆、碎片、分配策略这些基本概念吃透。
- 学到这里要能说清:FreeRTOS 的内存重点不是虚拟内存,而是“任务栈够不够、堆会不会碎、是否该改成静态分配”。
🔴和 FreeRTOS 关联较弱但教材必须学的部分
- 对照到 FreeRTOS:边界与易混点。
- 这部分包括:虚拟内存、分页、页面置换、文件系统、磁盘 I/O 管理、用户态与内核态。
- 这些章节仍然重要,因为它们决定你有没有“完整操作系统观”;只是别拿它们去硬套 MCU + FreeRTOS。
笔试题分类索引
以下题库按当前 MOC 章节顺序整理,直接从这里刷题。
高频考点
- 进程、线程、任务三者的关系
- 运行态、就绪态、阻塞态之间怎么切换
- 抢占式调度、时间片轮转、阻塞唤醒分别是什么
- 二值信号量、计数信号量、互斥量的区别
- 死锁四个必要条件与解决方法
- 优先级反转为什么会出现,为什么互斥量要优先级继承
vTaskDelay() 和 vTaskDelayUntil() 的区别
- 硬中断、软中断、任务上下文切换分别在干什么