尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

缓冲区计算问题

缓冲区计算问题
📅 发布时间:2026/6/20 19:44:01

题目:假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为 \(16 μs\),由缓冲区送至用户区的时间是 \(5 μs\),在用户区内系统对每块数据的处理时间为 \(1 μs\)。若用户需要将大小为10个磁盘块的 Doc1 文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为(1)\(μs\);采用双缓冲区需要花费的时间为(2)\(μs\)。

单缓冲区

对于单缓冲区的情况,数据尚未进入用户区时,缓冲区为繁忙状态,即使磁盘块到缓冲区这一步已经完成,两者是不能并行的,即图中绿色和蓝色的部分,这两个流程是不能并行的。计算时先按照时间比例作出一个完整流程的时间图,即包括磁盘块读入缓冲区的时间、缓冲区读入用户区的时间、用户区处理数据的时间,这三个步骤构成一个完整的流程。

缓冲区读入用户区后,在用户区处理数据的时间内,缓冲区为空闲状态,此时磁盘块读入缓冲区的步骤可以与用户区处理数据并行。即图中第二段蓝色与第一段紫色可以同时进行,作图第二个完整流程。此时我们以 2 个作业任务进行分析,就可以找到其中的规律。
如果多作图几个流程,可以很容易看出,红底部分为一个周期,如何判断一个周期,即去掉第一个流程中不能并行的部分(磁盘块读入缓冲区的部分,图中蓝色部分),去掉最后一个流程的不能并行的部分(缓冲区读入用户区,用户区处理数据,绿色和紫色部分)。

这时候计算就很容易了,计算出周期的时间 \(16+5=21μs\),首尾的两个流程会凑成一个周期,中间共 \(10-1=9\) 个周期,再加上首尾这一个完整周期的时间就得到总时间。

\[ (10-1)* (16+5)+16+5+1=211 \mu s\]

单缓冲区计算示意图

双缓冲区

对于双缓冲区的情况,在缓冲区读入用户区数据的过程中,因为有一个缓冲区为空闲,所以此时可以并行处理磁盘块到缓冲区的流程(图中深蓝色的部分)。这个步骤的时间比较长,而缓冲区读入用户区这个过程是需要等待缓冲区从磁盘块读入完整后才能进行的,所以深绿色部分必须在深蓝色部分之后,但它可以与浅蓝色部分并行,即另一块缓冲区此时是空闲状态的。这种情况下建议画出 3 个完整流程,就可以看出周期规律。同样地,第一个周期的磁盘块读入缓冲区流程无可并行者(浅蓝色),最后一个流程的缓冲区至用户区,用户区数据处理部分也一样无法与其他并行处理(图中最后一段绿色和紫色部分,当然此处也可能是深绿色部分,即另一个缓冲区为最后一个处理流程,类似地,不作图补充)。

在这种情况下,一个周期时间长度实际上是由磁盘块读入缓冲区的时间来决定的,即当前周期长度变成了 \(16μs\)(并非绝对,需根据数据比例作图确定)。此时计算过程与上面单缓冲区其实是一致的。

\[(10-1)*16+16+15+1=166 \mu s \]

双缓冲区计算示意图

总结

计算缓冲区时间问题的关键在于根据比例画出步骤图示,确定缓冲区周期,确定好缓冲区周期后,双缓冲区和单缓冲区的时间计算其实是一致的。

参考资料

1.2.6存储结构-磁盘管理:单缓冲区与双缓冲区读取、流水线周期、计算流水线执行时间

本文来自博客园,作者:MGTPEZ,转载请注明原文链接:https://www.cnblogs.com/mgtpez/p/19233826

相关新闻

  • 10. 准入控制器
  • work5
  • 在保留旧版本 Python 的同时,安全地使用或切换到新版本,而不破坏原有项目或系统依赖

最新新闻

  • 立足云南深耕西南、全域覆盖全国 考编雷达差异化打造一站式考编服务平台 - 速递信息
  • [智能体-489]:在星际文明发展的过程中,目前处于什么阶段?
  • Jellyfin桌面客户端:构建专业级开源媒体中心的完整指南
  • Linux超级用户本质:EUID、SUID与权限机制深度解析
  • LPC112x微控制器:从8/16位平滑升级到32位ARM Cortex-M0的实战指南
  • Windows下用Ollama+OpenClaw搭建本地AI Agent实战指南

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号