磁盘的顺序读写与随机读写详解
1.磁盘的基本概念
盘片与盘面 : 一块硬盘一般有多块盘片,盘片分为上下两面,其中有效面称为盘面(一般上下都有效),盘片数一般与磁头数相等.也就是说:磁头数 = 盘面数 = 盘片数*2
磁头 : 磁头切换磁道读写数据时通过机械设备实现的,速度较慢;而磁头切换盘面读写数据是通过电子设备实现的,速度较快,因此磁头一般是先读写完柱面后才开始寻道的(不用切换磁道),这样磁盘读写效率更快.
磁道 : 磁道就是以中间轴为圆心的圆环,盘面有多个磁道,磁道之间有间隙,磁道也就是磁盘存储数据的介质.磁道上布有一层磁介质,通过磁头可以使磁介质的极性转换为操作系统的数据信号(即磁盘的读,磁盘写刚好相反)
柱面 : 磁盘中不同盘面中半径相同的磁道组成的. 也就是说 柱面数 = 某个盘面的磁道数
扇区 : 单个磁道就是多个弧形扇区组成的,当然某个盘面上的每个磁道拥有的扇区数量是相等.扇区是硬盘/磁盘的最小存储单元.但不是文件系统的最小存储单元(文件系统的最小存储单元是block,可以人为设定).一般扇区大小为512bytes(最新的硬盘好像可以有4K了)
2.磁盘的读写方式
文件系统不是一个扇区,一个扇区的来读数据,太慢了,所有有了block(块)的概念,它是一个块一个块的读取的.block才是文件存取的最小单位.
一个block块中扇区的个数依文件系统而不同,如一个block有8个扇区,那一个block块的大小为4K.
3.磁盘读取时间
寻道时间 : 表示磁头在不同磁道之间移动的时间
旋转延迟 : 表示在磁道找道时,中轴带动盘面旋转到合适的扇区开头处
传输时间 : 表示盘面继续转动,实际读取数据的时间
7200转/min,旋转一周需要8.33ms
寻道约10ms
磁头不动,盘动的过程
磁盘的转速;5400转,7200转,10000转,15000转 每分钟
4.顺序读写与随机读写
只有顺序写才能保证顺序读
当读取第一个block时,要经历寻道,旋转延迟,传输三个步骤才能读取完这个block的数据.而对于下一个block,如果它在磁盘的某个位置,访问它会同样经历寻道,旋转,延时,传输才能读取完这个block的数据, 我们把这种方式的IO叫做随机IO.但是如果这个block的起始扇区刚好在我刚才访问的block的后面,磁头就能立刻遇到.不需等待,直接传输.这种IO就叫顺序IO.
5 参考链接
磁盘基本知识与读写原理:
https://blog.csdn.net/rodbate/article/details/50371855
理解IO:随机和顺序
https://blog.csdn.net/BaiWfg2/article/details/52885287