博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
磁盘读取
阅读量:4154 次
发布时间:2019-05-25

本文共 1067 字,大约阅读时间需要 3 分钟。

转自:

数据存储在磁盘上的排列方式会影响I/O服务的总时间。假设每磁道划分成10个物理块,每块存放1个逻辑记录。逻辑记录R1,R2,﹍﹍ ,R10存放在同一个磁道上,记录的安排顺序如下表所示:

  

物理块       1    2   3    4    5    6    7    8   9   10

逻辑记录     R1  R2 R3 R4 R5 R6 R7 R8 R9 R10

假定磁盘的旋转速度为20MS/周,磁头当前处在R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为4MS,则处理这10个记录的最长时间为_(15)_;若对信息进行优化分布后,处理这10个记录的最少时间为_(16)_。

(15)A.180ms    B.200 ms  C.204ms    D.220ms

(16)A.40ms     B. 60ms   C. 100ms   D.160ms

分析:
首先我们来回忆一下读磁盘数据的基础知识:首先磁头要移动到要访问的磁道(这个时间是寻道时间 seek time, 在本题中不需要考虑),然后等待要访问的物理块转动到磁头下面(这个时间是潜伏时间 latency time),最后是读物理块,读物理块的时间是该物理块从磁头下经过的时间。对于大容量硬盘来说,读取一小块数据的时间,相对寻道时间和潜伏时间是非常少的,以至于经常被忽略的。但是这里不能忽略,它需要20/10=2ms的时间。


现在我们来分析这道题。首先请大家注意10个物理块是从1到10依次排列的(可能有很多朋友在考虑第15题的时候忽视了这点),磁头就在R1的开始之处。 毫无疑问,必须先用2ms的时间来读出R1(读完后磁头处于R2的开始处),然后处理R1花费4ms。同时缓冲区只有一个,在R1被处理完之前,不能读入物理块(虽然在R1处理的过程中,磁头经过了R2物理块,可是无法读入)。但是在R1被处理完时,经过4ms的旋转磁头已经处于R4的开始处,于是不得不要有8*2=16ms的潜伏时间,才能使磁头到达R2的开始处,同样读出R2需要2ms,处理需要4ms,这样在R2上花费的时间是16+2+4=22ms,同理R3-R10也是22ms ,而R1是2+4=6ms , 所以一共需要的时间是 6+9*22=204ms.对应的选项是C  
经过上述的分析,第16题就不难得到答案了,如果将R2安排到原R4的位置,R3安排到原R7的位置,依次类推(此时物理块的排列为 R1 R8 R5 R2 R9 R6 R3 R10 R7 R4),这样访问R2-R9的潜伏时间都为0,此时处理10个物理块的时间最少,为6*10=60 , 对应选项 B.

转载地址:http://vdeti.baihongyu.com/

你可能感兴趣的文章
7 个适用于所有前端开发人员的很棒API,你需要了解一下
查看>>
20种在学习编程的同时也可以在线赚钱的方法
查看>>
隐藏搜索框:CSS 动画正反向序列
查看>>
【视频教程】Javascript ES6 教程27—ES6 构建一个Promise
查看>>
【5分钟代码练习】01—导航栏鼠标悬停效果的实现
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(中)
查看>>
127个超级实用的JavaScript 代码片段,你千万要收藏好(下)
查看>>
【web素材】03-24款后台管理系统网站模板
查看>>
Flex 布局教程:语法篇
查看>>
年薪50万+的90后程序员都经历了什么?
查看>>
2019年哪些外快收入可达到2万以上?
查看>>
【JavaScript 教程】标准库—Date 对象
查看>>
前阿里手淘前端负责人@winter:前端人如何保持竞争力?
查看>>
【JavaScript 教程】面向对象编程——实例对象与 new 命令
查看>>
我在网易做了6年前端,想给求职者4条建议
查看>>
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
查看>>
RQP-DEF-0177
查看>>
MySQL字段类型的选择与MySQL的查询效率
查看>>
Java的Properties配置文件用法【续】
查看>>
JAVA操作properties文件的代码实例
查看>>