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

admin2013-12-31  38

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

选项

答案(1)磁盘旋转速度是20 ms/r,共分成8个扇区,因此,每个扇区所花费的读写时间为20 ms/8=2.5 ms。若按顺序编号,每读出一个扇区后用2 ms的时间进行处理,此时,磁盘仍在转动,处理完A扇区后,磁头已经过了大部分的B扇区,即将到达C扇区,因此,要等磁盘再转一圈后才可读扇区B,见图3—7(a),依此类推,顺序处理8个扇区的时间花费是(其中H是最后一个,因此,处理有别于其他扇区): A~G扇区读取时间:2.5ms;A~G扇区处理时间:2 ms等待下一个扇区到达时间:20 ms-2 ms=18 ms H扇区读取时间:2.5 ms;H扇区处理时间:2 ms总消耗时间为:(2.5 ms+2 ms+18 ms)×7+2.5 ms+2 ms=162 ms (2)采用的优化方法是扇区交替编号,使得A扇区在处理完以后可以在最短时间内定位B扇区,排列方式如图3—7(b)。花费时间是: [*] A~D扇区读取时间:2.5 ms;A~D扇区处理时间:2 ms A~C等待下一个扇区到达时间:2.5 ms-2 ms=0.5 ms D等待E扇区到达时间:0.5 ms+2.5 ms=3 ms E~H扇区读取时间:2.5 ms;E~H扇区处理时间:2 ms E~G等待下一个扇区到达时间:2.5 ms-2 ms=0.5 ms 总消耗时间为: (2.5 ms+2 ms)×4+0.5 ms×3+3 ms+(2.5 ms+2 ms)×4+0.5 ms×3=42 ms

解析
转载请注明原文地址:https://kaotiyun.com/show/7cxi777K
0

最新回复(0)