优先级继承

日期: 2025-03-24 02:03:05 |浏览: 13|编号: 84165

友情提醒:信息内容由网友发布,本站并不对内容真实性负责,请自鉴内容真实性。

优先级继承

例子播报

编辑

考虑下例:

Job Name

High

Low

假定L获取到共享资源后,H申请该资源不得而被阻塞。优先级继承协议把L的优先级升级到H的级别。M将不能抢先L因而M被阻塞。当L释放资源后,恢复到低优先级并唤醒H。H有高优先级因而抢先了L的执行权。随后M、L依次恢复执行。

作用播报

编辑

为了解决由于优先级翻转引起的问题,和WinCE引入了优先级继承的解决方法。优先级继承也就是,高优先级进程TH在等待低优先级的线程TL继承占用的竞争资源时,为了使TH能够尽快获得调度运行,由操作系统把TL的优先级提高到TH的优先级,从而让TL以TH的优先级参与调度,尽快让TL执行并释放调TH欲获得的竞争资源,然后TL的优先级调整到继承前的水平,此时TH可获得竞争资源而继续执行。

图1

有了优先级继承之后的上述现象的执行情况如图1所示。

到了T3时刻,需要占用的同步资源,操作系统检测到这种情况后,就把的优先级提高到的优先级。此时处于可运行状态的线程和中,的优先级大于的优先级,被调度执行 [1]。

执行到T4时刻,释放了同步资源,操作系统何时恢复了的优先级,获得了同步资源,重新进入可执行队列。处于可运行状态的线程和中,的优先级大于的优先级,所以被调度执行。

上述机制,使优先级最高的获得执行的时机提前。

提醒:请联系我时一定说明是从旅游网上看到的!