amazzzzzing

导航

计算机操作系统 - 调度算法

计算机操作系统 - 调度算法

所有调度算法仅列出一次。

页面置换算法

工作集算法

  • 考察最近使用的页面(分页)。由工作集窗口和时间决定。选定特定时间的工作集窗口,去除重复项即得到工作集。

\[\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)    收藏  举报