云计算百科
云计算领域专业知识百科平台

RTOS 面试实战:任务优先级调度原理

一、场景引入

在工业控制、智能穿戴等实时性要求高的嵌入式项目中,经常会遇到紧急事件响应不及时、低优先级任务长时间占用 CPU 的问题,比如电机控制场景里过流保护任务必须优先于按键扫描、日志打印任务执行,否则会出现硬件烧毁的事故。优先级调度是 RTOS 保障实时性的核心机制,理解其原理是定位调度时序问题、设计合理任务优先级的必备基础,也是 RTOS 方向面试的必考点。

二、原理解析

RTOS 优先级调度的核心逻辑是永远选择当前就绪队列中优先级最高的任务获得 CPU 使用权,主要分为三类调度策略:

  • 抢占式调度:高优先级任务就绪时可直接抢占低优先级任务的 CPU,是绝大多数 RTOS(FreeRTOS、RT-Thread、UCOS)的默认策略;
  • 时间片轮转调度:仅适用于同优先级的多个就绪任务,需配置configUSE_TIME_SLICING为 1(FreeRTOS 默认开启)才会生效,同优先级任务按固定时间片(通常为 1 个 SysTick 周期)轮流执行,只有当同优先级无其他就绪任务时才会调度更低优先级任务;
  • 协作式调度:任务主动放弃 CPU(调用延时、阻塞 API、主动让出 CPU 的 API 如taskYIELD())才会触发调度,实时性最差,极少使用。
  • 底层实现依赖三个核心组件: ① 优先级位图:用比特位标记对应优先级是否有就绪任务,通过计

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » RTOS 面试实战:任务优先级调度原理
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!