双缓冲区
2016-05-05 15:26
148 查看
【2011年计算机统考真题】某文件占用10个磁盘块,现在要把该文件磁盘块逐个读入主缓冲区,并送用户区进行分析。假设一个缓冲区与一个磁盘块大小相同,把一个磁盘块读入缓冲区的时间为100μs,将缓冲区的数据传送到用户区的时间是50μs,CPU对一块数据进行分析的时间为50μs。在单缓冲区和双缓冲区结构下,读入并分析完该文件的时间分别是()。
1500μs,1000μs
1550μs,1100μs
1550μs,1550μs
2000μs,2000μs
单缓冲区下,当上一个磁盘块从缓冲区读入用户区完成时下一磁盘块才能开始读入,所以当最后一块磁盘块读入用户区完毕时,所用时间为150×10=1500,加上处理最后一个磁盘块的cpu处理时间50为1550.双缓冲区下,读入第一个缓冲区之后可以立刻开始读入第二个缓冲区,读完第二个缓冲区之后,第一个缓冲区的数据已经传送到用户区,因此不存在等待磁盘块从缓冲区读入用户区的问题,也就是100×10=1100,再加上最后一个缓冲区的数据传输到用户区并有CPU处理的时间50+50=100,总的时间是1000+100=1100。
按题目所讲,每个数据要经过3个处理步骤:读入缓冲区、送用户区、分析处理。
这3个步骤中,有2个步骤是要用到缓冲区的,这2个步骤执行时,缓冲区都不可以执行下一个磁盘区的处理工作。所以3个步骤可以合并为2个步骤:读入缓冲区并送用户区、分析处理。
1500μs,1000μs
1550μs,1100μs
1550μs,1550μs
2000μs,2000μs
单缓冲区下,当上一个磁盘块从缓冲区读入用户区完成时下一磁盘块才能开始读入,所以当最后一块磁盘块读入用户区完毕时,所用时间为150×10=1500,加上处理最后一个磁盘块的cpu处理时间50为1550.双缓冲区下,读入第一个缓冲区之后可以立刻开始读入第二个缓冲区,读完第二个缓冲区之后,第一个缓冲区的数据已经传送到用户区,因此不存在等待磁盘块从缓冲区读入用户区的问题,也就是100×10=1100,再加上最后一个缓冲区的数据传输到用户区并有CPU处理的时间50+50=100,总的时间是1000+100=1100。
按题目所讲,每个数据要经过3个处理步骤:读入缓冲区、送用户区、分析处理。
这3个步骤中,有2个步骤是要用到缓冲区的,这2个步骤执行时,缓冲区都不可以执行下一个磁盘区的处理工作。所以3个步骤可以合并为2个步骤:读入缓冲区并送用户区、分析处理。
相关文章推荐
- 获得Document路径
- 灰度插值实验
- 二十四 多重继承
- 在IE中检查控件是否安装成功
- Django笔记:5.激活模型
- ali面试点滴
- C++泛型编程
- #动态加载#OnscrollListener
- 用J-Link烧写bootloader到Mini2440的Nor Flash
- PowerDesigner15的安装和破解
- 重新部署shop++项目重复安装去除。
- php对接java现实加签验签
- SQL 左外连接,右外连接,全连接,内连接
- 设计模式之Strategy模式(策略模式)
- Java并发编程:如何创建线程?
- CSS中单位px和em,rem的区别
- gRPC java 客户端,服务器端通讯使用json格式
- 三体 读后感
- sqlite、mysql 将时间戳转换成本地时间语句
- SQL Server 维护计划实现数据库备份(Step by Step)(转)