📜  同步中的优先级继承协议(PIP)

📅  最后修改于: 2021-08-27 05:33:46             🧑  作者: Mango

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

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

PIP的工作:

  • 当多个任务正在等待同一关键资源时,当前正在等待该关键资源的任务在所有等待同一关键资源的任务中被赋予最高优先级。
  • 现在,在为具有关键资源的低优先级任务分配了最高优先级之后,中优先级任务无法抢占该任务。这有助于避免无限的优先级倒置。
  • 当在所有任务中被赋予最高优先级的任务完成任务并释放关键资源时,它将恢复为其原始优先级值(可能小于或等于)。
  • 如果一项任务包含多个关键资源,则释放一个关键资源后,它将无法恢复到其原始优先级值。在这种情况下,它会继承所有等待相同关键资源的任务中的最高优先级。
If the critical resource is free then
       allocate the resource
If the critical resource is held by higher priority task then
       wait for the resource
If the critical resource is held by lower priority task
     {    
       lower priority task is provided the highest priority
       other tasks wait for the resource
     } 

画中画的优点:
优先级继承协议具有以下优点:

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

PIP的缺点:
优先级继承协议可能会出现两个主要问题:

  • 死锁–
    优先级继承协议中可能会出现死锁。

    例如,有两个任务T 1和T 2 。假设T 1具有比T 2高的优先级。 T 2首先开始运行,并保留关键资源CR 2

    之后,T 1到达并抢占T 2 。 T 1保持临界资源CR 1,并且还试图保持CR 2,其由T 2保持。现在,T 1块和T 2根据PIP继承了T 1的优先级。 Ť2点开始执行,并且现在Ť2试图保持CR 1,其由T 1保持。

    因此,T 1和T 2都处于死锁状态。

  • 链阻塞–
    当任务每次需要资源时都要进行优先级反转时,此过程称为链阻塞。

    例如,有两个任务T 1和T 2 。假设T 1具有比T 2高的优先级。 T 2保持关键资源CR 1和CR 2 。 T 1到达并请求CR 1 。 T 2根据PIP进行优先级倒置。

    现在,T 1请求CR 2 ,再次T 2根据PIP进行优先级倒置。

    因此,用于保存关键资源的多优先级反转会导致链阻塞。