处理器调度算法
1.最高响应比
HRRF:
作业 |
提交时刻 |
运行时刻 |
开始时刻 |
完成时刻 |
周转时间/min |
带权周转时间/min |
1 |
10:00 |
2:00 |
10:00 |
12:00 |
120 |
120/120 |
2 |
10:10 |
1:00 |
12:25 |
13:25 |
195 |
195/60 |
3 |
10:25 |
0:25 |
12:00 |
12:25 |
120 |
120/25 |
平均作业周转时间T=2.41
平均作业带权周转时间w=3.02
2.练习22(2):时间片轮转
如上图所示
3.
如上图所示
4. 从以下几个方面比较各个调度算法的优缺点:
1.资源利用率
2.吞吐率
3.周转率
4.响应时间
5.公平性
6.适用范围
答:
1.先来先服务优先算法(FCFS):这是一种非剥夺式调度算法,只顾及了作业等候的时间,未考虑作业要求的服务时间的长短,不利于短作业而又优待了长作业.短作业的平均周转时间和平均带权周转时间变大.所以FCFS资源利用率高,但是吞吐率低,周转率低,响应时间长,公平性不好.
2.最短作业优先算法(SJF):这也是一种非剥夺式调度算法,能够克服FCFS算法偏爱长作业的缺点,但是效率也不高.
SJF算法的主要弱点:
(一)是要预先知道作业所需的CPU时间,很难精确估算.
(二)是忽视作业的等待时间.
所以,,吞吐率高,周转率高,响应时间短,公平性较好.
3.最短剩余时间优先算法(SRTF):从队列中选出一个估计运行时间最短的作业优先调度,即可用于作业调度,也可用于进程调度,但SJF调度算法也存在不容忽视的缺点:
(1) 对长作业不利。严重的是,若一长作业(进程)进入系统的后备队列(就绪队列),由于调度程序总是优先调度那些(即使是后进来的)短作业(进程),将导致长作业(进程)长期不被调度——饥饿
(2)完全未考虑作业(进程)的紧迫程度,因而不能保证紧迫性作业(进程)会被及时处理
4.高响应比优先调度算法(HRRF): 高响应比优先调度算法:根据“响应比=(进程执行时间+进程等待时间)/进程执行时间”这个公式得到的响应比来进行调度。高响应比优先算法在等待时间相同的情况下,作业执行的时间越短,响应比越高,满足段任务优先,同时响应比会随着等待时间增加而变大,优先级会提高,能够避免饥饿现象。优点是兼顾长短作业,缺点是计算响应比开销大,适用于批处理系统。
5.优先级调度算法(HPF):在进程等待队列中选择优先级最高的来执行。常被用于批处理系统中,还可用于实时系统中。
6.时间片轮转调度算法(RR):给每个进程固定的执行时间,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,时间片轮转调度不考虑进程等待时间和执行时间,属于抢占式调度。优点是兼顾长短作业;缺点是平均等待时间较长,上下文切换较费时。适用于分时系统。