总览

先来先服务

- 按照到达先后,实际上就是等待时间越久的越先得到服务
- 注意等待时间的计算
- 纯计算型的进程:周转时间-运行时间
- 计算+I/O操作的:周转时间-运行时间-I/O操作时间
短作业优先

非抢占式(SPF)与抢占式对比(SRTN)
- 非抢占式
- 抢占式
几个细节(某些说法不一致时)

FCFS与SJF对比
因此推出了高响应比优先
高响应比优先

- 当前运行的进程主动放弃CPU时,才需要进行调度,重新计算响应比
以上三种算法对比
- 交互性差
时间片轮转

- 注意,时间片到了之后下处理机时,会加到就绪队列的队尾,不要按照题中给的顺序想到然的来,要时刻按照就绪队列的顺序进行分析,如下:
- 时间片太大时,就会变成先来先服务
- 太小切换的代价就大了,切换的开销不超过1%就认为是合适的
- 用于进程调度
优先级调度算法

- 注意是优先数越大,优先级越高,还是相反
- 抢占式和非抢占式
- 非抢占式的优先级调度算法:每次调度时选择当前已到达且优先级最高的进程。当前进程主动放弃处理机时发生调度。
- 抢占式的优先级调度算法:每次调度时选择当前已到达且优先级最高的进程。当前进程主动放弃处理机时发生调度。另外,当就绪队列发生改变时也需要检查是会发生抢占。
多级反馈队列调度算法

- 认为是抢占式的算法
- 用于进程调度
算法规则(个人理解)
- 某一队列的上级队列都空了,才轮到这一级
- 某进程在该队列的时间片用完,还没完成,就进入下一级队列(时间片增加的),但如果已经是最底层了,就放到该级队尾
- 来一个新的进程首先放到第1级的队尾,如果此时运行的是低级的队列的进程,则发生抢占,被强占的进程放到所在队列的队尾,并不是到下一级了(毕竟是意外,也没说自己在这一级能不能运行完)
以上三种比对
- 适合交互式系统