模拟卷 操作系统 路由表 解答题
第 46 题

(8 分)如果磁盘的每个磁道分成 9 个块,现有一文件有 A、B、…、I 共 9 个记录,每个记录的大小与块的大小相等,若磁盘转速为 6000RPM,每读出一块后需要 2.5ms 的处理时间。若忽略其他辅助时间,且一开始磁头在即将要读 A 记录的位置,试问:

(1)如果将这些记录顺序存放在一磁道上,则顺序读出该文件需多少时间? (2)若要求顺序读出的时间最短,则应该如何安排文件的存放位置?

路由表

[tag_link]

**【解析】** 本题考查磁盘的性能分析及优化。

(1) 每分钟 6000 转,则旋转 1 周所需的时间为 10ms,旋转 1 个记录需 ms。

ABCDEFGHI
123456789
[图片]

由于记录是顺序存放的,读完 A 记录后需 2.5ms 完成对数据的处理,此时磁头已转到后面的块上,但第二次应读 B 记录,则磁盘需空转大半圈回到序号为 2 的块,那么磁头从开始读 A 到开始读 B 的间隔中,应该转了 圈。同理,对从 B 到 C、从 C 到 D、…、从 H 到 I 的读操作也需花费额外的旋转时间,而转到 I 时,读数据需要转 圈,故读出 9 个记录需花费的时间为:

注意:该题还有更简便的计算方法,即可以注意到,从开始读 A 到最后读完 I 一共转了 9 圈(不理解的读者可以自己在圈上面数一数),即处理完前八个数据 + 读第九个数据的时间一共是 ms,而再加上最后的 2.5ms 的处理时间即可,一共是 ms。

(2) 在 (1) 中,由于额外的旋转时间导致了读取记录的时间较长,为了减少额外的旋转时间,可以对记录块的存放顺序作修改。考虑到每读取一个记录后需 2.5ms 的数据处理时间,磁盘旋转 3 块所需的时间是 3.33ms,因此可以每间隔 3 块存放相应的记录块,即 1 存放 A、5 存放 B、9 存放 C、4 存放 D、8 存放 E、3 存放 F、7 存放 G、2 存放 H、6 存放 I,如下图所示。

AHFDBIGEC
123456789
[图片]

此时,读出整个文件需要的时间为

注意:这里也可以按照上问中给的第二种方法,从开始读 A 到最后读完 I 一共转了 圈,再加上最后处理的 ,所以最后的时间为