轮转调度算法(RR)
最常用也简单的就是时间片轮转算法.
简单来说,就是每个进程在cpu上运行一小段时间,然后切换给下一个进程.
一. 进程的切换时机
- 若一个时间片尚未用完,正在运行的进程便已经完成
- 在一个时间片用完时,计时器中断处理程序被激活
二.时间片大小的确定
一个较为可取的时间片大小是略大于一次典型的交互所需要的时间.优先级调度算法
优先级调度算法,就是根据实际情况,进程的紧迫性,给他们赋予不同的优先级,优先级高的先运行.
同时,优先级调度算法也分为抢占式和非抢占式的,抢占式的进程会直接让低优先级的进程停止运行,先运行本身.反之,就是等低优先级的进程运行结束之后,上处理机.一.优先级的类型
- 静态优先级:静态优先级是在创建进程时就确定的,在进程的整个运行期间保持不变.
- 动态优先级:随进程的推进或等待时间的增加而改变
多队列调度算法
如前面各种算法,由于系统中只设置一个就绪队列,即低级调度算法是固定的,单一的,无法满足系统中不同用户对进程策略的不同要求.
我们可以将不同类型或性质的进程固定分配在不同的就绪队列--------多级反馈队列优先调度算法
一.多级反馈队列优先调度算法的调度机制
- (1) 设置多个就绪队列,为每个不同的队列赋予不同的优先级.第一个队列的优先级最高,第二个次之.值得注意的是,优先级愈高的队列中,它的时间片就愈小.
- (2)每个队列都采用FCFS算法
- (3)按队列优先级调度,调度程序首先调度最高优先级队列中的诸进程运行,当第一个队列进程为空的时候,才调度第二队列中的进程运行
二.多级反馈队列优先调度算法的调度流程
各个进程根据达到时间,先进入1号队列,在1号队列中排好队,然后开始时间片轮转,轮转完还没完成的进程进入2号队列,如果此时有新的进程到达,新的进程进入1号队列......三.调度算法的性能
在多级反馈队列优先调度算法中,如果规定第一个队列的时间片略大于多数人机交互所需要的处理时间时,便能较好地满足各种类型用户的需要. - 终端型用户:由于终端用户提交的作业多属于交互型作业,通常较小
- 短批处理作业用户
- 长批处理作业用户:也不用担心长作业长期得不到处理