磁盘详解(一文搞懂磁盘)

目录

一.磁盘的结构

二.磁盘的分类

 2.1按照磁头是否可以移动分类

2.2按照盘片是否可以更换分类

三.磁盘的读写过程

 四.磁盘的调度

4.1FCFS先来先服务算法

4.2SSTF最短寻找时间优先

4.3 SACN扫描算法

4.4C-SACN循环扫描算法

4.5 SPTF(最短定位时间优先)

五.磁盘减少延迟采取的措施

5.1磁道偏移

5.2多区

5.3磁盘缓存

 六.磁盘地址结构表示

七.IO合并


一.磁盘的结构

分块解析:

磁道: 磁盘的盘面被划分成一个个磁道。 这样的一个“圈”就是一个磁道

扇区: 一个磁道又被划分成一个个扇区,每个扇区就是一个“磁盘块”。各个扇区存放的数据量相同(如1KB) 

盘面,柱面

二.磁盘的分类

 2.1按照磁头是否可以移动分类

2.2按照盘片是否可以更换分类

三.磁盘的读写过程

寻找时间(寻道时间) T S :在读 / 写数据前,将磁头移动到指定磁道所花的时间。
启动磁头臂 是需要时间的。假设耗时为 s
移动磁头 也是需要时间的。假设磁头匀速移动,每跨越一个磁道耗时为 m ,总共需要跨越 n 条磁道。则: 寻道时间 T S = s + m*n
延迟时间 T R :通过旋转磁盘,使磁头定位到目标扇区所需要的时间。设磁盘转速为 r (单位:转 / 秒,或 转 / 分),则 平均所需的延迟时间 T R = (1/2)*(1/r) = 1/2r
传输时间Tt :从磁盘读出或向磁盘写入数据所经历的时间,假设磁盘转速为 r ,此次读 / 写的字节数为 b ,每个磁道上的字节数为 N 。则: 传输时间T t = (1/r) * (b/N) = b/(rN)
例题:

寻求正确的轨道。磁头当前所在的位置在外围的21扇区,如果要访问12,必须先将磁头移到其所在的位置,即寻道(seek)。平均寻道时间大约需要 4ms。完全寻道(从表面的一端到另一端)可能需要两到三倍的时间。寻道有许多阶段:首先是磁盘臂移动时的加速阶段;然后随着磁盘臂全速移动而惯性滑动;然后随着磁盘臂减速而减速;最后,在磁头小心地放置在正确的磁道上时停下来。不是纯粹的线性成本。必须加速、滑行、减速、停放。停放时间(settling time)可能需要 0.5~2ms,因为驱动器必须确定找到正确的磁道。

等待旋转。等待期望的扇区旋转到磁头下。这种等待在现代驱动器中经常发生,并且是 I/O 服务时间的重要组成部分,又称之为旋转延迟(rotational delay/rotation delay)。平均旋转延迟直接根据 RPM 计算。15000 RPM 等于 250 RPS(每秒转速)。因此,每次旋转需要 4ms。平均而言,磁盘将会遇到半圈旋转,因此平均时间为 2ms。

传输数据。传输速度很快,取决于 RPM 和扇区密度。100+ MB/s 是典型的最大传输速率。传输时间就是传输大小除以峰值传输速率。512 字节 * (1s / 100 MB) ≈ 5 us。

读/写时间由三个组成部分:时间 = 寻道 + 旋转 + 传输时间

 

顺序工作负载:每个的吞吐量是多少?

Cheeta: 125 MB/s

Barracuda: 105 MB/s

随机工作负载:每个的吞吐量是多少?假设随机读取 16 KB。

Cheetah 平均随机读取 16 KB 需要多长时间?

 

 四.磁盘的调度

由于I/O的高开销,操作系统在决定哪个I/O与磁盘交互扮演一个重要角色。磁盘调度程序(disk scheduling)。

不像任务调度程序,磁盘调度程度对于每一个任务的长度是未知的,它只能靠好的猜测。通过估计任务花费时间来确定执行最短任务(SJF)。磁头的位置、任务请求的位置,比任务的长度更重要。

最大限度地缩短访问时间并最大限度地提高数据传输带宽,需要减少花费在寻道上的时间。

4.1FCFS先来先服务算法

优点:公平;如果请求访问的磁道比较集中的话,算法性能还算过的去
缺点:如果有大量进程竞争使用磁盘,请求访问的磁道很分散,则 FCFS 在性能上很差,寻道时间长。

4.2SSTF最短寻找时间优先

Eg :本例中,如果在处理 18 号磁道的访问请求时又来了一个 38 号磁道的访问请求,处理 38 号磁道
的访问请求时又来了一个 18 号磁道的访问请求。如果有源源不断的 18 号、 38 号磁道的访问请求
到来的话, 150 160 184 号磁道的访问请求就永远得不到满足,从而产生“饥饿”现象。

4.3 SACN扫描算法

优点:性能较好,平均寻道时间较短, 不会产生饥饿现象
缺点: 只有到达最边上的磁道时才能改变磁头移动方向,事实上,处理了 184 号磁道的访问请
求之后就不需要再往右移动磁头了。
SCAN 算法对于各个位置磁道的响应频率不平均(如:假设此时磁头正在往右移动,且刚处理过
90 号磁道,那么下次处理 90 号磁道的请求就需要等磁头移动很长一段距离;而响应了 184 号磁道
的请求之后,很快又可以再次响应 184 号磁道的请求了)

4.4C-SACN循环扫描算法

SCAN 算法对于各个位置磁道的响应频率不平均,而 C-SCAN 算法 就是为了解决这个问题。规定只有磁头朝某个特定方向移动时才处理磁道访问请求,而 返回时直接快速移动至起始端而不处理任何请求

进一步改进,即磁头移动只需要到达最远端的一个请求即可返回,不需要到达磁盘端点。这种形式的SCAN算法和C-SCAN算法称为LOOK调度和C-LOOK调度,因为它们在朝一个给定方向移动前会查看是否有请求。 

4.5 SPTF(最短定位时间优先)

五.磁盘减少延迟采取的措施

5.1磁道偏移

5.2多区

5.3磁盘缓存

 

 六.磁盘地址结构表示

磁盘上的物理地址一般用:柱面号,盘面号,扇区号(或者块号)表示

比如要寻找第0个柱面,0个盘面,第七个扇区

则表示为(000,00,111)

七.IO合并

设想请求读取队列:33,  8, 34

在这种情况下,调度程序应该将 33 和 34 的请求合并在一起。

合并在操作系统级别尤其重要,因为它减少了发送到磁盘的请求数量,从而降低了开销。


  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值