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

Multithreading 为什么等待时间是CPU调度算法的重要标准?,multithreading,process,operating-system,scheduling,multiple-processes,linux,Multithreading,Process,Operating System,Scheduling,Multiple Processes,Linux,例如,当我了解到不同的调度算法时,比如先到先得,最短作业优先,优先级调度,循环调度对所有这些算法的调度,衡量标准是平均等待时间 考虑运行时间为21,3,6,2(毫秒)的进程。先到先得的平均等待时间为(0+21+24+30)/4=18.75毫秒,最短工作先得的平均等待时间为(0+2+5+11)/4=4.5毫秒 这是否意味着先做最短的工作更好?我知道第一次等待的时间更长,但这不是忙着等待,CPU正在忙着执行任务。比如先完成21毫秒的任务,先完成,然后紧接着完成另一个任务等等。比如,不管顺序如何,完成

例如,当我了解到不同的调度算法时,比如
先到先得
最短作业优先
优先级调度
循环调度
对所有这些算法的调度,衡量标准是平均等待时间

考虑运行时间为21,3,6,2(毫秒)的进程。
先到先得的平均等待时间为(0+21+24+30)/4=18.75毫秒,
最短工作先得的平均等待时间为(0+2+5+11)/4=4.5毫秒


这是否意味着先做最短的工作更好?我知道第一次等待的时间更长,但这不是忙着等待,CPU正在忙着执行任务。比如先完成21毫秒的任务,先完成,然后紧接着完成另一个任务等等。比如,不管顺序如何,完成任务所需的时间不应该相同吗?有什么想法吗?

没有,并不意味着先做最短的工作更好,
SJF
以牺牲公平为代价,最小化了
平均等待时间。所有这些都只是测量

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

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

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