调度方案:抢占式优先调度
情况 :
进程 L(低优先级)获取资源(R)上的自旋锁。当仍处于临界区时,由于另一个进程 - H(更高优先级)进入就绪队列,L 被抢占。.
然而,H 还需要访问资源 R 并因此尝试获取自旋锁,这导致 H 忙于等待。因为使用了自旋锁,所以 H 永远不会真正进入 Wait 并且将始终处于 Running 状态或 Ready 状态(以防更高优先级的进程到达就绪队列),从而阻止 L 或任何优先级低于 H 的进程执行。
A) 所有优先级小于 H 的进程都可以认为处于饥饿状态
B) 所有优先级小于 H 的进程以及进程 H 都可以认为处于死锁状态。[但是,那么进程是否必须处于等待状态才能使系统被认为处于死锁状态?]
C)所有优先级小于H的进程以及进程H,都可以认为是处于活锁状态。[但是,只有H的状态不断变化,所有低优先级的进程都保持在Ready状态。如果系统处于活锁状态,所有进程的状态是否都需要不断更改(作为自旋锁的一部分)?]
D) H 单独可以被认为处于活锁状态,所有低优先级的进程都处于饥饿状态,而不是处于活锁状态。
E) H 不会进步,但不能被认为处于活锁状态。所有较低优先级的进程都处于饥饿状态,而不是处于活锁状态。
以上哪些说法是正确的?你可以解释吗?