您的位置:首页 > 其它

磁盘系统基本概念以及磁盘的顺序读写与随机读写

2017-01-13 10:08 363 查看
本文总结自

(1)《数据库系统实现》

(2)知乎:https://www.zhihu.com/question/48254780

1.基本概念

2.细节

3.顺序读写和随机读写

1.基本概念

(1)磁盘组合

盘片=2盘面

主轴

磁道

柱面

扇区

间隙

块:对于理解数据库系统特别重要的是磁盘被划分为磁盘块(或就称为块,或者像操作系统称为页),

每块的大小是4-64kB。整个块被从一个称为缓冲区的连续内存区域中移进移出。

块是在磁盘与主存之间所传输数据的逻辑单元,由一个或多个扇区所组成。

(2)磁头组合

磁头臂

磁头

磁头组合:一个磁盘的所有磁头在一起叫做磁头组合,它们位于相同的柱面上。

2.细节

(1)磁道、扇区、读取速度的关系

一个盘面,从内到外有很多磁道,同一个磁道被划分为若干个扇区。

其中扇区之间有间隙隔开,间隙占磁道的10%空间。

同一个盘面上磁道上的数据密度相同,但是外侧磁道长度大于内侧磁道。

每一个扇区上的数据量是相同的(例如512字节),所以外侧磁道扇区数大于内侧磁道。

由于盘面各个磁道角速度相同,但是线速度不同,所以外侧磁道理论上来说读取速度快于内侧磁道。

当然如果内外侧磁道采用不同密度,可以实现内外磁道读取速度相同,但是有两个缺点

①制造工艺更加复杂

②浪费外侧存储空间

当然为了实现特定的目的,需要内外磁道一致的读取速度,也有可能这样做。

(2)磁道、磁头、柱面

①磁头并不会与磁道接触,而是靠地很近,可以感应盘面的磁方向,改变磁方向。

②同一磁盘的所有磁头位于不同的盘面,但是相同的磁道,这些相同的磁道共同构成一个曲面,称为柱面。

(3)磁盘读取时间

①寻道时间,表示磁头在不同磁道之间移动的时间。

②旋转延迟,表示在磁道找到时,中轴带动盘面旋转到合适的扇区开头处。

③传输时间,表示盘面继续转动,实际读取数据的时间。

7200转/min,旋转一周需要8.33ms

寻道约10ms

所以整个磁盘读取时间在一个磁道上是10ms级的。

3.顺序读写和随机读写对于机械硬盘来说为什么性能差异巨大?

顺序读写=读取一个大文件

随机读写=读取多个小文件

顺序读写比随机读写快的原因

①顺序读写,主要时间花费在了传输时间,而这个时间两种读写可以认为是一样的。

随机读写,需要多次寻道和旋转延迟。而这个时间可能是传输时间的许多倍。

②顺序读写,磁盘会预读,预读即在读取的起始地址连续读取多个页面

(现在不需要的页面也读取了,这样以后用时就不用再读取,当一个页面用到时,大多数情况下,它周围的页面也会被用到)

而随机读写,因为数据没有在一起,将预读浪费掉了。

③另一个原因是文件系统的overhead。

读写一个文件之前,得一层层目录找到这个文件,以及做一堆属性、权限之类的检查。

写新文件时还要加上寻找磁盘可用空间的耗时。

对于小文件,这些时间消耗的占比就非常大了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: