操作系统 TSL优先级反转

操作系统 TSL优先级反转

在TSL机制中,存在优先级反转的问题。假设有两个协作进程P1和P2。

P1的优先级为2,而P2的优先级为1。P1先到达并被CPU调度。由于它是一个协作进程,希望在临界区内执行,因此它将通过将锁变量设置为1进入临界区。

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

虽然P1被抢占,但是锁变量的值将显示为1,因为P1尚未完成,它还需要完成其临界区。

P1需要完成临界区,但根据调度算法,CPU属于P2。P2想要执行临界区,但根据同步机制,临界区属于P1。

这是一种锁,每个进程既没有执行也没有完成。这种类型的锁被称为自旋锁。

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程