查看更多
当前 - 选择题 - 磁盘管理
中等
单选题
2016年11月第5题
#操作系统
#磁盘管理
#凯恩建议必须掌握
#教材之外(超纲)

某计算机系统输入/输出采用双缓冲工作方式,其工作过程如下图所示,假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间T为 10μs,由缓冲区送至用户区的时间 M 为 6μs,系统对每个磁盘块数据的处理时间 C 为 2μs。若用户需要将大小为 10 个磁盘块的 Doc1 文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用双缓冲需要花费的时间为(问题1)μs,比使用单缓冲节约了(问题2)μs时间。

正确答案B
凯恩解析

此题看起来考察磁盘管理

问题(1):在双缓冲方式下,第一个磁盘块读入缓冲区时间T=10μsT = 10μs,传送到用户区时间M=6μsM = 6μs,处理时间C=2μsC = 2μs,这三个操作依次进行,总时间为T+M+C=10+6+2=18μsT + M+ C=10 + 6 + 2 = 18μs 。从第二个磁盘块开始,由于双缓冲机制,磁盘块读入缓冲区的操作可以和缓冲区数据传送到用户区及数据处理操作并行。后续每个磁盘块实际增加的时间是T=10μsT = 10μs(因为并行时,以最长的读入时间为间隔),一共1010个磁盘块,除去第一个磁盘块,还有99个,所以总时间为18+9×10=108μs18+9\times10 = 108μs

问题(2):54 μs。在单缓冲方式下,磁盘一定要等缓冲区的数据被加载到处理区后才能处理。这里分为两段流水,一段是读入缓冲区+缓冲区传送到用户去,这一段是不可分的,另一段是数据处理,即先读入缓冲区(T=10μsT = 10μs)+再传送到用户区(M=6μsM = 6μs)是一个整体,最后处理(C=2μsC = 2μs),这是一个流水线操作,那么根据流水线公式,1010个磁盘块总时间为(16+2)+9×(16)=162μs(16 + 2)+9\times(16)=162μs 。双缓冲时间为108μs108μs,所以节约的时间为162108=54162 -108= 54

再回头看和双缓冲区的区别,之前单缓冲区之所以在缓冲传送到用户不能写入,是因为这里假定缓冲区是一个只能被单一线程处理的,只要这个区域被读写你就不能用。类似被加了锁。双缓冲区通过建立额外的缓冲通道实现了在缓冲区 1 被使用的时候,不影响磁盘块的继续写入所以效率更高。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有