【系统架构设计师】计算机组成与体系结构 ⑨ ( 磁盘管理 | “ 磁盘 “ 单缓冲区 与 双缓冲区 | “ 磁盘 “ 单缓冲区 与 双缓冲区案例 )

news2024/10/6 18:35:20

文章目录

  • 一、" 磁盘 " 单缓冲区 与 双缓冲区
    • 1、" 磁盘 " 单缓冲区
    • 2、" 磁盘 " 双缓冲区
  • 二、" 磁盘 " 单缓冲区 与 双缓冲区案例
    • 1、案例描述
    • 2、磁盘单缓冲区 - 流水线分析
    • 3、磁盘双缓冲区 - 流水线分析






一、" 磁盘 " 单缓冲区 与 双缓冲区



磁盘缓冲区 的

  • 单缓冲区
  • 双缓冲区

是两种 不同的设计策略 , 用于 优化 数据 读取 和 写入 的效率 ;


1、" 磁盘 " 单缓冲区


只有一个缓冲区用于 存储数据 和 写出数据 , 无论是 读取数据 还是 写入数据 , 都使用同一个缓冲区 ;

  • 读取数据 : 当系统需要从磁盘读取数据时 , 数据首先被读取到单个缓冲区中 ;
  • 写入数据 : 当系统需要将数据写入磁盘时 , 写入操作也使用同一个缓冲区 ;

读取 和 写入 数据操作 不能并行进行 , 因为同一个缓冲区同时只能处理一个操作 , 会影响系统的响应速度和效率 ;


2、" 磁盘 " 双缓冲区


系统 有两个独立的缓冲区 , 分别用于 读取 和 写入 数据操作 ;

  • 读取数据 : 从磁盘 读取 数据时 , 数据被读取到 读缓冲区 中 ;
  • 写入数据 : 向磁盘 写入 数据时 , 数据被写出到 写缓冲区 中 ;

磁盘双缓冲区 允许 读取 和 写入 操作同时进行 , 能够有效地提高系统的并行处理能力和响应速度 ;





二、" 磁盘 " 单缓冲区 与 双缓冲区案例




1、案例描述


磁盘块 与 磁盘缓冲区 大小相同 ,

磁盘块 读取数据 到 磁盘缓冲区 的时间是 15 μs 微秒 ,

内存中的 磁盘缓冲区 将 数据送到 内存中的 用户区 需要的时间是 5 μs 微秒 ,

内存中 用户区 对 每块数据 的处理时间是 1 μs 微秒 ,

将 10 个 磁盘块 大小的 文件 , 读入到 磁盘缓冲区 , 然后送到 用户区处理 , 采用 磁盘单缓冲区磁盘双缓冲区 各自要花费多少时间 ;


2、磁盘单缓冲区 - 流水线分析


分析 磁盘单缓冲 的系统 中 单块 数据块 从 磁盘 到 内存用户区 的耗时 :

  • 磁盘单缓冲区 电路图如下 :
    在这里插入图片描述
  • 磁盘 中的 数据块 读取到 磁盘缓冲区 需要 15 μs ;
  • 将 数据块 从 磁盘缓冲功能 送入到 内存用户区 需要 5 μs , 该过程中 磁盘缓冲区 一直在占用 , 无法被写入 ;
  • 数据需要 20 μs 才能将一个 数据块 传输到 内存用户区 , 然后才能进行下一个 磁盘数据块 的传输 , 这 20 μs 的工作完成后 执行如下操作 ,
    • 并行操作 内存工作区处理数据块 : 数据 在 内存中的工作区 进行处理 耗时 1 μs , 该操作 与 下一轮 的 数据块传输 是 并行操作 , 不会占用额外的之间 , 只有最后一轮 10 个磁盘块 消耗了 20 × 10 20 \times 10 20×10 μs 时间之后 , 还需要额外消耗 1 μs 进行数据处理 ;
    • 并行操作 下一轮数据块传输 : 数据在工作区开始处理 时 , 下一块 磁盘 中的 数据块 同时 开始 向 磁盘缓冲区 中传输 , 又要需要 15 15 15 μs , 该操作 与 上一轮的数据块 在 内存工作区处理 是并行的操作 ;
  • 上述 数据块 传输了 10 次 , 消耗了 20 × 10 20 \times 10 20×10 μs , 此时 内存用户区 还要处理 最后一个数据块 , 再额外消耗 1 μs ;
  • 时序图如下 :
    在这里插入图片描述

最终时间消耗 : 20 × 10 + 1 = 201 20 \times 10 + 1 = 201 20×10+1=201 μs


3、磁盘双缓冲区 - 流水线分析


分析 磁盘单缓冲 的系统 中 单块 数据块 从 磁盘 到 内存用户区 的耗时 :

  • 磁盘双缓冲区 电路图如下 :

在这里插入图片描述

  • 磁盘 中的 数据块 读取到 磁盘缓冲区 需要 15 μs ;

    • 并行操作 - 传输数据到内存用户区 : 将 数据块 从 磁盘缓冲功区 送入到 内存用户区 需要 5 μs , 该过程中 磁盘缓冲区 B 是空闲的 , 可以同时进行下一个数据块读取 ;
      • 串行操作 - 数据 从 缓冲区传输到内存用户区 : " 从 磁盘缓冲功区 送入到 内存用户区 " 5 μs 与 下一轮 的数据传输 是并行的 , 因此只需要考虑 " 磁盘 中的 数据块 读取到 磁盘缓冲区 需要 15 μs " 即可 ;
      • 串行操作 - 内存工作区处理数据块 : 数据 在 内存中的工作区 进行处理 耗时 1 μs , 该操作 与 " 数据 从 缓冲区传输到内存用户区 " 的 5 μs , 总共用时 6 μs , 与之并行的任务耗时 15 μs , 并不会影响时间消耗 ;
    • 并行操作 - 下一个数据库传输 : 下一个数据块 从 磁盘中 读取到 另外一个磁盘缓冲区中 , 耗时 15 μs , 该过程与上面的 " 将 数据块 从 磁盘缓冲功区 送入到 内存用户区 " 操作 同时进行 ;
  • 上述 数据块 传输了 10 次 , 消耗了 15 × 10 15 \times 10 15×10 μs , 此时 最后一个数据块 , 数据 从 缓冲区传输到内存用户区 耗时 5 μs , 内存用户区 处理数据 再额外消耗 1 μs ;

  • 时序图如下 :

在这里插入图片描述

最终时间消耗 : 15 × 10 + 5 + 1 = 156 15 \times 10 + 5 + 1 = 156 15×10+5+1=156 μs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1891364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++习题08-计算星期几

目录 一,问题 二,思路 三,代码 一,问题 二,思路 首先,需要注意到的是3^2000这个数值很大,已经远远超过了long long 数据类型能够表示的范围,如果想要使用指定的数据类型来保存…

介绍一些好玩且实用的开源的AI工具

介绍一些好玩且实用的开源的AI工具 随着人工智能技术的迅猛发展,开源社区涌现出了许多关于AI的项目,这些项目不仅展示了技术的创新力,也为开发者提供了丰富的工具和资源。本文将介绍几个既有趣又实用的开源人工智能工具,它们不仅…

【C++】 解决 C++ 语言报错:Use of Uninitialized Variable

文章目录 引言 使用未初始化的变量(Use of Uninitialized Variable)是 C 编程中常见且危险的错误之一。它通常在程序试图使用尚未赋值的变量时发生,导致程序行为不可预测,可能引发运行时错误、数据损坏,甚至安全漏洞。…

【机器学习】机器学习与电商推荐系统的融合应用与性能优化新探索

文章目录 引言第一章:机器学习在电商推荐系统中的应用1.1 数据预处理1.1.1 数据清洗1.1.2 数据归一化1.1.3 特征工程 1.2 模型选择1.2.1 协同过滤1.2.2 矩阵分解1.2.3 基于内容的推荐1.2.4 混合推荐 1.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 Adam优化器 …

Kubernetes 离线安装的坑我采了

Kubernetes 离线安装的坑我采了 一、Error from server: Get "https://xx.xx.xx.xx:10250/containerLogs/kube-system/calico-node-8dnvs/calico-node": tls: failed to verify certificate: x509: certificate signed by unknown authority二、calico 或 pod 启动正…

目标检测入门:2.使用预训练的卷积神经网络

目录 源码下载 一、ResNet(Deep Residual Network,深度残差网络) 1.残差结构 ​编辑 2.ResNet网络结构 3.pytorch搭建ResNet 二、CIFAR-10分类:ResNet预训练权重的迁移学习实践 1.CIFAR-10数据集 2.ResNet18实现CIFAR-10分…

该文件没有与之关联的程序来执行该操作,请安装应用,若已经安装应用,请在‘默认应用设置’页面中创建关联。

作为一个喜欢折腾桌面外观的人,我发现桌面上的快捷方式图标都有一个小箭头。于是,我按照网上的方法在注册表中删除了 IsShortcut 键。结果,重启后任务栏上的图标点击时出现了提示:“该文件没有与之关联的程序来执行该操作,请安装应用,若已经安装应用,请在‘默认应用设置…

Markdown+VSCODE实现最完美流畅写作体验

​下载VSCODE软件 安装插件 Markdown All in One :支持markdown的语言的; Markdown Preview Enhanced :观看写出来文档的效果; Paste IMage :添加图片的 Code Spell Checker检查英文单词错误; 基础语法 标题 #一个…

windows USB 设备驱动开发-USB描述符

配置描述符 USB 设备以一系列称为 USB 配置的接口的形式公开其功能。 每个接口由一个或多个备用设置组成,每个备用设置由一组端点组成。 配置描述符中描述了 USB 配置。 配置描述符包含有关配置及其接口、备用设置及其端点的信息。 每个接口描述符或备用设置均在 …

如何使用python网络爬虫批量获取公共资源数据教程?

原文链接:如何使用python网络爬虫批量获取公共资源数据教程?https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608240&idx4&snef281f66727afabfaae2066c6e92f792&chksmfa826657cdf5ef41571115328a09b9d34367d8b11415d5a5781dc4c…

Audio Processing Graphs 管理 Audio Units

Audio Processing Graphs 管理 Audio Units Audio Processing Graphs 管理 Audio UnitsAudio Processing Graph 拥有精确的 I/O UnitAudio Processing Graph 提供线程安全通过 graph "pull" 音频流 Audio Processing Graphs 管理 Audio Units audio processing grap…

Flutter——最详细(Badge)使用教程

背景 主要常用于组件叠加上圆点提示; 使用场景,消息数量提示,消息红点提示 属性作用backgroundColor红点背景色smallSize设置红点大小isLabelVisible是否显示offset设置红点位置alignment设置红点位置child设置底部组件 代码块 class Badge…

Go语言学习:每日一练3

Go语言学习:每日一练3 目录 Go语言学习:每日一练3方法接口继承类型断言 方法 方法是一类有接收者参数的函数。 接收者的类型定义和方法的声明必须在一个包里 type MyInt intfunc (m MyInt) Add(add int) int {return int(m) add } //OR func (m *MyInt)…

Python绘制动态股价曲线图并保存视频

用akshare库获取英伟达(股票代码:105.NVDA) 在2014年6月19日到2024年6月19日期间的股票的收盘价数据(用后复权的收盘价); 基于后复权的收盘价数据,做一个动态股价曲线图,逐日显示英伟达股价的动态变化情况&…

Python28-7.1 降维算法之PCA主成分分析

降维算法是一类数据处理技术,主要用于将高维数据映射到低维空间中,从而减少数据的维度。降维不仅可以减少计算复杂度,提高算法性能,还可以帮助数据可视化。常见的降维算法包括主成分分析(PCA)、线性判别分析…

DP:背包问题----0/1背包问题

文章目录 💗背包问题💛背包问题的变体🧡0/1 背包问题的数学定义💚解决背包问题的方法💙例子 💗解决背包问题的一般步骤?💗例题💗总结 ❤️❤️❤️❤️❤️博客主页&…

力扣Hot100-19删除链表的倒数第n个节点(双指针)

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3:…

UCOS-III 任务调度与就绪列表管理

01. 就绪优先级位图 在实时操作系统中,任务调度的效率至关重要。UCOS-III通过就绪优先级位图来快速查找最高优先级的就绪任务,从而实现高效调度。就绪优先级位图是一个按位表示的结构,每个位代表一个优先级,当某个优先级上有任务就…

本地Windows电脑 连接 Windows 服务器

Windows电脑 连接 Windows 服务器 方式1:直接搜索 在电脑的搜索栏,输入“远程桌面连接” 可以选择点击 “打开” 或者直接按 回车键 “Enter”,打开 远程桌面连接 方式2:运行框打开服务器连接 同时按:Windows徽标键…

分布式数据库HBase:从零开始了解列式存储

在接触过大量的传统关系型数据库后你可能会有一些新的问题: 无法整理成表格的海量数据该如何储存? 在数据非常稀疏的情况下也必须将数据存储成关系型数据库吗? 除了关系型数据库我们是否还有别的选择以应对Web2.0时代的海量数据? 如果你也曾经想到过这些问题, 那么HBase将是…