Skip to content

请求页式管理

考情分析

请求分页是虚拟内存的核心实现,缺页中断处理流程和缺页率计算是大题常考内容。🔥🔥🔥 高频核心。

虚拟内存只是一个概念,真正落地靠的是请求分页——访问到不在内存里的页面时,OS 自动从磁盘调入。这个"按需调入"的机制具体怎么运转?

请求分页的页表项

请求分页在基本分页的页表项基础上增加了以下字段:

字段说明
页号逻辑页号
页框号物理页框号(不在内存时无意义)
状态位 P该页是否在内存中(1=在,0=不在)
访问字段 A记录最近被访问的情况(用于页面置换)
修改位 M该页是否被修改过(决定换出时是否需要写回外存)
外存地址该页在外存上的位置

缺页中断

当 CPU 访问的页面不在内存中(状态位 P=0)时,产生缺页中断(Page Fault)。可以类比成去图书馆借书,发现书不在架上——你得填个调书单,等管理员从仓库里取过来。

缺页中断处理流程

缺页中断的特殊性

缺页中断与普通中断相比有两个特殊之处:

特殊性说明
指令执行期间产生普通中断在指令执行完毕后检测;缺页中断在指令执行过程中产生
一条指令可能产生多次缺页一条指令的操作数可能跨页,可能触发多次缺页中断

有效访存时间(考虑缺页率)

设缺页率为 f,访问内存时间为 tmem,处理缺页的时间为 tfault

EAT=(1f)×tmem+f×tfault

示例tmem=200nstfault=8ms=8×106nsf=0.001

EAT=0.999×200+0.001×8×106=199.8+8000=8199.8ns

即使缺页率只有 0.1%,有效访存时间也增加了约 40 倍。这说明缺页率对性能的影响极大。

请求分页的地址变换

在基本分页地址变换的基础上,增加了缺页中断处理和 TLB 管理:

  1. CPU 发出逻辑地址 → 拆分为页号 P 和偏移 W
  2. 查 TLB → 命中则直接得到页框号
  3. TLB 未命中 → 查页表
  4. 页表项 P=1(在内存)→ 更新 TLB,计算物理地址
  5. 页表项 P=0(不在内存)→ 触发缺页中断 → 调入页面 → 更新页表和 TLB → 重新执行指令

易错

缺页中断的两个特殊性是选择题常考点:

  • 缺页中断在指令执行期间产生(不是执行完毕后),属于内中断(异常/故障)
  • 一条指令可能触发多次缺页中断(操作数跨页时)

常见错误:把缺页中断当成"外中断"。缺页中断由 CPU 执行指令时内部触发,是内中断(故障 Fault),不是外部设备引起的外中断。

考研高频考点

  • 🔥🔥🔥 缺页中断的处理流程(选择题/简答题高频)
  • 🔥🔥🔥 有效访存时间的计算(给定缺页率)
  • 🔥🔥🔥 请求分页页表项增加的字段(状态位/修改位/访问字段/外存地址)
  • 🔥🔥 缺页中断的两个特殊性
  • 🔥🔥 修改位决定换出时是否写回外存
  • 🔥 缺页率对系统性能的巨大影响

请求分页在内存满时需要淘汰旧页面腾出空间,选择淘汰谁直接影响缺页率。下篇开始逐一分析各种页面置换算法,首先是最简单的 FIFO。

真题练习

相关真题(8题)

2025Q28选择题2分

最少页框数:由指令寻址方式决定,需保证一条指令执行不缺页

2024Q29选择题2分

缺页处理:如果有空闲页框则不需要淘汰页面

2024Q45综合题7分

综合题:页式虚拟存储管理的地址结构与页表计算

2021Q29选择题2分

EAT计算:缺页率、磁盘读写、内存访问、缺页处理CPU时间都影响

2017Q45综合题7分

综合题:二级分页虚拟存储管理的地址变换和进程状态分析

2013Q30选择题2分

缺页处理:可能需要置换页和分配内存,不处理越界错

2012Q45综合题8分

综合题:基于扫描的局部页面置换策略的页框分配与回收分析

2011Q28选择题2分

缺页处理:可能需要分配页框、磁盘I/O读入页面、修改页表