1. P117页,练习15:最高响应比
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. P119页,练习22(2):时间片轮转
各个进程的调度次序:1、2、3、4、1、2、3、4、1、3、4、1、3、4、1、4
平均作业周转时间T=23.5ms
平均作业带权周转时间w=3.01
3. 现设定采用三级反馈队列调度算法,三个队列分别为0、1和2,对应时间片为2、4、8。现有四个进程A、B、C、D,到达时刻分别为0、5、7、12,执行时间分别为7、4、13、2。请写出整个进程调度过程,包括每个时间段,执行的进程,执行后进程状态,各个队列内进程的变化。
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):给每个进程固定的执行时间,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行,时间片轮转调度不考虑进程等待时间和执行时间,属于抢占式调度。优点是兼顾长短作业;缺点是平均等待时间较长,上下文切换较费时。适用于分时系统。