假设有8个记录A、B,C、D、E、F、G、H存放在磁盘里,每个磁道有8个扇区,正好可以存放8个记录。假设磁盘旋转速度为20ms/转,处理程序每读出一个记录后,用2ms的时间进行处理,请问:
(1)当记录A、B、C、D、E、F、G、H按顺序放在磁道上时,顺序处理这5个记录花费的总时间是多少假设启动时的位置正好在A扇区的起点。
(2)如何采取优化方法,使处理这些记录所花费的总时间最短求出该最短时间。
参考答案:[解答] (1)磁盘旋转速度是20ms/转,共分成8个扇区,因此,每个扇区所花费的读写时间为20ms/8=2.5ms。若按顺序编号,每读出一个扇区后用2ms的时间进行处理,此时,磁盘仍在转动,处理完A扇区后,磁头经过了大部分的B扇区,即将到达C扇区,因此,要等磁盘再转一圈后才可读扇区B,见下左图,依此类推,顺序处理8个扇区的时间花费是(其中H是最后一个,因此,处理有别于其他扇区):
A~G扇区读取时间:2.5ms;A~G扇区处理时间:2ms
等待下一个扇区到达时间:20ms-2ms=18ms
H扇区读取时间:2.5ms;H扇区处理时间:2ms
总消耗时间为:(2.5ms+2ms+18ms)×7+2.5ms+2ms=162ms
(2)采用的优化方法是扇区交替编号,使得A扇区在处理完以后可以在最短时间内定位B扇区,排列方式如上右图。花费时间是:
A~D扇区读取时间:2.5ms;A~D扇区处理时间:2ms
A~C等待下一个扇区到达时间:2.5ms-2ms=0.5ms
D等待E扇区到达时间:0.5ms+2.5ms=3ms
E~H扇区读取时间:2.5ms;E~H扇区处理时间:2ms
E~G等待下一个扇区到达时间:2.5ms-2ms=0.5ms
总消耗时间为:
(2.5ms+2ms)×4+0.5ms×3+3ms+(2.5ms+2ms)×4+0.5ms×3=42ms
解析: 本题考的是如何减少读写磁盘的时间、寻找时间、延迟时间和传输时间。