操作系统的进程调度算法[总结]

操作系统的进程调度算法直接关系到用户的使用体验。

如果把用户的体验时间,引入到计算机里面,我们引入以下几个概念。

周转时间,指作业从提交系统开始,直到作业完成为止的时间间隔。包括:

是指作业周转时间与作业实际运行服务时间的比值。

平均周转时间和平均带权周转时间是衡量批处理系统调度算法的重要准则。

先来先服务调度算法(First Come First Served, FCFS)是最简单的调度算法,可以用于作业调度和进程调度。

按照作业进入系统后备作业队列的先后次序来挑选作业,加入就绪队列,等待执行。

FCFS是非抢占式的,易于实现,效率不高,性能不好.

有利于长作业(CPU繁忙性)而不利于短作业(I/O繁忙性)。

服务时间:作业需要运行的时间

完成时间 = 开始时间 + 服务时间

等待时间 = 开始时间 - 提交时间

周转时间 = 完成时间 - 提交时间

带权周转时间 = 周转时间 / 服务时间

响应比 = (等待时间 + 服务时间) / 服务时间 = 等待时间/服务时间 + 1

该算法每次从后备作业队列中挑选估计服务时间最短的一个或几个作业,

将他们调入内存,分配必要的资源,创建进程并放入就绪队列。

在进程调度中的原理类似。

SJF是非抢占式的,优先照顾短作业,具有很好的性能,降低平均等待时间,提高吞吐量。

但是不利于长作业,长作业可能一直处于等待状态,出现饥饿现象;

完全未考虑作业的优先紧迫程度,不能用于实时系统。

高响应比优先调度算法(Highest Reponse Ratio First, HRRF)是非抢占式的,主要用于作业调度。

基本思想:每次进行作业调度时,先计算后备作业队列中每个作业的响应比,挑选最高的作业投入系统运行。

响应比 = (等待时间 + 服务时间) / 服务时间 = 等待时间 / 服务时间 + 1

由响应比分析可知,该算法介于FCFS和SJF之间,但是每次需要计算每个作业的响应比,增加系统开销。