RTOS(Real-Time Operating System,实时操作系统)是面向嵌入式场景裁剪过的操作系统。它的核心目标不是「吞吐量最大」,而是任务响应时间的可预测性——保证关键任务在确定的时限内得到执行。

一句话定位

RTOS = 能跑在单片机上、以「确定性」和「实时性」为第一目标的迷你操作系统。

知识体系

flowchart TD
    A[RTOS] --> B[核心概念]
    A --> C[调度机制]
    A --> D[任务间通信]
    A --> E[常见 RTOS]

    B --> B1["任务 Task / 线程"]
    B --> B2["优先级 Priority"]
    B --> B3["阻塞 / 就绪 / 运行"]
    B --> B4["时间片与滴答 Tick"]

    C --> C1["抢占式调度"]
    C --> C2["优先级反转与继承"]
    C --> C3["临界区与关中断"]

    D --> D1["信号量 Semaphore"]
    D --> D2["互斥量 Mutex"]
    D --> D3["消息队列 Queue"]
    D --> D4["事件标志组 / 邮箱"]

    E --> E1["FreeRTOS 最流行"]
    E --> E2["RT-Thread 国产"]
    E --> E3["μC/OS-II III"]
    E --> E4["Zephyr / ThreadX"]

核心要点

  • 硬实时 vs 软实时:硬实时(如刹车控制)超时即失败;软实时(如视频播放)偶有超时可接受。
  • 任务与优先级:RTOS 把程序拆成多个独立任务,每个任务有优先级,高优先级任务可抢占低优先级任务。
  • 调度器:抢占式 + 时间片轮转是主流;就绪表中总是运行最高优先级任务。
  • 优先级反转:低优先级任务持有高优先级任务需要的锁时会导致高优先级阻塞,用优先级继承解决。
  • 任务通信:任务间不直接共享变量,而是用信号量、互斥量、消息队列、事件标志组来同步与传数据。
  • 裸机 vs RTOS:裸机的「前后台 + 状态机」简单但难扩展;任务一多、实时性要求一高,就该上 RTOS。
  • 最小系统:Tick 定时器 + 调度器 + 任务栈管理,是 RTOS 的心脏。

与前后台架构对比

维度裸机前后台RTOS
结构主循环 + 中断多任务并发
实时性靠中断和拆分靠优先级抢占
可扩展性差好
内存开销极小较大

相关