在磁盘上存储数据的排列方式会影响 I/O 服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录 R1,R2, ..., R10 存放在同一个磁道上, 记录的安排顺序如下表所示:

假定磁盘的旋转速度为 30ms/周,磁头当前处在 R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为 6ms,则处理这 10 个记录的最长时间为 (【306ms】);若对信息存储进行优化分布后,处理10个记录的最少时间为(【90ms】)。
磁盘处理同一磁道上的记录时,总耗时主要由单记录的读取处理时间和记录间的旋转定位时间构成。单记录读取时间可通过磁盘旋转一周时间除以每磁道物理块数计算,加上记录处理时间即为单记录的基础耗时。在未优化的连续顺序存储场景中,若记录处理时间大于单块读取时间,处理完当前记录后磁头会错过下一条记录的起始位置,需要额外等待旋转定位的时间,这会显著增加整体耗时。为减少这类额外开销,可采用优化存储策略,将记录按特定间隔存放,让处理完当前记录的耗时恰好匹配磁头旋转到下一条记录起始位置的时间,从而消除旋转定位延迟,此时总耗时仅为单记录基础耗时乘以记录总数。这类优化思路属于磁盘IO性能优化的一部分,核心是通过合理规划数据物理分布来减少机械操作带来的延迟,类似的还有针对寻道时间的优化算法,都是从降低机械开销角度提升IO效率的常用手段。
此题考察磁盘管理相关概念。
首先题干提到每磁道划分成10个物理块,并且磁头转动一周的时间是 30ms,那么扫过一个物理块的时间就是 3ms。加上处理的时间 6ms,读取并处理 R1一共需要 9 毫秒。这里有的同学会疑问,为啥不是边读取边处理,默认处理是要数据全局信息,所以需要读取完毕之后才能处理,需要两者时间相加。

而从 R2 开始,多了一个旋转定位时间,此时磁头位于 R4 开始处,磁头需重新转一圈到 R2,需要经过 8 个物理块,需要 8*3 = 24ms,然后读取 R2 并处理需要 9ms,合集需要 9 + 24 + 9 = 42ms。,后面的 R3 至 R10 与 R2 的情况一致。所以一共耗时 9 + 33 × 9 = 306 毫秒。
本题后面一问要求计算处理10个记录的最少时间。所谓分布优化,就是让R1处理完之后,磁头的位置在R2处,其实只要把记录间隔存放,就能达到这个目标。在物理块1中存放R1,在物理块4中存放R2,在物理块7中存放R3,依此类推,这样可以做到每条记录的读取与处理时间之和均为9ms,所以处理10条记录一共耗时90ms。

