【TSL的优先级倒置】在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中。
这是一种锁, 其中每个进程都不执行也不完成。这种锁称为自旋锁。
这与死锁不同, 因为它们没有处于阻塞状态。一个处于就绪状态, 另一个处于运行状态, 但是两个都没有执行。
推荐阅读
- 优先排程调度
- SJF中进程的CPU突发时间的预测
- 物理和逻辑地址空间
- Win8/Win10系统公用网络无法转换为专用网络如何处理
- Win8升级win10系统失败出错代码c1900101-40017怎样办
- Win8系统禁用smartscreen筛选器不在弹出提示窗口的办法
- win8系统开机界面异常显示2个用户名怎样办
- Win8系统升级Win 8系统播放视频出现绿屏故障怎样处理
- win8系统自带的PC语点怎样用?win8系统自带PC语点运用图文详细教程