其中i1、i2、 …、in 是1、2、 …、n的一个排列。
3. 时间片轮转调度算法
时间片轮转法:系统将所有就绪进程按到达时间的先后次序排成一个队列,每次调度时把CPU分配给队首进程,并令其执行一个时间片。当时间片用完时,停止该进程的执行,将它送至就绪队列末尾等待下一次执行,然后再把处理机分配给就绪队列中的新队首进程。如此不断循环,直至完成为止。
时间片轮转算法例
设有A、B、C、D、E五个进程,其到达时间分别为0、1、2、3、4,要求运行时间依次为3、6、4、5、2,采用时间片轮转调度算法,当时间片大小为1和4时,试计算其平均周转时间和平均带权周转时间。
时间片大小为1
A、B、C、D、E要求运行时间依次为3、6、4、5、2,到达时间依次为0、1、2、3、4。
时间片为1的周转时间
平均周转时间 T=(7+18+14+17+8)/5=12.8
平均带权周转时间 W=(2.33+3+3.5+3.4+4)/5=3.246
时间片大小为4
A、B、C、D、E要求运行时间 依次为3、6、4、5、2 ,到达时间依次为0、1、2、3、4。
时间片为4的周转时间
平均周转时间 T=(3+18+9+17+13)/5=12
平均带权周转时间 W=(1+3+2.25+3.4+6.5)/5=3.23
时间片大小的选择
若时间片太大,所有进程都能在一个时间片内完成,则时间片轮转算法退化为先来先服务;若时间片太小,则进程调度频繁,系统开销增加。
确定时间片大小应考虑的因素
系统对响应时间的要求:响应时间=时间片*进程数。
就绪队列中的进程数目:时间片与就绪进程数成反比。
系统处理能力:人所能承受的响应时间一定,系统速度快则时间片可增长。
时间片轮转算法的特点及改进
对偏重I/O的进程不公平。为此改进为虚拟时间片轮转算法。
虚拟时间片轮转算法:新进程基于FCFS进入就绪队列,进程用完时间片后也进入就绪队列,进程因I/O阻塞进入I/O队列,I/O完成时进程进入附加队列,附加队列的优先级高于就绪队列,当进程从附加队列被调度时,其运行时间不超过上次发生中断时剩余的时间。
虚拟时间片轮转调度示意图
4.优先权调度算法
在作业调度中,从后备作业队列中选择若干优先权高的作业调入内存。
在进程调度中,将处理机分配给就绪队列中优先权最高的进程。
优先权通常用优先数来衡量。在某些系统中,优先数越大优先权越高;而在另一些系统中,优先数越大优先权越小。
进程调度方式
进程调度有两种方式: