优先级反转为什么会让高优先级任务长期等待,系统可以怎样限制其影响
简答题困难417 次浏览
参考答案与解析
# 核心结论
优先级反转的根因是调度优先级与资源依赖顺序不一致:高优先级任务需要低优先级任务持有的锁,因此高优先级任务必须等待低优先级任务先运行并释放资源;如果此时不使用该锁的中优先级任务不断抢占低优先级持锁者,高优先级任务就会间接被中优先级任务长期推迟。严重时,等待时间不再只等于低优先级任务的临界区长度,而取决于中优先级负载持续多久,因而可能没有可接受的上界。
限制影响的主要方法包括缩短临界区、禁止持锁执行无界或阻塞操作、减少锁嵌套、采用优先级继承或优先级上限协议,并对最坏阻塞时间进行分析。仅仅提高高优先级任务本身的优先级通常无效,因为它已经因等待锁而不可运行。
# 底层机制
假设低优先级任务 L 先获得互斥锁
