有4个进程P1,P2,P3,P4,它们进入就绪队列的先后次序为P1、P2、P3、P4,它们的优先级和需要的处理机时间如表所示。假定这四个进程执行过程中不会发生等待事件,忽略进程调度等所花费的时间,从某个时刻开始进程调度,请回答下列的问题:①写出分别采用“先来先服务”调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间;②写出分别采用“非抢占式的优先级”(固定优先级)调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间;③写出分别采用“时间片轮转”(时间片大小为5)调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间。进程处理机时间优先级P183P261P3225P444
有4个进程P1,P2,P3,P4,它们进入就绪队列的先后次序为P1、P2、P3、P4,它们的优先级和需要的处理机时间如表所示。假定这四个进程执行过程中不会发生等待事件,忽略进程调度等所花费的时间,从某个时刻开始进程调度,请回答下列的问题:
①写出分别采用“先来先服务”调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间;
②写出分别采用“非抢占式的优先级”(固定优先级)调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间;
③写出分别采用“时间片轮转”(时间片大小为5)调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间。
进程
处理机时间
优先级
P1
8
3
P2
6
1
P3
22
5
P4
4
4
题目解答
答案
先来先服务算法选择进程的顺序依次为P1、P2、P3、P4。
进程P1等待时间为0;
进程P2等待时间为8;
进程P3等待时间为8+6=14;
进程P4等待时间为8+6+22=36;
平均等待时间为(0+8+14+36)/4=14.5
非抢占式的优先级算法选择进程的顺序依次为P3、P4、P1、P2。
进程P1等待时间为4+22=26;
进程P2等待时间为22+4+8=34;
进程P3等待时间为0;
进程P4等待时间为22。
平均等待时间为(26+34+0+22)/4=20.5
时间片轮转进程调度顺序为P1、P2、P3、P4、P1、P2、P3、P3、P3、P3。
进程P1等待两次,时间为0+(5+5+4)=14;
进程P2等待两次,时间为5+(5+4+3)=17;
进程P3等待两次,时间为(5+5)+(4+3+1)=18;
进程P4等待一次,时间为5+5+5=15。
平均等待时间为(14+17+18+15)/4=16
评分标准:
(1)分析正确得(2分);
(2)先来先服务算法选择进程的顺序正确得(2分) 平均等待时间得(2分);
(3)非抢占式的优先级算法选择进程的顺序正确得(2分) 平均等待时间得(2分);
(4)时间片轮转进程调度顺序正确得(2分) 平均等待时间得(3分);
(5)否则酌情扣分。
解析
先来先服务调度算法按照进程进入就绪队列的顺序来调度进程。因此,进程调度顺序为P1、P2、P3、P4。等待时间计算如下:
- P1等待时间为0;
- P2等待时间为P1的处理时间,即8;
- P3等待时间为P1和P2的处理时间之和,即8+6=14;
- P4等待时间为P1、P2和P3的处理时间之和,即8+6+22=36;
平均等待时间计算为(0+8+14+36)/4=14.5。
步骤 2:非抢占式的优先级调度算法
非抢占式的优先级调度算法按照进程的优先级来调度进程。因此,进程调度顺序为P3、P4、P1、P2。等待时间计算如下:
- P1等待时间为P3和P4的处理时间之和,即22+4=26;
- P2等待时间为P3、P4和P1的处理时间之和,即22+4+8=34;
- P3等待时间为0;
- P4等待时间为P3的处理时间,即22;
平均等待时间计算为(26+34+0+22)/4=20.5。
步骤 3:时间片轮转调度算法
时间片轮转调度算法按照时间片大小来调度进程。时间片大小为5,因此进程调度顺序为P1、P2、P3、P4、P1、P2、P3、P3、P3、P3。等待时间计算如下:
- P1等待两次,时间为0+(5+5+4)=14;
- P2等待两次,时间为5+(5+4+3)=17;
- P3等待两次,时间为(5+5)+(4+3+1)=18;
- P4等待一次,时间为5+5+5=15;
平均等待时间计算为(14+17+18+15)/4=16。