本文概述
- SJF的优势
- SJF的缺点
在SJF调度中, 准备就绪队列中可用进程列表中突发时间最短的进程将接下来进行调度。
但是, 很难预测一个线程所需的突发时间, 因此该算法很难在系统中实现。
SJF的优势
- 最大产量
- 最小平均等待和周转时间
- 可能遭受饥饿的困扰
- 由于无法预先知道进程的确切突发时间, 因此无法实施。
例子
在以下示例中, 有五个作业分别命名为P1, P2, P3, P4和P5。下表列出了它们的到达时间和爆发时间。
PID | Arrival Time | 爆发时间 | Completion Time | 周转时间 | Waiting Time |
---|---|---|---|---|---|
1 | 1 | 7 | 8 | 7 | 0 |
2 | 3 | 3 | 13 | 10 | 7 |
3 | 6 | 2 | 10 | 4 | 2 |
4 | 7 | 10 | 31 | 24 | 14 |
5 | 9 | 8 | 21 | 12 | 4 |
根据该算法, OS调度就绪队列中可用进程中突发时间最短的进程。
到现在为止, 就绪队列中只有一个进程, 因此调度程序会将其调度到处理器, 无论其突发时间是多少。
这将执行到8个时间单位。到那时为止, 我们还有3个以上的进程到达了就绪队列, 因此调度程序将选择突发时间最短的进程。
在表中给出的进程中, 由于P3在所有可用进程中的突发时间最短, 因此将接下来执行。
这样便可以在最短作业优先(SJF)调度算法中执行该线程。
文章图片
【最短作业优先(SJF)调度】平均等待时间= 27/5
推荐阅读
- 系统睡眠与唤醒
- 系统单级目录
- Deep RL Bootcamp Lecture 2: Sampling-based Approximations and Function Fitting
- delphi 安卓配置教程
- app开发中读取数据库信息的vue页面
- android-圆形头像
- app与jvm 反向代理时config的设置(用于在web页面显示npm(就如tomcat)产生的页面)
- Install Kali in Android
- ListView的简单使用--Android