计算机操作系统 - 调度算法
计算机操作系统 - 调度算法
所有调度算法仅列出一次。
页面置换算法
工作集算法
- 考察最近使用的页面(分页)。由工作集窗口和时间决定。选定特定时间的工作集窗口,去除重复项即得到工作集。
\[\text{工作集} \le \text{工作集窗口}
\]
操作系统需要保证进程的驻留集大于工作集。
LRU
- 换出最长时间未被使用的页(块)。
- 算法:保持序列中的计数唯一,且随最近使用顺序排列。
- 如果有4个行,则需要4个计数器,因此需要2位LRU位。
OPT
- 最佳置换算法,理论算法。选择的是未来最长一段时间不再使用的页面进行淘汰。
CLOCK
- 把可用资源分布于表盘上,指针扫过的区域置0,访问时置1。找第一个为0的位置。是一种对最近访问算法的简化。置 0 的过程表示在一轮查找过程中页已过时(最近没有访问)。注意 CLOCK 算法和 C-SCAN 算法的区别。
- 增加一个修改位,可以第一圈扫描过程中查找未修改的页,若没有找到,第二圈再查找已修改的页。对于没有修改的页,换出时可能就不需要写回(可能之前已经换出过)。
高响应比
进程、作业调度
FCFS
- 先来先服务调度算法。
SJF
- 短作业有限调度算法。平均等待时间和平均周转时间最短。
优先级
- 优先级调度算法。可分为非剥夺式优先级调度算法和剥夺式优先级算法。还可分为 静态优先级和动态优先级。
高响应比优先
-
\(响应比=\frac{等待时间+要求服务时间}{要求服务时间}\)
也即响应比为 \(\frac{预估周转时间}{预估耗时}\) 。因此,长作业等待时间更久,短作业等待时间更短。
时间片轮转
- 先来先执行,但只能执行一个时间片。
多级反馈队列调度
- 多个就绪队列。不同队列优先级不同。优先级高的队列,时间片小。新进程初始进入最高优先级队列,如果没有执行结束,则追加至下一级队列,直至最后一级以时间片轮转的方式进行。只有高优先级队列为空时,低优先级队列才会执行。
磁臂调度
SSFT
- Shortest Seek Time First
- 最短寻道时间优先算法
SCAN
- 扫描算法,又称电梯算法。
- 选择当前移动方向上最近的请求。若没有同方向上的请求,再折返。
C-SCAN
- Circular SCAN
- 循环扫描算法
- 相比扫描算法,折返时直接跳转到折返的底端。也即处理响应的过程中磁臂总是单向移动,如果没有同向的请求则跳转到起始侧重新开始。
posted on 2020-10-31 17:18 amazzzzzing 阅读(548) 评论(0) 收藏 举报