注册
登录
电子工程世界-论坛
返回首页
EEWORLD首页
频道
EE大学堂
下载中心
Datasheet
专题
单片机
物联网
汽车电子
嵌入式
手机/便携
模拟电子
家用电子
网络通信
电源管理
工业控制
测试测量
半导体设计/制造
安防电子
传感器
医疗电子
wateras1的个人空间
https://home.eeworld.com.cn/space-uid-361439.html
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
借用开发板
论坛
淘帖
Collection
查看新帖
最新回复
社区活动
联系管理员
我的空间
帖子
日志
收藏
好友
勋章
积分
安全验证
请完成以下验证码
日志
UCOSII优先级反转及解决
已有 649 次阅读
2016-3-28 13:57
|
个人分类:
UCOSII
|
优先级
(1)什么是优先级反转
简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了。那在什么情况下会生这种情况呢?
假设三个任务准备执行,A,B,C,优先级依次是A>B>C;
首先:C处于运行状态,获得CPU正在执行,同时占有了某种资源;
其次:A进入就绪状态,因为优先级比C高,所以获得CPU,A转为运行状态;C进入就绪状态;
第三:执行过程中需要使用资源,而这个资源又被等待中的C占有的,于是A进入阻塞状态,C回到运行状态;
第四:此时B进入就绪状态,因为优先级比C高,B获得CPU,进入运行状态;C又回到就绪状态;
第五:如果这时又出现B2,B3等任务,他们的优先级比C高,但比A低,那么就会出现高优先级任务的A不能执行,反而低优先级的B,B2,B3等任务可以执行的奇怪现象,而这就是优先反转。
(2)如何解决优先级反转
高优先级任务A不能执行的原因是C霸占了资源,而C如果不能获得CPU,不释放资源,那A也只好一直等在那,所以解决优先级反转的原则肯定就是让C尽快执行,尽早把资源释放了。基于这个原则产生了两个方法:
2.1 优先级继承
当发现高优先级的任务因为低优先级任务占用资源而阻塞时,就将低优先级任务的优先级提升到等待它所占有的资源的最高优先级任务的优先级。
2.2 优先级天花板
优先级天花板是指将申请某资源的任务的优先级提升到可能访问该资源的所有任务中最高优先级任务的优先级.(这个优先级称为该资源的优先级天花板)
2.3 两者的区别
优先级继承:只有一个任务访问资源时一切照旧,没有区别,只有当高优先级任务因为资源被低优先级占有而被阻塞时,才会提高占有资源任务的优先级;而优先级天花板,不论是否发生阻塞,都提升,即谁先拿到资源,就将这个任务提升到该资源的天花板优先级。
收藏
邀请
举报
全部
作者的其他最新日志
•
fd异常排查
•
使用 FlameGraph 分析 CPU 占用高的问题
•
docker服务在arm平台上部署安装方法
评论 (
0
个评论)
涂鸦板
您需要登录后才可以评论
登录
|
注册
评论
wateras1
加为好友
给我留言
打个招呼
发送消息
热门文章
头条资讯
AMD幽灵散热器,不止于静
4万亿餐饮消费市场,吉野家的数字化转型方法论 | 最佳实践案例
SIGGRAPH 21 | 免费学用 Universal Scene Description,开启元宇宙探索之路
土豪机三星W2016“证件照”曝光,3.9英寸双屏幕
台湾芯片出口,暴跌 21%
黑鲨5 Pro:全面进阶,畅玩游戏
新增数据手册
PRC207500K680MR
APH-2-02-SDB-SG05
KIS112-293TG
U713212221
MCH0805L2325FZBU
C0603T309D1GAC7040
热搜器件
926868-3
IRFR9120NTRLPBF
MXLSMCJ13A
400BXC1.8MEFC8X11.5
t6790
RNU1J330MDN1
推荐下载
高层楼宇室内分布覆盖关键问题探讨
TFT3.5驱动WK35055_INI 3.3V.zip
win7-dnw下USB驱动及安装方法
wqdewdwqdweqf ertegergerg
SailorFB简易使用手册(不使用LaunchPad).
一个基于MMU的操作系统
推荐关注
瑞芯微RK356X主板复用接口配置方法,触觉智能分享
深入探索明远智睿 SSD2351 开发板的魅力
【航芯ACM32F403开发板测评】 - (1)MDK工程
机械臂如何稳稳上桌?Mujoco场景修改实操
明远智睿 SSD2351 开发板:性能强劲,功能丰富
Rviz 同时显示多个独立 URDF!解决双机械臂+底盘等场景(球体+方块实例演示)