跳转到内容

操作系统设计/进程调度/SPN

来自维基教科书,开放的书籍,面向开放的世界

最短进程优先(SPN)调度,也称为最短作业优先(SJF)调度,将预计完成最快的进程分配给 CPU,只要 CPU 时间可用。

此方法容易受到停机问题的困扰。停机问题是无法解决的,但基本上说明,给定一个程序和一个特定的输入,我们能否确定它是否会永远完成?对于一个简单的程序,我们可以尝试运行它,如果它完成了,那么我们就知道它会完成,但如果它在给定的时间内没有完成,也许我们只是没有等待足够长的时间。

除非允许所有进程运行并记录它们的执行时间,或从用户那里获取输入,否则无法确定哪个进程将在最短的时间内运行。

此方法还允许许多短进程将较长的进程从 CPU 中锁住,从而导致死锁。

商店里的收银员会找到物品最少的人,并先为他们的物品结账。

可以通过选择最短的作业而不是更长的作业来实现。

优点和缺点

[编辑 | 编辑源代码]

SPN 往往是完成工作总数最优的调度系统,仅次于SRT,但需要准确了解进程需要多长时间。这通常由用户输入。如果确定最短作业的机制存在缺陷,那么这可能会显著降低吞吐量。在一个拥有大量短作业和一个长作业的系统中,长作业可能永远不会被运行。

华夏公益教科书