最短作业优先作业调度算法

「最短作业优先」(SJF)算法以进入操作系统的作业所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。

该算法易于实现,但效率不高,主要弱点是忽视了作业等待时间,会出现饥饿现象。SJF 的平均比FCFS要小,故它的调度性能比 FCFS 好。

实现SJF调度算法需要知道作业所需运行时间,否则调度就没有依据,要精确知道一个作业的运行时间是办不到的。

例题

四个作业同时到达系统并立即进入调度。若作业名分别为 1,2,3,4,其所需 CPU 时间分别为 9,4,10,8。

  • 若采用 SJF 算法,则调度顺序为 2,4,1,3,平均作业周转时间为 17,平均带权作业周转时间为 1.98
  • 若采用 FCFS 算法,则平均作业周转时间为 19,平均带权作业周转时间为 2.61