为什么等待时间是CPU调度算法的重要标准?

时间:2017-08-06 15:43:30

标签: multithreading process operating-system scheduling multiple-processes

例如,当我阅读不同的调度算法时,例如First-Come-First-ServeShortest Job FirstPriority SchedulingRound Robin所有调度算法都是平均等待时间。

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

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

1 个答案:

答案 0 :(得分:2)

不,意味着最短作业更好,SJF最大限度地减少了average waiting time的公平性。所有这些只是测量。

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

这一切都归结为系统的目的是什么,将要运行的工作类型是什么。

修改
2.6作为实际系统的示例中,实际任务的调度算法是SCHED_OTHER,其优先考虑具有高平均睡眠时间的过程。 (即大部分时间都在等待一些i / o的工作)。我们希望尽量缩短他们的响应时间 并且系统通过为每个进程分配一个切片时间来共享CPU,而不像RR那样给出相等的切片时间。