Embed Toolkit

优先级反转可视化

演示 FreeRTOS 经典优先级反转问题与优先级继承协议(PIP)的修复效果

切换 PIP 开关,对比 high 任务的等待时间。经典反转下 mid 抢占持锁的 low 会让 high 等待远超 mid 执行时长;启用 PIP 后 low 临时继承 high 优先级,mid 无法抢占。

仿真控制
切换优先级继承(PIP)开关,对比有无修复时 high 任务的等待时间
HighTaskP3
最高优先级,需要 mutex 完成关键工作

High 任务整段执行都需要 mutex

MidTaskP2
中等优先级,不需要 mutex(反转的关键来源)

Mid 任务不使用 mutex,但优先级高于 low

LowTaskP1
最低优先级,先持有 mutex
High 等待时间(PIP off)
9 ms
High 等待时间(PIP on)
3 ms
改善幅度
6 ms
调度甘特图
横向显示每个任务的执行段,斜纹叠加表示该段持有 mutex
加载图表中...
关键事件日志
记录 mutex 获取/释放、阻塞、优先级继承
  • ACQUIREt=0ms low 获取 mutex
  • BLOCKt=3ms high 等待 mutex(被 low 持有)
  • FINISHt=10ms mid 执行完成
  • RELEASEt=12ms low 释放 mutex
  • ACQUIREt=12ms high 获取 mutex
  • RELEASEt=16ms high 释放 mutex
  • FINISHt=16ms high 执行完成
  • FINISHt=18ms low 执行完成