1

例如,当我读到不同的调度算法时,如First-Come-First-Serve, Shortest Job First, Priority Scheduling,Round Robin调度所有这些算法的度量是平均等待时间。

考虑一个运行时间为 21、3、6、2(毫秒)的进程。平均等待时间为First-Come-First-Serve(0 + 21 + 24 + 30)/4 = 18.75 毫秒,而 forShortest Job First为 (0+2+5+11)/4 = 4.5 毫秒。

这是否意味着Shortest Job First更好?我知道第一个等待时间更长,但这不是忙等待,CPU 忙于执行任务。就像首先完成 21 毫秒的任务一样,首先完成它,然后再完成另一个任务等等。无论顺序如何,完成任务不应该花费相同的时间吗?有任何想法吗?

4

1 回答 1

2

不,这并不意味着最短的工作优先更好,SJF最大限度地减少了average waiting time公平的代价。所有这些都只是测量值。

单处理器系统上,是的,它需要相同的时间。

这一切都归结为系统的目的是什么,将运行什么样的作业。

编辑
2.6 中作为实际系统的示例,实际任务的调度算法是SCHED_OTHER优先考虑具有高平均睡眠时间的进程。(即大部分时间都在睡觉等待一些 i/o 的作业)。我们希望尽量减少他们的响应时间。
并且系统通过给每个进程一个分片时间来共享所有进程的 CPU,这与 RR 给一个相等的分片时间不同。

于 2017-08-06T15:51:57.270 回答