假设有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

【答案解析】解析:本题考的是如何减少读写磁盘的时间、寻找时间、延迟时间和传输时间。