免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1607 | 回复: 2
打印 上一主题 下一主题

[其他] 请问这种情况,算是“优先级反转”吗? [复制链接]

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-08-30 16:32 |只看该作者 |倒序浏览
Job H M L,优先级依次降低,即便引入了“优先级继承”,也可能会出现"优先级反转"的情况

下面是关于“优先级继承”的描述
In real-time computing, priority inheritance is a method for eliminating priority inversion. Using this programming method, a process scheduling algorithm increases the priority of a process (A) to the maximum priority of any other process waiting for any resource on which A has a resource lock.


也就是说,“优先级继承”产生的条件是:Job H已经被Job L block,此时赋予Job L 'H'的优先级,Job M则不会抢占Job L。

那么问题来了:
假设Job L只是持有了共享资源,但是Job H暂未被调度,Job M抢占Job L;Job H调度,想要抢占Job M变得不可能,只能block。
请问这种情况算是“优先级反转”吗?

论坛徽章:
0
2 [报告]
发表于 2015-09-02 14:03 |只看该作者
回复 1# lxyscls


    为什么Job H抢占Job M不成功? H要抢占M肯定可以成功的,只是成功之后再去获取资源的时候会发现资源已经被L占用了,
    此时应该会把L的优先级提升到跟H同级,然后H放弃CPU,之后就会轮到提升了优先级的L占有CPU,直到L占用的资源释放,再降低L的优先级,接着再轮到H占用CPU,用完了再给M用。

    感觉就是 H 因为手里有把柄被 L 抓着,所以做个人情把 L 的优先级给提升到与自己同优先级的高度(前提是OS给H这个权限),帮 L 摆脱 M 的打扰,安静的使用完资源,然后 L 再乖乖的恢复自己本来的优先级(至少风光了一把)。
    当然 H 如果在 L 有把柄期间并不求着 L 什么,L 还是要被 M 欺负的, 因为 L 打不过 M,除非是 H 帮它打。

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2015-09-02 14:36 |只看该作者
本帖最后由 lxyscls 于 2015-09-02 14:39 编辑

回复 2# serenemoon


    有道理,H还是能抢占M的,这个时候“优先级继承”提升了L的优先级,那么H退出调度之后,就轮到L了,M抢不了L了

    或者说在H抢占M,发现资源不可用的时刻,算是“优先级反转”,但是“优先级继承”通过提升L优先级的方法,将这种情况压缩到了最短——H退出调度后,L上场了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP