关于优先级反转

如果一个低优先级任务C获取信号量后,在这个低优先级任务C执行过程中,RTOS有可能调度到一个中等优先级B的任务上执行,一个想获取信号量的高优先级任务A不得不等待,直到中等优先级任务B放弃了处理器,低优先级任务C直到它获得了处理器后才会释放信号量.这个过程中,中等优先级任务B会不让C释放信号量,因而阻塞了高优先级任务A,这就是优先级反转.

有的RTOS用优先级继承解决这个问题,即在任务C持有信号量并且任务A在等待信号量时暂时把任务C的优先级提高到与任务A相同.

猜你喜欢

转载自blog.csdn.net/rannar/article/details/82113466