操作系统设计/进程调度/SPN
外观
< 操作系统设计
最短进程优先(SPN)调度,也称为最短作业优先(SJF)调度,将预计完成最快的进程分配给 CPU,只要 CPU 时间可用。
此方法容易受到停机问题的困扰。停机问题是无法解决的,但基本上说明,给定一个程序和一个特定的输入,我们能否确定它是否会永远完成?对于一个简单的程序,我们可以尝试运行它,如果它完成了,那么我们就知道它会完成,但如果它在给定的时间内没有完成,也许我们只是没有等待足够长的时间。
除非允许所有进程运行并记录它们的执行时间,或从用户那里获取输入,否则无法确定哪个进程将在最短的时间内运行。
此方法还允许许多短进程将较长的进程从 CPU 中锁住,从而导致死锁。
商店里的收银员会找到物品最少的人,并先为他们的物品结账。
可以通过选择最短的作业而不是更长的作业来实现。
SPN 往往是完成工作总数最优的调度系统,仅次于SRT,但需要准确了解进程需要多长时间。这通常由用户输入。如果确定最短作业的机制存在缺陷,那么这可能会显著降低吞吐量。在一个拥有大量短作业和一个长作业的系统中,长作业可能永远不会被运行。