磁盘调度算法

磁盘调度算法

image


一、一次磁盘读/写操作需要的时间

image

  1. 寻道时间 TS
  2. 延迟时间 TR
  3. 传输时间 Tt

补充理解(上下的1.2.3.分别对应):

  1. 现在的磁盘移动一个磁道大约需要 0.2ms,磁臂启动时间约为 2ms

    (磁盘的物理移动时间耗费较大,后续算法应尽量减少磁盘的物理移动)

  2. 1/r 就是转一圈需要的时间。找到目标扇区平均需要转半圈,因此再乘以 1

    磁盘的典型转速为 5400转/分,或 7200转/分

  3. 每个磁道要可存 N 字节的数据,因此 b 字节的数据需要 b/N 个磁道才能存储。而读/写一个磁道所需的时间刚好又是转一圈所需要的时间 1/r

    这里理解为要读的数据占某磁道的一部分,算就算这部分的百分比乘读完整个磁道的时间

二、磁盘调度算法

(一)FCFS 先来先服务算法 First Come First Served

image

(二)SSTF 最短寻找时间优先 Shortest Seek Time First

image

(三)SCAN 扫描算法(电梯算法)

image

(四)LOOK 调度算法

image

(五)C-SCAN 循环扫描算法

image

(六)C-LOOK 调度算法

image

——重点:比较

算法 特点 备注
FCFS先来先服务 根据进程请求访问磁盘先后顺序 /
SSTF最短寻找时间优先 优先处理离当前磁头最近的磁道 贪心思想的体现;可能导致“饥饿”
SCAN扫描(电梯算法) 磁头到边缘才能改变移动方向,沿途处理请求 其实更像是”公交车“,真要说的话LOOK才像是电梯;不会导致“饥饿”
C-SCAN循环扫描 事先规定好一个方向,磁头只有在这个方向上移动才处理请求。到了这个方向的末端立刻调转方向回到起点返回途中不处理任何请求 是对SCAN算法对各个位置磁道的响应频率不平均缺点的改进
LOOK 磁头在某个方向上移动,当该方向上前面没有任何请求时可直接调转方向,不用非得到边缘才转向 是对SCAN的优化
C-LOOK 磁头在某个方向1上移动,当该方向1上前面没有任何请求时可直接调转至方向2,且回到离方向2末端最近的请求作为起点,不用非得到边缘才转向 是对C-SCAN的优化

若题目中无特别说明,则将 SCAN 看作 LOOK ,将 C-SCAN 看作 C-LOOK(都看为改进后的版本)(不需要到尽头)

posted @   Wind_730  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示