优先级翻转
参考文档
简介
涉及到三个任务
- A 10 需要获取资源锁 t
- B 20 无需获取资源锁
- C 30 需要获取资源锁 t
在某一时刻,线程A获得资源锁,进行执行; - 在A获得锁期间,任务B准备就绪,由于其优先级较高因此可以抢占A进行运行;
- 在B运行期间,C准备就绪开始运行,但是由于C也要获取资源锁t,而且此时t已经被锁住,因此C只得让出CPU
- 之后B重新获得CPU进行执行
- 在B运行期间,C准备就绪开始运行,但是由于C也要获取资源锁t,而且此时t已经被锁住,因此C只得让出CPU
可以看到,高优先级的C给A让出执行很正常,因为它要等待资源锁释放;但是C竟然把CPU让给了不需要锁的,中优先级的任务B
- 这就是优先级翻转
优先级翻转
http://example.com/2024/08/30/嵌入式-开发/优先级翻转/