1、FCFS(先来先服务)
有利于长作业,不利于短作业。
周转时间=完成时间-到达时间
带权周转时间=周转时间/服务时间
例题:五个进程A、B、C、D、E,到达时间分别是(0,1,2,3,4),所要求的服务时间是(4,3,5,2,4)。
由计算得:
完成时间是(4,7,12,14,18),
周转时间是(4,6,10,11,14),均值为9,
带权周转时间(1,2,2,5.5,3.5),均值为2.8。
2、SJF(短作业优先)
适合于短作业,不适合长作业。
对于例题,计算得:
到达时间为0,即已开始便执行。
完成时间(4,9,18,6,13),
周转时间(4,8,16,3,9),均值8,
带权周转时间(1,2.67,3.2,1.5,2.25),均值2.1。
3、高相应比优先
优先权=(等待时间+要求服务时间)/ 要求服务时间
该算法既照顾了短作业,又不会使长作业等待长期等不到服务。
每次进行调度之前,都须计算响应比,会增加系统开销。
对于例题,计算如下:
先执行A,耗时4,计算响应比:
B:(4+3)/ 3 = 2.3
C:(4+5)/5=1.8
D:(4+2)/2=3
E:(4+4)/4=2
执行D,耗时2,计算响应比:
B:(6+3)/3=3
C:(6+5)/5=2.2
E:(6+4)/4=2.5
执行B,耗时3,计算响应比:
C:(9+5)/5=2.8
E:(9+4)/4=3.25
执行E,耗时4,最后执行C,耗时5
所以完成时间(4,9,18,6,13),此时情况和FCFS一样。
4、时间片轮转
将所有进程按先来先服务的原则拍成一个队列,每次执行,分配之间片给队首进程,执行完一个时间片,入队尾。