📜  TSL中的OS优先级反转

📅  最后修改于: 2020-12-14 03:38:53             🧑  作者: Mango

优先级倒置

在TSL机制中,可能存在优先级倒置的问题。假设有两个协作过程,P1和P2。

P1的优先级为2,而P2的优先级为1。P1较早到达并由CPU调度。由于这是一个协作过程,并且希望在关键部分执行,因此它将通过将lock变量设置为1进入关键部分。

现在,P2到达就绪队列。 P2的优先级高于P1,因此根据优先级调度,P2被调度,P1被抢占。 P2也是一个协作过程,希望在关键部分内执行。

尽管P1被抢占,但由于P1尚未完成且尚未完成其关键部分,因此锁变量的值将显示为1。

P1需要完成关键部分,但根据调度算法,CPU与P2相同。 P2要在关键部分执行,但根据同步机制,关键部分位于P1中。

这是一种锁,其中每个进程都不执行也不完成。这种锁称为自旋锁

这与死锁不同,因为它们没有处于阻塞状态。一个处于就绪状态,另一个处于运行状态,但是两个都没有执行。