当高优先级进程在低优先级进程和正常优先级进程之间的上下文切换期间到达时会发生什么?

What happens when a high priority process arrives during a context switch between low and normal priority processes?

我正在开发一个调度程序模拟器,它可以让我在很多不同的配置中评估很多不同的调度算法。

但我不确定在高优先级进程到达而上下文切换发生在低优先级进程和正常优先级进程之间的情况下该怎么做。

我想它可能因调度算法而异我只是想知道这种情况的常用解决方案,这样我就可以使我的模拟更加真实。

Arrival 在大多数内核中是由中断或系统调用触发的。中断处理程序可能会导致某些进程准备好 运行,这可能会导致内核抢占当前进程。

通常,在内核承诺切换到新上下文时,它会禁用中断,直到执行新上下文。 因此,您的更高优先级进程的到达将被推迟到那时。这是调度延迟的一个来源;通常还有其他因素,您的模拟应该考虑到这一点。