目录
优先级翻转就是一个中断优先级的任务在某种情况下,比高优先级任务优先执行,造成了一种任务优先级翻转的现象。
补充说明:这种情况的一种情景:
前置条件:当前有三个任务A,B,C优先级大小是A>B>C;信号量M
C任务正在执行,它持有信号量M,A优先级任务需要通过信号量M去访问一个共享资源,但是被C占有导致,A被阻塞,可能出现C运行中,出现比A低的B优先级任务(不需要这个信号量执行任务)抢占了C的优先级。造成A和B任务翻转。
A
当前有三个任务A,B,C优先级大小是A>B>C;共享资源M。就是1中描述的现象。
造成任务调度实时性不准确;
造成任务逻辑错误;
造成系统崩溃;
方法一:程序规划的时候,减少互斥和信号量的使用。
方法二:使用互斥量,因为互斥量有优先级继承的特性。
方法三:动态调整优先级:当有比正在执行的任务优先级高的任务也访问共同资源时,把正在执行的任务优先级提到最高优先级,执行完毕后再变会原来的优先级。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有