磁盘存取
...大约 2 分钟
磁盘存取
1 磁盘存取原理
索引一般以文件形式存储在磁盘上,索引检索需要磁盘I/O 操作,与主存不同,磁盘I/O存在机械运动耗费。因此磁盘I/O的时间消耗时巨大的
1.1 磁盘的组成
一个磁盘由大小相同且同轴的圆形盘片组成
磁盘可以转动(各个磁盘必须同步转动)。
在磁盘的一则有磁头支架
磁头支架固定了一组磁头
- 每个磁头负责存储存取一个磁盘的内容
- 磁头不能转动,但是可以沿磁盘半径方向运动(实际是斜切向运动)
- 每个磁头同一时刻必须是同轴的
1.2 磁盘组成和工作原理
磁道
每个同心环叫做一个
扇区
磁盘的最小存取单元
1.2.1 确定数据位置
当需要从磁盘读取数据时,系统会将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑将逻辑地址翻译成物理地址。既确定要读的数据在哪个磁道,哪个扇区
1.2.2 磁头寻道
为了读取这个扇区的数据,需要将磁头放在这个扇区上方,为了实现这一点,磁头需要移动对准响应的磁道,这个过程叫做寻道,所耗费的时间叫寻道时间,
1.2.3 磁盘旋转到对应扇区
然后磁盘旋转将目标扇区旋转到磁头下,这个过程耗费的时间叫做旋转时间
2. 磁盘局部性原理与磁盘预读
由于存储介质的特性,磁盘本身存储就比主存慢很多,在加上机械运动耗费,磁盘的存取速度往往是主存的几百分之一,因此为了提高效率,要尽量减少磁盘I/O,为了达到这个目的,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取一定长度的数据放入内存,预读可以提高I/O效率。预读的长度一般为页(page:计算机管理存储器的逻辑块-通常为4k)的整数倍。主存和磁盘以页为单位交换数据。当程序要去读的数据不再主存中时,会触发一个缺页异常,此时系统会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后连续读取一页或几页载入内存中
赞助