作业调度: 将位于后备队列的某个作业调入内存,排在就绪队列上
进程调度: 从就绪队列选取一个进程,并为其分配处理机,及“执行”
△先来先服务调度算法(FCFS)
- 先来先服务(First Come First Service,FCFS )
- 关键: 按照到达的 先后次序
- 既可用于作业调度,又可用于进程调度
- 用于作业调度时,考虑的是哪个作业先到达后备队列
- 用于进程调度时,考虑的是哪个进程先到达就绪队列
△短作业优先调度算法(SJF)(抢占/非抢占)
- 短作业优先(Short Job First,SJF)
- 关键: 以 长短(剩余服务时间) 来计算优先级,越短优先级越高(抢占/非抢占)
- 既可用于作业调度,又可用于进程调度
优先级调度算法(抢占/非抢占)
- 关键: 优先级高的,先被调度
- 既可用于作业调度,又可用于进程调度(抢占/非抢占)
☆轮转调度算法(RR)
- 轮转(Round Robin,RR)
- 仅用于进程调度(只有作业放入内存建立了相应进程后,才能被处理机分配时间片)
RR过程详解
- 系统会将所有的就绪进程按FCFS排成一个就绪队列,队首先执行一个时间片
- 执行完该时间片后,若进程尚未运行完毕,将其放入就绪队列队尾
- 我们约定:新到达的进程先进就绪队列,轮转出来的后进就绪队列
★多级反馈队列调度算法(FB)(抢占/非抢占)
- 多级反馈队列(FB)
- 仅用于进程调度
FB过程详解
- 设置多个就绪队列:
a. 就绪队列的优先级依次降低
b. 每个就绪队列都使用FCFS进行调度
c. 每个就绪队列都有对应时间片,且第i+1个队列的时间片要比第i个队列的时间片长1倍 - 当且仅当第一队列空闲时,才调度第二队列中的进程
- 一个进程在第i个队列的时间片执行完,若进程还未运行完毕,则转入第i+1个就绪队列末尾
- 如果处理机在第i队列中为某进程服务时,又有新进程进入任一优先级较高的队列,则需把正在运行的进程放回到第i队列的末尾,并把处理机分配给新到的高优先级进程,下一次在给该进程完整时间片