【系统架构设计师】计算机组成与体系结构 ⑧ ( 磁盘管理 | “ 磁盘 “ 缓冲区 | “ 磁盘 “ 缓冲区 概念 和 作用 | “ 磁盘 “ 缓冲区 读取数据 / 写出数据 流程 )

2024-07-14 08:21:21 浏览数 (2)

一、" 磁盘 " 缓冲区简介


1、" 磁盘 " 缓冲区 概念

磁盘缓冲区 Disk Buffer 位于 磁盘 和 内存 之间的 数据缓冲区 , 其作用是 优化 数据读取 和 数据写入 速度 ;

磁盘缓冲区 通常由 DRAM ( Dynamic Random Access Memory , 动态随机存储器 ) 组成 , 与 内存一致 ;

磁盘缓冲区 一般都是 内存的一部分 , 主内存中的 这部分内存 被分配给磁盘缓冲区 , 用于临时存储 从磁盘读取 或 写入到磁盘 的数据块 ;

2、" 磁盘 " 缓冲区 作用

" 磁盘 " 缓冲区 作用 :

  • 提高 读取效率 : 磁盘缓冲区 可以 将 磁盘数据 更快地 从磁盘传输到主内存 , DRAM 的读写速度远高于磁盘的读取速度 , 磁盘数据先传输到 磁盘缓冲区 中 , 然后再通过CPU读取 , 可大幅度减少读取操作的等待时间 ;
  • 提高 CPU 性能 : CPU在读取数据时 , 不需要 等待 磁盘数据 , 将数据从 磁盘 传输到 主内存的 磁盘缓冲区 , CPU 直接从 磁盘缓冲区 中读取数据 , 这样可以让 CPU 更加高效地执行其他任务 , 而不会被 磁盘的访问速度 限制性能 ;
  • 提高 数据访问效率 : 磁盘缓冲区可以 优化数据 的 访问顺序 , 频繁访问的数据保留在缓冲区中 , 从而 减少 磁盘 寻道时间 和 旋转延时 ;

3、" 磁盘 " 缓冲区 读取数据 流程

" 磁盘 " 缓冲区 读取数据 过程 :

  • 数据读取请求 : 操作系统 或 应用程序 需要从 磁盘中读取数据 时 , 发出 数据读取请求 ;
  • 寻道和等待时间 : 磁盘控制器 收到 磁盘数据 读取请求 , 将请求 转发给 磁盘驱动器 , 先 将 磁头定位到 目标磁道 的 目标扇区 ; 磁头 先进行 寻道操作 找到指定的 磁道 , 然后 等待 磁盘旋转 将 指定扇区 旋转到 磁头下 ;
    • 寻道时间 : 磁头移动到目标磁道的时间 , 通过磁盘控制器进行控制 , 使磁头快速移动到目标磁道位置 ;
    • 旋转延时 : 磁盘等待目标扇区旋转到磁头下方的时间 , 该事件是由 磁盘的转速 决定 , 转速越高 旋转延时 越低 ;
  • 数据传输到缓冲区 : 磁头定 位到 目标磁道 的 目标扇区 后 , 磁盘控制器 会从 磁盘上 读取 数据块 , 暂时存放在 " 磁盘缓冲区 " 中 ;
    • 磁盘控制器 利用 DRAM 缓冲区 的高速存储能力 , 以较快的速度读取数据 ;
    • 磁盘缓冲区 本质 就是 内存 的一部分 ;
  • CPU 读取缓冲区内容 : 数据 传输到 磁盘缓冲区 , 磁盘缓冲区 本质 就是 内存的一部分 , CPU 可以直接从 内存 也就是 磁盘缓冲区 中读取数据 ;
    • 这样 避免了 CPU 直接操作磁盘 , 导致 CPU 长时间等待磁盘数据 , 以及 CPU 的运算性能的浪费 ;

4、" 磁盘 " 缓冲区 写出数据 流程

" 磁盘 " 缓冲区 写出数据 过程 :

  • 数据准备 : 应用程序 将 数据在 内存 中准备好 , 此时 数据还在 内存 中 的 堆内存 或 栈内存 中 ;
  • 数据从 内存 写入 磁盘缓冲区 : 将 数据 传输到 内存 中的 磁盘缓冲区 中 ;
    • 相当于 从 内存的 堆内存 中 , 传输到 内存的另一部分 磁盘缓冲区 中 ;
  • 从 磁盘缓冲区 写出 到 磁盘 : 数据到达磁盘缓冲区 , 磁盘控制器 开始将数据写入 磁盘 ;
    • 命令传递 : 磁盘控制器向磁盘发送 写入数据 的命令 , 指定要写入的磁盘扇区的位置 ;
    • 数据传输 : 数据从 磁盘缓冲区 传输到 磁盘的指定扇区 中 , 磁盘控制器 需要确保 数据 按照正确的顺序写入 , 并且保证数据的一致性 ;
    • 确认写入 : 数据写入磁盘成功后 , 磁盘控制器 通常会向 操作系统 发送确认信号 , 表示写入操作已经完成 ;
  • 缓冲区释放 : 数据 从 磁盘缓冲区 写出数据 到 磁盘 完成后 , 磁盘缓冲区 中的对应区域 需要被标记为 释放 , 可继续进行其它工作 ;

0 人点赞