如题:2018年10月
分析:操作系统相对来说,记忆的东西,还是比较多的,不仅要明白是怎么回事,重要的还得会讲,有时候知道怎么回事,但却不会说,也就是不知道概念是什么,这样丢分是很可惜的。此题,就是一个概念题,明白这些概念才能做好此题,出自《操作系统考点之I/O设备管理要点总结及通道》第5问磁盘调度策略
寻找时间:磁头寻找柱面所花时间,移动臂所花的时间。
延迟时间:扇区旋转到磁头下面所花时间,磁盘旋转时间
传送时间:磁头读写时间,实际是很短的,可以忽略。
基本的查找数据的顺序是,磁道(柱面) ----> 扇区 ----> 传送
对应的三个时间是: 寻找时间 ----> 延迟时间 ----> 传送时间
1)、问的是顺序处理这8个数据需要多长时间,因为是同一个磁道上,查找时间只需要一次题目也未给出,所以可以忽略。可以默认为已经找到数据所在的柱面。旋转一圈是48ms,又分成了8个扇区,所以磁头每经过一个扇区是48/8=6ms,也就是延迟时间就是6ms.
每次读数据后处理12ms,也就是处理时间是12ms,是不是光(12+6)*8就完事呢??还得脑补出实际读数据的流程,假设在1号扇区,在读数据后处理的12ms中,磁盘停止旋转了吗?显然是没有的,由于是顺序读取的,多旋转了12ms,显然已经错过了下一个扇区的位置,并且是6+6ms,接连错过两个扇区的位置,所以只能再旋转剩下的一周,48-12=36ms才能来到读取完1号扇区的位置,才开始读2号扇区,这样的情况是多少次呢?想想也知道,就是 8-1=7次。所以顺序读取的所花时间为(6+12)*8+36*7=396ms
可见,除了概念外,脑补图形或画画图来理解,是非常重要的方法,不要想当然的就认为是怎么怎么样。这其实也是一种学习方法。
2)、有了上问的分析基础,再来做2问,还是比较简单的,如何优化,就是将错过的两个错过,直接读磁头底下的数据不就行了吗,也就是转到哪里读哪里。所以答案如下: