在实验中碰到了个问题。就是顶置优先级时候,任务的优先级在什么时候切换。
在实验中,使用优先级顶置协议时候,两个任务,任务A和任务B是怎样切换的?
第一个实验是这样的:顶置优先级设置成15,任务A、B优先级设置成20.
实验结果是当任务A释放mtx时候,任务B立即获得了执行权。此时任务B还没有开始申请mtx,不会将自己的优先级提升。根据输出,B的优先级仍然是20,但它竟然得到了优先权将A抢断。
再次实验,顶置优先级设置成20,任务A、B的优先级仍认识20.
实验结果是,任务A即使释放了mtx,任务B也不会执行。为什么上个实验,B在优先级为20的时候能抢断A,而这次却不行了?
我的问题是,两个任务的优先级是在什么时候切换的?优先权分配机制是怎样的?