当前位置: 首页 > news >正文

62.RTOS调度原理

RTOS任务调度底层逻辑:

核心总结

任务控制块 TCB
每个任务的栈指针、任务状态、优先级、延时时间、入口函数等所有信息,都封装在一个结构体里,就是TCB

「链表节点」本质就是TCB 结构体自带链表前后指针

用链表管理所有任务
RTOS 维护多条链表:

  • 就绪链表:能马上运行的任务
  • 延时/阻塞链表:挂起、延时、等待信号量/队列的任务
  • 挂起链表:手动挂起的任务
    所有任务TCB都挂在不同链表上,用链表组织所有任务信息

SysTick 中断是调度触发源
SysTick 定时进中断,在中断里做几件关键事:

  • 遍历/操作链表:延时时间减1,时间到就把任务从阻塞链表挪到就绪链表(增删改查)
  • 任务优先级比对,选出最高优先级就绪任务
  • 触发 PendSV 做任务上下文切换(保存当前任务现场、恢复新任务现场)

真正链表增删、状态迁移逻辑,一般放在:

  • SysTick 中断服务函数里做延时计时、链表迁移
  • 上下文切换、任务栈现场保存恢复单独放在PendSV 异常里(优先级最低,适合收尾切换)

不是所有链表操作都全塞在SysTick里,但核心驱动确实是 SysTick 节拍中断 + 链表TCB管理

RTOS 就是:
每个任务 = 一个带链表节点的TCB结构体
SysTick 定时中断扫描链表,做任务状态迁移、延时到期,再通过PendSV切换最高优先级任务运行

说白了 RTOS 底层就三件事,完全是数据结构 + 中断 + 链表

  1. TCB结构体存每个任务的所有信息
  2. 多条链表分门别类管:就绪、延时、阻塞、挂起任务
  3. SysTick 周期性中断扫链表、改状态、挑最高优先级任务,PendSV 做栈上下文切换

从原理上讲:确实就是链表增删改查 + 中断调度,没任何玄学。


为啥很多人觉得难?

不是原理难,是工程细节堆出来的

  1. 汇编级上下文切换(寄存器压栈、出栈,新手懵)
  2. 优先级抢占、时间片轮转、同优先级调度逻辑
  3. 延时链表优化、空闲任务、堆栈溢出检测
  4. 信号量/队列/互斥锁,本质也都是链表+TCB阻塞挂载
  5. 中断优先级分组、临界区保护、防止调度乱套

直白说

裸机:while(1) 大循环轮询
RTOS:把大循环拆成若干个任务,用链表管起来,用SysTick定时自动帮你轮询+抢占

http://www.jsqmd.com/news/782942/

相关文章:

  • CANN/AMCT大模型Cast量化
  • CANN/sip信号处理加速库CalOperation
  • CANN/hixl LLM-DataDist数据结构
  • 6G时代零接触式普适AI即服务架构:融合区块链与DRL的自动化AI交付
  • cann/runtime其他接口API文档
  • 顶会论文模块复现与二次创新:二次创新:将 DETR 的查询式检测头蒸馏进 YOLOv11,打造混合式 Anchor-free 头
  • 模型诊断:从冲突集到命中集,构建高效故障定位系统
  • CANN/catlass Gemm/Block类模板概述
  • DeepEP V2 为什么值得做 MoE 的团队现在就关注?真正先拖慢吞吐的,不是专家数,而是 EP 通信还在抢 SM
  • 如何高效实现魔兽争霸3现代化兼容?WarcraftHelper实战指南
  • CANN/driver容器共享配置查询
  • CANN/cannbot-skills 模型审查专家代理
  • GD32中的DMA使用教程
  • HCOMM通信算子NPU环境测试
  • Kemptide (Phosphate Acceptor Peptide);LRRASLG
  • 【算法】小白也能懂 · 第 2 节:数组双指针技巧(快慢指针、左右指针)
  • CANN/atvoss向量算子库概述
  • 别再盲目自学 CTF!零基础专属入门完整路线,看完直接上手实战
  • 面向对象设计原则在Java开发中的应用
  • CANN/metadef GetAddr函数API文档
  • 可解释AI在膝骨关节炎诊断中的应用:从黑盒模型到临床可信赖的决策伙伴
  • 医疗生成式AI的伦理治理:GREAT PLEA框架下的公平、可靠与问责实践
  • CANN/tensorflow AOE调优配置
  • CANN/asc-devkit AllocTensor API
  • 遥感图像分类可解释AI方法:定量评估与工程实践指南
  • 显卡驱动冲突终极解决方案:Display Driver Uninstaller深度使用指南
  • 第8天:常用数据结构之列表
  • AI安全新范式:从红蓝对抗到紫队协同的实战指南
  • 3个核心功能让你轻松掌握QtScrcpy:免费开源的Android投屏控制终极指南
  • 毕业论文查重网站终极横评:知网/维普/PaperPass/PaperYY谁最准?