优先级反转

2019-08-14 03:39发布

代码见网站 http://paste.ubuntu.com/25456722/
代码烧进去后立即输出
TASK2 RUNNING!
TASK3 PENDING FOR SEM
TASK3 GET SEM
然后进入漫长等待,然后输出
TASK1 PENDING FOR SEM
TASK1 GET SEM
TASK2 RUNNING!
TASK3 PENDING FOR SEM
TASK3 GET SEM


按照我的理解,第一次输出后,TASK3 进入OSSched,那应该跳转到 TASK1,如果500ms还没到,应该再跳转到 TASK2,如果TASK2 1s还没到,应该再跳转到TASK3,然后在到 TASK1,TASK1 在等待信号量,然后跳转到 TASK2,这时候 TASK2 应该每隔 1s 输出一次 TASK2 RUNNING! 啊,为什么会进入漫长的等待呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。