假设有8个记录A、B,C、D、E、F、G、H存放在磁盘里,每个磁道有8个扇区,正好可以存放8个记录。假设磁盘旋转速度为20ms/r,处理程序每读出一个记录后,用2ms的时间进行处理,请问: (1)当记录A、B、C、D、E、F、G、H按顺序放在磁道上

admin2013-07-12  67

问题 假设有8个记录A、B,C、D、E、F、G、H存放在磁盘里,每个磁道有8个扇区,正好可以存放8个记录。假设磁盘旋转速度为20ms/r,处理程序每读出一个记录后,用2ms的时间进行处理,请问:
    (1)当记录A、B、C、D、E、F、G、H按顺序放在磁道上时,顺序处理这5个记录花费的总时间是多少?假设启动时的位置正好在A扇区的起点。
    (2)如何采取优化方法,使处理这些记录所花费的总时间最短?求出该最短时间。

选项

答案(1)磁盘旋转速度是20ms/r,共分成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

解析 本题考的是如何减少读写磁盘的时间、寻找时间、延迟时间和传输时间。
转载请注明原文地址:https://kaotiyun.com/show/Xrxi777K
0

最新回复(0)