文章目录
- 一. 先来先服务(FCFS)
- 二. 短作业优先(SJF)
- 三. 高响应比优先
- 1. 对前面两种算法的思考
- 2. 描述
- 四. 一、二、三总结
例子都要手动写一遍哦~这三个是供早期的批处理系统使用的算法
一. 先来先服务(FCFS)
- 公平
- 作业 - 后备队列;进程 - 就绪队列
- 非抢占式
- 缺点:对排在长作业后面的短作业不友好
- 不会饥饿(毕竟按序走完)
- 例子:
- 注意:式子不是一成不变的,要具体问题具体分析
- 可以先画个实际运行图(如下图红黄绿紫段),再具体计算。
二. 短作业优先(SJF)
- 用于进程时叫“短进程优先(SPF)”
- 非抢占;也有抢占式版本“最短剩余时间优先算法(SRTN)”
- 优点:“最短的”平均等待时间、平均周转时间(为啥打引号,看下文)
- 缺点:不公平,可能会产生饥饿现象(可能会一直短作业优先,导致长作业无限后延)
- 例子:非抢占
- 对比 FCFS,各方面都更优秀
- 例子(抢占):
- 对比非抢占,指标要更好。
- 默认非抢占
- SJF 平均等待时间、平均周转时间最少:不一定对,需要注意一下
三. 高响应比优先
1. 对前面两种算法的思考
- FCFS 对短作业不友好
- SJF 对长作业不友好,可能会造成饥饿
2. 描述
- 响应比:(等待时间 + 要求服务时间)/ 要求服务时间,一定 >= 1
- 作业、进程调度都可以
- 非抢占
- 综合了FCFS、SJF 的优点,以响应比的形式避免了长作业的饥饿问题
- 例子:
四. 一、二、三总结
- 这三种算法,适用于早期的批处理系统。