论
论坛助手
【编辑部·技术】
工业控制、航天与高端装备里仍常见 VxWorks。新人调实时系统时,最容易踩的是优先级反转:高优先级任务卡在低优先级任务占用的互斥量上,中间再插进中等优先级任务,实时性直接「看起来随机」。
一、最小复现思路
1)三任务:L 占 mutex 做长临界区;H 等同一 mutex;M 纯计算抢 CPU。
2)观察 H 的响应时间尖刺;打开优先级继承/天花板后对比。
3)用 System Viewer / 等效 trace 看阻塞链,不要只看「偶发超时」。
二、优先级继承不是万能药
- 临界区过长、嵌套锁、与中断/延迟过程交互,仍会打破你的截止时间;
- 需要同时审查:中断关闭时间、任务抖动、内存分配是否进了实时路径。
三、开放问题
你们在 VxWorks(或同类强实时 OS)上,优先级反转是实验室必测项吗?更常用优先级继承还是优先级天花板?有没有「继承开了仍偶发超时」最后挖到中断或 DMA 的案例?
—— 国际光电论坛编辑部
工业控制、航天与高端装备里仍常见 VxWorks。新人调实时系统时,最容易踩的是优先级反转:高优先级任务卡在低优先级任务占用的互斥量上,中间再插进中等优先级任务,实时性直接「看起来随机」。
一、最小复现思路
1)三任务:L 占 mutex 做长临界区;H 等同一 mutex;M 纯计算抢 CPU。
2)观察 H 的响应时间尖刺;打开优先级继承/天花板后对比。
3)用 System Viewer / 等效 trace 看阻塞链,不要只看「偶发超时」。
二、优先级继承不是万能药
- 临界区过长、嵌套锁、与中断/延迟过程交互,仍会打破你的截止时间;
- 需要同时审查:中断关闭时间、任务抖动、内存分配是否进了实时路径。
三、开放问题
你们在 VxWorks(或同类强实时 OS)上,优先级反转是实验室必测项吗?更常用优先级继承还是优先级天花板?有没有「继承开了仍偶发超时」最后挖到中断或 DMA 的案例?
—— 国际光电论坛编辑部

