操作系统中分页的必要性2025 年 5 月 13 日 | 阅读 8 分钟 我们是否曾经想过为什么相应的操作系统通常会使用分页?它实际上是一个解决内存管理中一个大问题的聪明办法。 假设我们同时运行多个程序——可能是一个浏览器、一个视频播放器和一个文本编辑器。它们每个都需要内存来运行,但系统必须确保它们不会相互干扰。这就是分页发挥作用的地方。 众所周知,“分页”将计算机内存划分为称为“页”的小型、固定大小的块。而不是一次性将整个程序加载到内存中,只加载需要的页,从而有效地节省空间,也允许多个程序即使在运行大型程序时也能流畅运行。
更多时候,这种特殊的方法还能保护每个程序不干扰其他程序的内存区域,保持系统的稳定和安全。 分页是什么意思?众所周知,相应的“分页是操作系统用于管理数据如何在计算机硬盘(二次存储)与其 RAM(主内存)之间移动的一种方法。操作系统不是一次性将整个程序加载到内存中,而是将其分解成更小的、大小相等的块,称为页。” 这些页使得存储和管理内存更有效率。 ![]() 现在,让我们将内存视为一堆盒子,每个盒子大小相同。所有这些盒子都称为“帧”。当一个程序被分解成页时,每个页都放入其中一个帧中。关键在于,程序的一个页恰好适合内存的一个帧。
在我们深入探讨操作系统中为何需要分页之前,让我们先了解一下内存的不同管理方式。内存管理是操作系统如何处理和组织计算机内存,尤其是在同时运行多个程序时。 内存管理技术主要分为两大类
现在让我们更详细地看一下每一种。 连续内存分配这是最简单的内存管理方法之一。顾名思义,它主要涉及将单个连续的内存块分配给一个进程。所以,如果一个程序需要 200MB 的 RAM,操作系统必须在内存中找到一个 200MB 的连续区域来放置它。内存不能分散——它必须全部集中在一个地方。 ![]() 连续内存分配进一步分为两种类型
在这种方法中,主内存被划分为固定大小的区域或块。所有这些分区可以大小相同,也可以大小不同。当一个程序运行时,它主要被分配到其中一个分区。 此方法有一些规则
问题? 如果一个进程比它被分配的分区小,那么在这种情况下,剩余的内存就会被浪费。这种浪费称为内部碎片,即由于分区太大而无法容纳进程,导致已分配内存内部浪费了空间。
动态分区的缺点
但有一个陷阱。 随着时间的推移,当程序被加载和从内存中移除时,它们会留下各种空隙。所有这些空隙都分散在内存的各个地方。即使总的可用内存对于新程序来说足够大,它也可能被分成小块,无法作为一个大块使用。这就是所谓的“外部碎片”,即有足够的内存,但它们不是集中在一个地方。为了修复外部碎片,操作系统可以执行一种称为“压缩”的操作,它会移动内存来填补空隙。但压缩被认为是耗时的,并且需要大量的 CPU 资源,这会减慢所有速度。 非连续内存分配然而,为了克服连续方法的局限性,引入了非连续内存分配技术。这允许一个程序存储在内存的不同位置,而不是一个大块。这里的两种主要技术是 ![]() 我们将重点介绍分页,它有助于解决内部和外部碎片问题。 分页的必要性现在让我们考虑一个大小为 2 MB 的进程 P1 和主内存,主内存被划分为三个分区。在这三个分区中,有两个是大小为 1 MB 的空洞。 P1 需要 2 MB 的主内存空间才能加载。我们有两个 1 MB 的空洞,但它们不是连续的。 虽然主内存中有 2 MB 的空间以这些空洞的形式可用,但这些空洞在它们变得连续之前都是无用的,这是一个需要解决的严重问题。 我们需要某种机制,能够将一个进程存储在内存的不同位置。 分页的思路是将进程分成页,以便我们可以将它们存储在内存的不同空洞中。 ![]() 在操作系统中使用分页的优点分页主要被认为是一种内存管理技术,操作系统有效地利用它来处理程序如何使用物理内存。它还带来了一些重要的好处,有助于系统更平稳、更高效地运行。 1. 减少外部碎片
2. 提高内存使用率
3. 简化内存管理
4. 使交换更有效
5. 实现虚拟内存
分页的缺点虽然分页是操作系统中管理内存的一种有用方法,但它也有一些缺点。这些问题通常不会抵消好处,但了解它们仍然很重要。 1. 系统开销增加
2. 页面错误会减慢速度
3. 更复杂的系统设计
下一个主题带示例的分页 |
我们请求您订阅我们的新闻通讯以获取最新更新。