您好、欢迎来到现金彩票网!
当前位置:ag视讯 > 高优先级 >

什么是优先级反转+有何危害+如何避免和解决

发布时间:2019-07-07 15:11 来源:未知 编辑:admin

  任务调度器,总是去激活某个,在所有任务中优先级是最高的,且处于就绪状态的,任务,即让其去执行

  当然,任何任务,都可能由于,需要某种资源,而该资源被别人(别的任务)占用,而无法继续运行下去

  任务调度器,总是去激活某个,在所有任务中优先级是最高的,且处于就绪状态的,任务,即让其去执行

  但是,当某个最高优先级的任务A,由于其所需要的某个资源被某个低优先级的任务C占用了(还没使用完,还没释放),所以高优先级任务A就被阻塞了。

  此高优先级的任务A,必须等到低优先级任务C,把其所占用的资源释放掉后,才能继续运行。

  但是要等到低优先级任务C释放其所占用的资源的话,则很明显,必须要先让低优先级的任务C去执行,等低优先级任务C执行完毕后,才能去释放,高优先级任务A所希望得到的那个资源。

  在高优先级任务A执行的这段时间内,某个中优先级的任务B,已经处于就绪状态了。

  当高优先级的任务A,由于所需资源被占用而挂起,然后中优先级的任务B,由于比(本来打算去调度执行的)低优先级任务C的优先级高,所以被调度执行,然后B去一直执行,直到结束。

  本来应该是优先级最高的任务A先执行的,结果却变成了,比优先级最高的任务A,的优先级低一些,中等优先级任务B,先执行了。

  好像是:高优先级任务A和中优先级任务B,两者之间的优先级调换了,反转了一样。

  像对于此处的优先级反转,也无法完全理解的时候,自然也不会去考虑此概念背后的含义。

  而实际上,不对一个问题背后的现象,原因,去搞清楚的话,自然也是无法理解相关的概念的

  (对于,对现实世界中的应用情况不了解,对于概念也理解的不深的话,很可能就会问)

  (不就是个优先级反转嘛)即使,发生了优先级反转了,又如何?(地球还不是照转?!)

  1.优先级反转,这个概念,往往都是在嵌入式领域内,尤其是嵌入式实时系统方面,才会提及

  2.嵌入式实时操作系统,最最重要的指标就是:确保任务执行时间是可预测的,即涉及到最后期限deadline

  要确保,任何时刻,执行某个任务,都不能超过某个时间,比如1ms(我随便举例的)

  由于本身基于优先级设计的任务,每个优先级不同的任务,往往对应着实际的现实中的执行的任务

  1.当年火星探路者号(Mars Pathfinder),就由于,此处所说的,优先级反转,而导致了内部执行逻辑出错的bug:

  在1997年7月4号发射后,在开始搜集气象数据之后没几天,系统(无故)重启了。

  后来,当然,被相关技术人员找到问题根源,就是,这个优先级反转所导致的,然后修复了此bug。

  既然,相对来说,优先级反转,这样的问题,对于,尤其是嵌入式实时系统中,危害这么大,

  当此参数被打开时,低优先级的任务,就从高优先级的任务中继承了相同的优先级,

  可以判定出,当然被阻塞的高优先级的任务,所需要的资源,被当前自己这个低优先级任务所占用了

http://bed-plans.net/gaoyouxianji/541.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有