例题1:某系统采用基于优先权的非抢占式进程调度策略,完成一次进程调度和进程切换的系统时间开销为1us。在T时刻就绪队列中有3个进程P1、P2和P3,其在就绪队列中的等待时间、需要的 CPU 时间和优先权如下表所示。
若优先权值大的进程优先获得CPU,从T时刻起系统开始进程调度,则系统的平均周转时间为()
由优先级大的进程先获得CPU可知进程的执行顺序为P2-->P3-->P1。
画图更好理解,题目中讲在T时刻有3个进程,且其等待时间分别为15,18,30,就像图中所画:
再根据非抢占式的进程调度,可得到:
P2的周转时间为1+15+24=40us;
P3的周转时间为18+1+24+1+36=80us;
P1的周转时间为30+1+24+1+36+1+12=105us;
平均周转时间为(40+80+105)/3=225/3=75us,因此选择选项D。
例题2:进程P0、P1、P2和P3 进入就绪队列的时刻、优先级(值越小优先权越高)及 CPU执行时间如下表所示。
若系统采用基于优先权的抢占式进程调度算法,则从0ms时刻开始调度,到4个进程都运行结束为止,① 发生进程调度的总次数为():
解析:由于采用抢占式的进程调度所以进程调度的顺序为:
① 0ms时刻,只有P0进入就绪队列,先执行P0,10ms后,P1,P2进入就绪队列,且其优先级P2>P0(值越小优先权越高),P2抢占CPU的使用权:
② P2执行5ms后,优先权更高的P3进入就绪队列,所以P2让出CPU使用权。之后没有比P3优先权更高的进程,所以P3一直执行到执行时间结束(进程结束)。
③ P3执行完成,剩余的未完成的进程中优先级最高的为P2,P2继续执行,直到进程结束:
④ 接下来执行的进程为P0,因为优先级:P0>P1:
⑤ 最后执行优先权最低的P1:
进程调度次数为6次。
② P0,P1,P2,P3的平均周转时间为():
每个进程的周转时间为:“CPU剩余执行时间”为0的行的"结束时间"减去题目表格中的“开始时间”,即:
P0周转时间:130 - 0 =130
P1周转时间:190 - 10 = 180
P2周转时间:40 - 10 = 30
P3周转时间:25 - 15 = 10
平均周转时间:130+180+30+10/4=350/4=87.5
例题3:系统采用二级反馈队列调度算法进行进程调度。就绪队列 Q1采用时间片轮转调度算法,时间片为10ms;就绪队列Q2采用短进程优先调度算法;系统优先调度 Q1队列中的进程,当 Q1为空时系统才会调度 Q2中的进程;新创建的进程首先进入Q1;Q1中的进程执行一个时间片后,若未结束,则转入Q2。若当前Q1,Q2为空,系统依次创建进程P1,P2后即开始进程调度,P1,P2需要的CPU时间分别为30ms和20ms,则进程P1,P2在系统中的平均等待时间为()
进程P1,P2依次创建后进入队列Q1,根据时间片调度算法的规则,进程P1,P2将依次被分配10ms的CPU时间,两个进程分别执行完一个时间片后都会被转入队列Q2,就绪队列Q2采用短进程优先调度算法,此时 P1还需要 20ms 的 CPU 时间,P2还需要 10ms 的 CPU 时间,所以P2会被优先调度执行,10ms后进程P2执行完成,之后P1再调度执行,再过20ms后P1也执行完成。运行图表述如下:
进程 P1、P2的等待时间分别为图中的虚横线部分,平均等待时间=(P1的等待时间 + P2的等待时间)/2=(20+10)/2=15
例题4:假设某计算机系统有4个进程,各进程的预计运行时间和到达就绪队列的时刻见下表(相对时间,单位为“时间配额”)。试用时间片轮转调度算法进行调度(时间配额为2)。分别计算各个进程的调度次序及平均周转时间。
时间片轮转算法按就绪队列的FCFS进行轮转,在时刻2,P1的时间片结束,P1被挂到就绪队列队尾,队列顺序为P2,P3,P1,此时P4还未到达。
P4在3时刻进入就绪队列,排在P1进程后。3时刻的时候,P2进程执行到一半,所以2执行完后,排在P4后面。
所以前两轮的执行顺序是:P1-->P2-->P3-->P1-->P4-->P2-->P3-->P1,各进程轮流执行2个时刻的时间: