Skip to content

虚拟内存基本概念

考情分析

虚拟内存管理在 408 真题中累计考查约 106 分(2009-2026),是内存管理章节的绝对核心。🔥🔥🔥 。本文是概念基础,后续的页面置换算法是计算重点。

物理内存就那么大,一个大型程序可能比整个内存还大——有没有办法让每个进程都"以为"自己独占了一块巨大的内存空间?

传统内存管理的局限

传统方式(连续分配/分页/分段)要求进程全部装入内存才能运行,导致:

  • 大程序无法运行(内存不够大)
  • 并发度低(多个大进程无法同时驻留)
  • 内存利用率低

局部性原理

虚拟内存的理论基础是局部性原理(Principle of Locality)

类型说明
时间局部性刚被访问的内存位置,很快还会被访问(循环、热点代码)
空间局部性刚被访问的位置附近的位置,很快也会被访问(顺序执行、数组遍历)

局部性原理意味着:程序运行时,在一段时间内只会访问一小部分内存。因此不需要将整个程序都放在内存中。

虚拟内存的定义

虚拟内存让每个进程拥有一个很大的、连续的虚拟地址空间,实际上只有一部分页面在物理内存中,其余存放在外存(磁盘)上。就像每个住户都以为整栋楼是自己的,其实大家共用同一栋楼,只是各自住在不同的房间里。

虚拟内存的三个特征

特征说明
多次性程序不需要一次全部装入,可以分多次调入内存
对换性暂时不用的部分可以换出到外存,需要时再换入
虚拟性从逻辑上扩充了内存容量,用户感觉内存比实际大得多

虚拟性是最本质的特征

多次性和对换性是实现虚拟性的手段。虚拟性才是目的——让用户感觉有一个很大的内存可用。

易错

虚拟内存的实现必须建立在离散分配(分页/分段)基础上,连续分配方案无法实现虚拟内存。选择题常见干扰项:"采用连续分配也可以实现虚拟存储"——

另外,虚拟内存的容量上限由两个因素决定:

  • 内存 + 外存的总容量(物理限制)
  • 计算机的地址位数(寻址空间限制)

实际上限取两者中的较小值,而非"虚拟内存 = 外存大小"。

虚拟内存的实现

实现方式基础技术
请求分页在基本分页基础上增加请求调页和页面置换功能
请求分段在基本分段基础上增加请求调段和段置换功能
请求段页式在段页式基础上增加

请求分页是最常用的实现方式。

虚拟内存 vs 基本分页

比较基本分页请求分页(虚拟内存)
装入方式一次性全部装入按需调入(缺页时调入)
是否需要全部在内存
页表项页号 → 页框号增加状态位、修改位、外存地址等
缺页处理无此概念触发缺页中断,从外存调入
页面置换内存满时需要置换

考研高频考点

  • 🔥🔥🔥 局部性原理(时间局部性 + 空间局部性)
  • 🔥🔥🔥 虚拟内存的三个特征(多次性/对换性/虚拟性)
  • 🔥🔥 虚拟内存的实现基础(必须有硬件支持:页表机制 + 中断机制 + 地址变换机构)
  • 🔥🔥 虚拟内存与基本分页的区别
  • 🔥 虚拟性是最本质的特征

虚拟内存的概念有了,具体怎么实现"按需调入"?下篇来看请求页式管理的完整机制,包括缺页中断和页表项的扩展。

真题练习

相关真题(3题)

2026Q24选择题2分

虚拟存储:地址转换由硬件MMU完成,异常由OS处理

2023Q28选择题2分

虚拟地址空间:大小由地址位数决定,与物理存储无关

2012Q25选择题2分

虚拟存储:必须基于非连续分配(分页/分段)技术