我无法理解优先级倒置会如何发生

Ras*_*yak 1 c embedded operating-system rtos scheduled-tasks

HPT - >最高优先级任务.
MPT - >中优先级任务
LPT - >低优先级任务

您好朋友,我从许多网站上阅读优先级倒置(例如http://www.embeddedheaven.com/priority-inversion-2.htm).但我想知道,为什么HPT不能抢占LPT?如果您将阅读3.3无界反转部分,它说如果LPT已经获得资源,那么如果HPT已准备好但由于LPT而被阻止.但是如果MPT准备就绪,那么它会抢占LPT并自行执行.然后LPT必须等到MPT结束.MPT完成后,LPT恢复.一旦LPT完成,HPT就会启动.所以我的问题是为什么HPT不能抢占LPT或MPT?

jan*_*neb 7

维基百科的解释可能比您提供的链接更容易理解:https://en.wikipedia.org/wiki/Priority_inversion

用稍微不同的词来回答你的问题,大致按时间顺序排列的是

  1. LPT收购R.
  2. MPT变为可运行,从而抢占了LPT
  3. HPT变得可运行,从而抢占了MPT
  4. HPT试图获得R和阻止
  5. 调度程序选择可运行的最高优先级任务,即MPT.
  6. MPT无限制地运行(可能"永远"),从而阻止LPT运行和释放R,从而阻止HPT运行.