主页 > 经验 >

详细分析磁盘读写原理

磁盘的读写顺序都是从盘片的最外面开始向内读写,也就是从1柱面1磁道1扇区开始(0柱面0磁道1扇区为磁盘主引导扇区),然后寻道找到对应的扇区,再根据读写情况,切换电路对磁盘进行或读或写操作。但如果扇区编号(保存在扇区头标)是按1,2,3的数字顺序排列下去,那就可能   磁盘的读写顺序都是从盘片的最外面开始向内读写,也就是从1柱面1磁道1扇区开始(0柱面0磁道1扇区为磁盘主引导扇区),然后寻道找到对应的扇区,再根据读写情况,切换电路对磁盘进行或读或写操作。但如果扇区编号(保存在扇区头标)是按1,2,3的数字顺序排列下去,那就可能出现一个读写效率的问题。比如扇区编号是按上面的情况排列在磁道上,那么当磁头对扇区1读写完成后,如果由于盘片的旋转速度过快或磁盘数据读写速度过慢,以致磁头准备对扇区2进行读写时,磁头却转到扇区2中间,磁道上的扇区间隔已不足以为磁盘提供读写下一扇区的准备时间,那么磁盘就需旋转一周后回头再对扇区2进行读写。这样的话,磁盘读写一道磁道时,磁盘旋转的周数就等于该磁道上的扇区数,这将大大降低磁盘的读写速率。因此,IBM的一位工程师就创出一种“交叉因子编码”的方式来对扇区进行编号。比如交叉因子为2:1,也就是1与2之间相差两扇区(比如第一位为扇区1,那么扇区2就在第三位),2与3也是如此,以此类推。如果磁盘旋转通过扇区1、2之间的间隔的时间小于磁盘的准备时间,那么读完一磁道的数据就需要磁盘旋转两周,否则就需旋转一磁道的扇区数。若是“准备时间”仍不足的话可以用交叉因子为3:1。因此通过交叉因子编码可以大大地提高磁盘读写速率,并充分利用磁盘空间,防止资源浪费。



最近发表
赞助商链接