进程调度
- 进程调度功能:
从处于就绪状态的进程中,按照某种调度策略,选择一个进程切换给CPU,使其状态从就绪转为运行。 - 调度方式 调度策略
进程调度算法
- FCFS (First Come First Serve)算法,先进入就绪队列的进程先调度。
- SPF (Shortest Process First)算法,最短进程优先调度。
- HPF (Highest Priority First)算法,最高优先级调度。
- HRF (Highest Response First)算法,最高响应比优先调度
- 最短剩余时间(SRT,Shortest Remain Time)优先算法。
- RR (Round Robin)算法,轮转调度。
- 多队列调度算法。
- 多级队列反馈调度算法。
RR调度算法
应用于分时系统,目 标是提高响应及时性
-
按时间片轮转调度
进程轮流使用CPU,各用一个时间片,时间片用完管理程序停止它的运行,并将它转入就绪队列尾部,调度下一个进程。
进程失去CPU不是自愿的,而是被系统剥夺的。 -
轮转算法的启动时机:
- 一个时间片运行结束
- 当前进程运行结束
- 或者正在运行的进程因运行受阻主动放弃了CPU控制权
时间片的选取:
时间片q太大会怎样?太小会怎样?
时间片的确定通常有下面几个原则:
- (1)进程的道数较多时,q就选得小一些;反之,可选得大些。
- (2)系统要求的响应时间比较苛刻的时候,q就选得小一些;反之,可选得大些。
多级队列调度算法:
- 设置多个就绪队;
- 就绪队优先级不同,优先级高的队列优先调度;
- 优先级高的队列为空时,再调度低优先级队列。
多级队列反馈调度算法: - 设置n个队列Q,Q2,…Qn。
- 记Qi的优先级为Pi,有P>P2>…> Pn。
- 记Qi的时间片为qi,有q1<q2… <qn。
- 新建进程进入Q队。
- 只有Qi为空时,才调度Qi+1中的进程。
- 进程p在Qi中被调度执行,若时间片qi已到但尚未结束,则进程p转为就绪状态进入Q+1队;进程p在Qn 中被调度执行,若时间片已到但尚未结束,则进程转为就绪状态仍入Qn队。
1. 终端型用户满意
终端型作业都是交互型的,比较短,进入第1队列后优先调度, 一般只要一个小时间片 就可完成。
2. 短的批处理作业用户满意
短的批处理作业开始时首先进入第1个队列,能及时被响应。若轮转一周不能完成的话,通常只需在第2乃至第3队列上各执行一个时间片就可能完成,作业的周转时间仍比较短。
3. 长的批处理作业用户满意
一个长的批处理作业进入系统后,将依此在第1,2,…n-1队列中各运行一个时间片,最后进入第n队列进行轮转运行,一般不必担心“受冷落”现象发生。一旦进入后面的就绪队,获得的时间片比较长,系统调度开销比较少。