磁盘系统基本概念以及磁盘的顺序读写与随机读写
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。
读写一个文件之前,得一层层目录找到这个文件,以及做一堆属性、权限之类的检查。
写新文件时还要加上寻找磁盘可用空间的耗时。
对于小文件,这些时间消耗的占比就非常大了。
(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。
读写一个文件之前,得一层层目录找到这个文件,以及做一堆属性、权限之类的检查。
写新文件时还要加上寻找磁盘可用空间的耗时。
对于小文件,这些时间消耗的占比就非常大了。
相关文章推荐
- 数据结构与算法(Java描述)-6、栈的基本概念以及顺序栈的实现
- Linux磁盘及文件系统管理 1---- 磁盘基本概念
- [文件系统]文件系统学习笔记(一)---基本概念以及inode
- sysbench测试磁盘顺序, 随机读写性能
- GPS系统的相关基本概念以及定位原理
- Linux命令的格式、常用命令汇总以及一些系统基本概念
- (实训第一天)Linux系统常用命令以及基本概念
- [文件系统]文件系统学习笔记(一)---基本概念以及inode
- windows的磁盘操作之一——基本概念
- Linux如何修改环境变量PATH,以及系统登录时读取文件的顺序
- win7 64位系统下读写access数据库以及安装了office32位软件再安装64位odbc的方法
- linux命令在系统中的查询顺序、分类和基本使用
- 数据库系统中的数据模型基本概念
- 开发ASP.NETAtlas服务器端Extender控件—基本概念以及预先需求
- VMWare下的CentOs的磁盘扩容以及与windows文件系统的关系对比
- Ubuntu磁盘分区以及双系统启动顺序修改
- 8_14 日学到的新知识(简单的工厂模式的实现, MVC 模式的基本概念,软件工程中的四种开发模型, 以及软件工程中的一些小知识点)
- Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项
- linux基本命令之管理磁盘和文件系统
- 七、Linux 磁盘基本概念(磁盘、分区、MBR、GPT)