OpenDSA 全教程

Chapter 14 File Processing

| 关于   «  1. 章引论:文件处理   ::   目录   ::   3. 硬盘驱动器与固态硬盘  »

2. 主存与辅助存储器

计算机存储设备通常分为两类:一类是 主存 (即 主存 ),另一类是 辅存 (即 外围存储 )。主存通常指 随机存取存储器 (RAM),而辅存则指硬盘、固态硬盘、可移动的“USB”驱动器和 DVD 等设备。主存还包括寄存器、缓存和视频内存,但本讨论中将忽略它们,因为它们的存在并不影响主存与辅存之间的主要区别。

截至 2020 年代,典型的家用计算机内存大小、速度和价格 与前几十年相比已变得相当稳定。 表 14.2.1 显示了 1996 年至 2025 年 一些代表性的价格数据。 这一范围内的早期年份,价格持续下降 (因此,典型用户拥有的容量随之增加)。 但现在情况已不再如此。

截至 2025 年,硬盘驱动器和固态硬盘都广泛用于辅助存储, 两者单位价格大约相差五倍(即半个数量级)。 相比之下,RAM 每单位存储的费用比 SSD 贵约两个数量级, 比 HDD 贵约 2.5 个数量级。

HDD 和 SSD 相比 RAM 还有一个优势,即它们是 持久的, 这意味着断电后数据不会从介质上消失。 相比之下,用于主存的 RAM 通常是 易失的—断电后所有信息都会丢失。

作为存储成本降低和持久性的代价, 辅助存储设备在访问时间上付出了更高的代价。 虽然并非所有磁盘访问花费相同的时间 (后面会详述),但 2025 年从 HDD 读取一个字节的 典型时间约为 9 毫秒 (即 9 千分之一 秒)。 这个指标有时被称为延迟。 这与过去 20 年的情况大致相同。 这可能看起来并不慢,但与从主存 读取一个字节所需的时间相比,这是极其缓慢的。 2025 年,从标准个人计算机 RAM 的典型访问时间 约为 10-15 纳秒 (即 10-15 十亿分之一 秒)。 (多年来这个数字也大致不变。) 因此,从 HDD 读取一个字节数据的时间 大约是从主存读取一个字节的六个数量级。 虽然磁盘驱动器和 RAM 的访问时间在过去 30-40 年有所下降, 但它们下降的速率大致相同。 几十年来,相对速度保持不变, RAM 与磁盘驱动器之间的访问时间差异 保持在 100,000 到 1,000,000 倍之间。

SSD 的延迟时间明显低于 HDD。 对于 SSD,大约为 100 微秒,平均比典型 HDD 快约 100 倍。 但这仍然比 RAM 延迟时间慢约四个数量级。

要直观理解这种速度差异的重要性, 可以考虑你在互联网上搜索磁盘驱动器 然后点击链接加载页面所需的时间。 将此作为你的"主存"访问时间。 如果你需要大约 10 秒完成此操作, 那么需要一百万倍时间的操作将需要数月时间。 在这个类比中,SSD 延迟时间仍然需要数周。

有趣的是,虽然处理速度大幅提升,硬件价格大幅下降, 但磁盘和内存的访问时间在过去 30 年 改进不到一个数量级。 然而,实际情况实际上比这种适度的速度提升 所暗示的好得多。 在同一时期,磁盘和主存的大小增加了三个数量级以上。 因此,面对存储设备密度的大幅增加, 访问时间实际上减少了。

由于磁盘上数据的访问时间相对于主存较慢, 因此需要格外小心才能创建高效的 处理磁盘信息的应用程序。 HDD 访问时间与主存访问时间之间百万比一的比率 使得以下规则在设计磁盘应用程序时至关重要:

最小化磁盘访问次数!

通常有两种方法可以最小化磁盘访问。 第一种是安排信息,使得即使从辅助存储器访问数据, 也能以尽可能少的次数获取所需信息, 最好一次访问就能获取。 文件结构 是用于组织 辅助存储器中数据的数据结构。 文件结构应以最小化所需磁盘访问次数为原则来组织。 另一种最小化磁盘访问的方法是保存之前检索到的信息 (或以很小的额外成本在每次访问时检索额外数据), 这些信息可用于最小化未来访问的需求。 这需要能够准确猜测 以后需要什么信息并将其存储在主存中。 这被称为 缓存。

   «  1. 章引论:文件处理   ::   目录   ::   3. 硬盘驱动器与固态硬盘  »

关闭窗口