减少磁盘读/写中延迟时间的方法(交替编号,错位命名)

目录

  • 1.延迟时间的优化空间
  • 2.交替编号
  • 3.磁盘地址结构的设计
    • 1.若物理地址结构是(盘面号,柱面号,扇区号)
    • 2.若物理地址结构是(柱面号,盘面号,扇区号)
  • 4.错位命名

关于磁盘延迟时间的概念请看博主的上一篇文章: 磁盘调度算法

1.延迟时间的优化空间

减少磁盘读/写中延迟时间的方法(交替编号,错位命名)_第1张图片

假设要连续读取橙色区域的2、3、4扇区:
磁头读取一块的内容(也就是一个扇区的内容)后,需要一小段时间处理,而盘片又在不停地旋转。
因此,如果2、3号扇区相邻着排列,则读完2号扇区后无法连续不断地读入3号扇区,必须等盘片继续旋转,3号扇区再次划过磁头,才能完成扇区读入。

结论:磁头读入一个扇区数据后需要一小段时间处理,如果逻辑上相邻的扇区在物理上也相邻,则读入几个连续的逻辑扇区,可能需要很长的“延迟时间”。

2.交替编号

若采用交替编号的策略,即让逻辑上相邻的扇区在物理上有一定的间隔,可以使读取连续的逻辑扇区所需要的延迟时间更小。

减少磁盘读/写中延迟时间的方法(交替编号,错位命名)_第2张图片

3.磁盘地址结构的设计

假设某磁盘有8个柱面/磁道(假设最内侧柱面/磁道号为0 ) ,4个盘面,8个扇区。
则可用3个二进制位表示柱面,2个二进制位表示盘面,3个二进制位表示扇区。

1.若物理地址结构是(盘面号,柱面号,扇区号)

减少磁盘读/写中延迟时间的方法(交替编号,错位命名)_第3张图片

转动两圈读完一个柱面后,需要移动磁头臂,将磁头移动到下一个磁道。
移动磁头是一种物理上的移动,所需花费的时间是比较高的。

2.若物理地址结构是(柱面号,盘面号,扇区号)

减少磁盘读/写中延迟时间的方法(交替编号,错位命名)_第4张图片

先依次读取不同盘面的扇区,由于柱面号(磁道号)相同,只是盘面号不同,因此不需要移动磁头臂。
只需要激活相邻盘面的磁头即可
因此读取地址连续的磁盘块时,采用(柱面号,盘面号,扇区号)的地址结构可以减少磁头移动消耗的时间

4.错位命名

优化原因:如果不同盘面的扇区的相对位置一致,同样会导致存在读取时间差,导致磁盘多余旋转,从而增长了延迟时间。

解决方案:不同盘面之间的扇区采用错位命名法,假如磁头读取完0号盘面的1号扇区后,需要一段时间处理,再读取与前者错位的1号磁盘的1号扇区,就可以直接读取数据。从而减少了延迟时间。

你可能感兴趣的:(操作系统,数据库,服务器,linux,运维)