不同的 CPU 调度算法具有不同的特性,特定算法的选择取决于各种因素。已经提出了许多标准来比较 CPU 调度算法。
标准包括:
- CPU 利用率 –
任何 CPU 调度算法的主要目标都是让 CPU 尽可能地忙碌。理论上,CPU 利用率的范围可以从 0 到 100,但在实时系统中,它会根据系统负载在 40% 到 90% 之间变化。 - 吞吐量 –
CPU 所做工作的衡量标准是单位时间内正在执行和完成的进程数。这称为吞吐量。吞吐量可能会因过程的长度或持续时间而异。 - 周转时间 –
对于特定流程,一个重要的标准是执行该流程所需的时间。从流程提交到完成所经过的时间称为周转时间。周转时间是等待进入内存、等待就绪队列、在 CPU 中执行和等待 I/O 所花费的时间总和。 - 等待的时间 –
调度算法不会影响进程开始执行后完成进程所需的时间。它只影响进程的等待时间,即进程在就绪队列中等待所花费的时间。 - 响应时间 –
在交互系统中,周转时间不是最佳标准。一个进程可能会很早就产生一些输出,并在先前的结果被输出给用户的同时继续计算新的结果。因此,另一个标准是从提交请求过程到产生第一个响应所花费的时间。此度量称为响应时间。
有各种 CPU 调度算法,例如-
- 先到先得 (FCFS)
- 最短作业优先 (SJF)
- 最长作业优先 (LJF)
- 优先调度
- 循环(RR)
- 最短剩余时间优先 (SRTF)
- 最长剩余时间优先 (LRTF)