操作系统论文导读(一):Priority Inheritance Protocols: An Approach to Real-Time Synchronization —优先级继承与优先级天花板协议

目录

一、论文基本概述

二、优先级反转

2.1 基本概念:

2.2 相关实例:

三、优先级继承协议

3.1 基本概念

3.2 PIP的工作

3.3 优缺点

四、优先级天花板协议

4.1 基本概念

4.2 协议的工作

4.3 优缺点

五、协议对比


一、论文基本概述

        直接应用常用的同步原语(如信号量、监视器或Ada)可能会导致不受控制的优先级反转,即优先级较高的作业被优先级较低的作业阻塞一段不确定的时间。在本文中,作者研究并给出了两个属于优先级继承协议类的协议,称为基本优先级继承协议和优先级天花板协议。这两种协议都在一定程度上解决了这个不受控制的优先级反转问题。
        值得一提的是,优先级天花板协议将最坏情况下的任务阻塞时间减少到最低优先级任务的单个关键部分的执行持续时间。此外,该协议防止死锁的形成。论文还导出了一组充分条件,在此条件下,使用此协议的一组周期性任务是可调度的。

二、优先级反转

2.1 基本概念:

优先级反转是指由于资源竞争,低优先级的任务在执行,而高优先级的任务在等待的现象。当具有不同优先级的任务中存在相互依赖关系时,就可能发生优先级反转。

2.2 相关实例:

我们举如下例子来简单理解这一概念:
假设有任务A,B,C,优先级:A > B > C,任务A,B,C都在等待各自的事件触发,并且A C运行中需要同一个临界资源。
首先,C的事件到来了,C开始运行,C得到了临界资源的信号量,此时,A等待的事件到来。
由于A的优先级更高,于是抢占了CPU的使用权,但是由于得不到临界资源的信号量,进入挂起状态,等待资源释放后唤醒。接着C继续得到CPU使用权。
在C释放信号量之前,B等待的事件到来了,B的优先级高于C,抢占CPU使用权,待B任务完成后,释放CPU,C继续运行,直到C释放信号量以后,A才得以被唤醒继续运行。

在这个过程中,A任务的优先级实际降到了和C相同的层次,究其原因,便是C得到了信号量后被不需要该信号量但是优先级更高的任务B抢占。

要解决这个问题,文章引入了优先级继承协议与优先级天花板协议。

三、优先级继承协议

3.1 基本概念

优先级继承协议(PIP)是一种用于在不同任务之间共享关键资源的技术。这允许在不同资源之间共享关键资源,而不会发生无限优先级倒置。

PIP的基本概念是,当任务进行优先级反转时,具有优先级资源的低优先级任务的优先级会通过优先级继承机制增加。它允许此任务尽早使用关键资源,而无需进行抢占。它避免了无限优先级倒置。

3.2 PIP的工作

-当多个任务正在等待同一关键资源时,当前正在等待该关键资源的任务在所有等待同一关键资源的任务中被赋予最高优先级。

-现在,在为具有关键资源的低优先级任务分配了最高优先级之后,中优先级任务无法抢占该任务。这有助于避免无限的优先级倒置。

-当在所有任务中被赋予最高优先级的任务完成任务并释放关键资源时,它将恢复为其原始优先级值(可能小于或等于)。

-如果一项任务包含多个关键资源,则释放一个关键资源后,它将无法恢复到其原始优先级值。在这种情况下,它会继承所有等待相同关键资源的任务中的最高优先级。

3.3 优缺点

优先级继承协议具有以下优点:
-它允许不同优先级的任务共享关键资源。
-优先级继承协议最显着的优势在于,它避免了无限的优先级倒置。


PIP的缺点:
优先级继承协议可能会出现两个主要问题: 即死锁和链阻塞

死锁—
例如,有两个任务T1和T2。假设T1具有比T2高的优先级。T2首先开始运行,并保留关键资源CR2。
之后,T1到达并抢占T2。T ,保持临界资源CR1,并且还试图保持CR2,其由T2保持。
现在,T1和T2根据PIP继承了T1的优先级。T2点开始执行,并且现在T2试图保持CR1,其由T1保持。
因此,T1和T2都处于死锁状态。


链阻塞一
当任务每次需要资源时都要进行优先级反转时,此过程称为链阻塞。
例如,有两个任务T1和T2。假设T1具有比T2高的优先级。T2保持关键资源CR1和CR2。T1到达并请求CR1。T2根据PIP进行优先级倒置。
现在,T1请求CR2,再次T2根据PIP进行优先级倒置。
因此,用于保存关键资源的多优先级反转会导致链阻塞。

四、优先级天花板协议

为解决优先级继承协议存在的问题,论文提出了优先级天花板协议。

4.1 基本概念

优先级天花板协议是指系统把每一个共享资源与一个天花板优先级相联系。任意资源的天花板优先级是所有请求该资源的任务的最高优先级。当一个任务获得了信号量而进入临界区执行时,系统便把这个天花板优先级传递给这个任务,使这个任务的优先级最高。当这个任务退出临界区后,系统立即把它的优先级恢复正常,从而保证系统不会出现优先级反转的情况。

4.2 协议的工作

在优先级天花板协议中,主要包含以下处理内容。
(1)对于控制临界区的信号量,设置信号量的优先级天花板为可能申请该信号量的所有任务中具有最高优先级任务的优先级。
(2)如果任务成功获得信号量,任务的优先级将被抬升为信号量的优先级天花板;任务执行完临界区,释放信号量后,其优先级恢复到最初的状态。
(3)如果任务不能获得所申请的信号量,则任务将被阻塞。

4.3 优缺点

优点:
-解决了无限优先级倒置。
-解决了优先级继承问题存在的缺点。在优先级天花板协议下,一个请求任务只可以被一个任务阻塞,不会发生传递阻塞(即产生阻塞链),也不会发生死锁。

缺点:
优先级天花板协议的缺点是一旦任务获得某临界资源,其优先级就被提升到可能的最高程度,而不管此后在它使用该资源的时间里是否真的有高优先级任务申请该资源。这样就有可能影响某些中间优先级任务的完成时间。因此,在对任务执行流程的干扰方面,优先级天花板协议的破坏力比较大。
 

五、协议对比

1、就执行效率而言:
优先级继承协议可能多次改变占有临界资源的任务的优先级,而优先级天花板协议只改变一次
2、对程序运行过程影响程度的比较:
优先级天花板协议的特点是一旦任务获得某临界资源,其优先级就被抬升到可能的最高程度,不管此后在它使用该资源的时间内是否真的有更高优先级任务申请该资源,这样就有可能影响某些中间优先级任务的完成时间。但在优先级继承协议中,只有当高优先级任务申请已被低优先级任务占有的临界资源这一事实发生时,才抬升低优先级任务的优先级,因此优先级继承协议对任务执行流程的影响相对较小。
 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
优先级天花板Priority Ceiling)和优先级继承Priority Inheritance)是解决实时系统中优先级反转问题的两种常见方法。 1. 优先级天花板Priority Ceiling): - 优先级天花板是一种静态分配资源的方法,它假设每个共享资源都有一个最高优先级的任务(称为天花板优先级),任务在访问该资源时会提升到该最高优先级。 - 当一个任务需要访问共享资源时,如果其当前优先级低于资源的天花板优先级,则该任务会被提升到资源的天花板优先级,并在访问完资源后恢复到原始优先级。 - 这样可以避免较低优先级任务占用资源导致较高优先级任务无法执行的情况,从而解决了优先级反转问题。 2. 优先级继承Priority Inheritance): - 优先级继承是一种动态调整任务优先级的方法,它在任务之间动态地传递优先级。 - 当一个高优先级任务需要访问一个被低优先级任务占用的共享资源时,该低优先级任务会被提升到与高优先级任务相同的优先级,直到高优先级任务完成对共享资源的访问。 - 这样可以确保高优先级任务始终能够及时执行,避免了优先级反转的问题。 - 一旦高优先级任务完成对共享资源的访问,低优先级任务会恢复到原始优先级。 需要注意的是,优先级天花板优先级继承都是为了解决实时系统中的优先级反转问题,但它们的实现方式和适用场景有所不同。在选择使用哪种方法时,需要根据具体的系统需求和资源访问模式进行评估和决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D了一天bug忘了编译

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值