408真题解析-2010-29-操作系统-页式存储管理

一 真题2010-29

2010-29. 某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为 2¹⁰ 字节,页表项大小为 2 字节。逻辑地址结构为:

复制代码
页目录号|页号|页内偏移量

逻辑地址空间大小为 2¹⁶ 页,则表示整个逻辑地址空间的页目录表中包含表项的个数至少是( )。

A. 64

B. 128

C. 256

D. 512

二 题目要素解析

核心考点二级页表的结构与表项数量计算,属于操作系统内存管理模块的核心计算类考点,考查对二级页表的分层管理逻辑、页表项与页大小的匹配关系的理解,是 408 统考分页存储管理的经典考法。

考查知识点

  • 二级页表的分层逻辑:页目录表(一级页表)的每个表项对应一个二级页表,二级页表的每个表项对应一个物理页框;
  • 页表的存储规则:一个物理页框中可存放的页表项数量由页大小和页表项大小决定,是计算二级页表最大容量的关键;
  • 逻辑地址空间的映射关系:整个逻辑地址空间的所有页需被所有二级页表覆盖,页目录表项数 = 总页数量 ÷ 单个二级页表可管理的页数量(向上取整,本题恰好整除)。

题型特征 :数值计算类选择题,侧重二级页表的底层存储逻辑,需通过页大小、页表项大小推导单个二级页表的最大表项数,再结合总页数计算页目录表项数,步骤清晰但需注意进制和指数运算。

易错点

  • 混淆页大小页表项大小的作用,错误用总页数直接计算页目录表项数;
  • 计算单个二级页表可存放的页表项数时,出现指数运算或除法错误;
  • 忽略二级页表的物理页框存储限制,误认为二级页表可无限制存放页表项。

大纲 / 教材对应

  • 408 考研大纲:操作系统 - 内存管理 - 分页存储管理方式、多级页表;
  • 参考教材:《计算机操作系统(汤小丹)》第四章 内存管理 - 4.4 分页存储管理方式 - 4.4.3 多级页表。

三 哔哔详解

本题解题核心是抓住二级页表的两个核心计算逻辑

  1. 单个二级页表必须存放在一个物理页框 中,因此单个二级页表可管理的页数量 = 页大小 ÷ 页表项大小

  2. 页目录表的表项数 = 逻辑地址空间的总页数量 ÷ 单个二级页表可管理的页数量(页目录表每个表项对应一个二级页表)。

    按此两步计算,即可得到页目录表的最少表项数(最少表项数表示无冗余,所有二级页表均被充分利用)。

前置概念铺垫

  1. 二级页表的核心逻辑 :为解决单级页表过大无法一次性装入内存 的问题,将页表分层 ------页目录表(一级) 管理二级页表,每个二级页表独立存放在一个物理页框中,仅当进程访问某页时,才将对应的二级页表调入内存,节省内存空间。
  2. 关键规则任何页表(一级 / 二级)的存储单元都是物理页框 ,因此一个页表最多能存放的页表项数 = 页大小 / 页表项大小(因按字节编址,单位统一为字节,直接相除即可)。
  3. 映射关系 :二级页表的每个表项对应逻辑地址空间的一个页 ,因此单个二级页表可管理的逻辑页数 = 单个二级页表的最大页表项数

逐步求解

✅ 第一步:明确逻辑地址空间规模

题目说:"逻辑地址空间大小为 2 16 2^{16} 216 页"

→ 总页面数 = 2 16 2^{16} 216

💡 注意:这不是字节数!若为字节,则则总页数 = 2 16 / 2 10 = 2 6 = 64 2^{16} / 2^{10} = 2^6 = 64 216/210=26=64 ,但此处直接给出"页数",故无需除以页大小。


✅ 第二步:计算单个二级页表可存放的页表项数(即单个二级页表可管理的逻辑页数)

  • 已知页大小 = 2¹⁰ 字节页表项大小 = 2 字节,按字节编址,一个物理页框中可存放的页表项数为:

​ 单个二级页表的页表项数 = 页大小 页表项大小 = 2 10 2 = 2 9 = 512 \frac{\text{页大小}}{\text{页表项大小}} = \frac{2^{10}}{2} = 2^9 = 512 页表项大小页大小=2210=29=512

结论:一个二级页表最多可管理 512 个逻辑页(每个表项对应一个逻辑页)。


✅ 第三步:计算页目录表的最少表项数

已知逻辑地址空间总页数 = 2¹⁶ 页,页目录表每个表项对应一个二级页表,因此页目录表项数 = 总页数 ÷ 单个二级页表可管理的页数:

页目录表项数 = 总逻辑页数 单个二级页表可管理的页数 = 2 16 2 9 = 2 7 = 128 \frac{\text{总逻辑页数}}{\text{单个二级页表可管理的页数}} = \frac{2^{16}}{2^9} = 2^7 = 128 单个二级页表可管理的页数总逻辑页数=29216=27=128

结论

表示整个逻辑地址空间的页目录表中包含表项的个数至少为 128(所有二级页表均充分利用,无冗余)。

四 参考答案

B ✅

五 考点精析

5.1 分页存储管理

一、基本概念

分页存储管理 (Paging)是一种非连续分配 的内存管理方式。它将进程的逻辑地址空间划分为固定大小的页面 (Page),将物理内存划分为同样大小的页框 (Frame/Block),通过页表(Page Table)建立页面到页框的映射关系。

  • 核心思想
    "离散分配,动态映射"------进程的页面可分散装入任意空闲页框,无需连续物理内存。

  • 地址结构(以 32 位为例):

    | 页号(高位) | 页内偏移(低位) |

  • 页内偏移位数 = log₂(页大小)

  • 页号位数 = 地址总位数 − 偏移位数


二、性质与特征

特性 说明
是否连续分配 ❌ 非连续(物理地址不连续,逻辑地址连续)
内部碎片 ✅ 有(仅最后一页可能未填满 → 页内碎片,< 页大小)
外部碎片 ❌ 无(页框等大,无需合并,彻底消除外部碎片)
内存利用率 高(仅少量页内碎片,页框可充分利用)
硬件支持 ✅ 必需: • MMU(内存管理单元) • 页表寄存器(PTR) • TLB(快表)加速
地址变换 运行时动态转换: 逻辑地址 → 页号 → 查页表 → 物理页框号 + 偏移
虚拟内存支持 ✅ 是(结合请求分页,实现部分装入、按需调页)
实现复杂度 高(需页表管理、缺页中断、页面置换算法等)

三、页表结构详解

1. 单级页表
  • 每个进程一张页表
  • 页表项 = 页框号 + 状态位(存在位、修改位、访问位等)
  • 缺点:页表过大(如 32 位系统,4KB 页 → 2²⁰ 项 ≈ 4MB 页表)
2. 多级页表(如二级页表)
  • 将页表本身也分页,形成层级结构

  • 逻辑地址结构

    | 页目录号 | 页号 | 页内偏移 |

工作流程

  1. 页目录号页目录(第一级页表)→ 得到二级页表基址
  2. 页号二级页表 → 得到物理页框号
  3. 拼接页框号 + 偏移 → 物理地址

优点:只加载当前使用的页表页,节省内存

3. 反置页表(Inverted Page Table)
  • 系统级页表:每个物理页框一个表项
  • 表项 = 进程 ID + 逻辑页号
  • 优点:页表大小 = 物理内存页框数(与进程数无关)
  • 缺点:查找效率低(需哈希或遍历)
4. 快表(TLB, Translation Lookaside Buffer)
  • 作用:缓存最近使用的页表项,加速地址变换
  • 命中:直接从 TLB 取页框号(1 次访存)
  • 未命中:查页表 → 更新 TLB(2 次访存)
  • 408 高频计算:有效访存时间 = TLB 命中率 × 1 + (1−命中率) × 2

5.2 知识速记

5.2.1 核心知识点速记卡片

分页核心:定长划分、非连续分配、无外部碎片、少量内部碎片,页大小全系统统一且为 2 的整数次幂;

地址转换:页号 = 逻辑地址 / 页大小,偏移 = 取余,物理地址 = 页框号 × 页大小 + 偏移(偏移不变);

单级页表:项数 = 总页数,大小 = 项数 × 页表项大小,需按页框分配;

二级页表:单个二级页表项数 = 页大小 / 页表项大小,页目录项数 =⌈总页数 / 单个二级页表项数⌉;

快表:CPU 内部高速寄存器,命中 1 次访存,未命中 = 查页表次数 + 1,命中率 = 命中次数 / 总次数;

分页 vs 分段:分页定长无逻辑(内部碎片),分段变长有逻辑(外部碎片);

多级页表目的:解决单级页表过大 ,快表目的:提升地址转换效率

5.2.2 高频坑点

❌ 误区 1:页大小由进程决定,不同进程页大小不同→页大小全系统统一,由操作系统确定;

❌ 误区 2:多级页表的设计目的是提升地址转换效率→目的是解决单级页表过大的问题,快表的目的才是提升效率;

❌ 误区 3:快表命中的访存次数为 2 次→快表命中仅 1 次访存,查快表不占访存次数;

❌ 误区 4:分页既有内部碎片也有外部碎片→分页仅存在少量内部碎片,无外部碎片

❌ 误区 5:二级页表的页目录表项数 = 进程总页数→页目录表项数由单个二级页表的项数决定,需用总页数除以单个二级页表项数并向上取整。

5.2.3 概念辨析题:关键词匹配法

通过题干关键词快速锁定考点:

  • 固定大小、无逻辑意义、内部碎片→分页;
  • 变长大小、逻辑意义、外部碎片→分段;
  • 分层页表、节省内存→多级页表;
  • 提升访问效率、CPU 内部→快表;
  • 按需调页、缺页中断→请求分页。

5.2.4 易错点

错误认知 正确认知
"分页没有碎片" ❌ 有页内碎片(内部碎片)
"页表可以任意大小" ❌ 在多级页表中,每级页表必须占一页
"逻辑地址空间 X 字节 → 总页数 = X" ❌ 总页数 = X / 页大小
"TLB 未命中只需 1 次访存" ❌ 需 2 次:查页表 + 访数据
"页目录项数 = 总页数" ❌ 页目录项数 = 总页数 / 每个二级页表容量

六 对应408考研大纲和考研参考教材知识点章节

考试模块 408 考研大纲要求 教材章节(汤小丹 第4版)
操作系统 → 存储管理 → 虚拟内存 → 分页存储管理 掌握基本分页存储管理方式;理解多级页表的设计思想及地址转换过程;掌握页表项大小、页大小与页表容量的关系 第四章 存储器管理 4.6 分页存储管理方式 4.6.3 具有快表的地址变换机构 4.6.4 两级和多级页表

七 考点跟踪

年份 题号 考查内容 CSDN 参考链接 VX参考链接
2010 第29题 二级页表
2013 第46题 分页存储管理(一级页表,二级页表)
2014 第32题 多级页表性质特征
2015 第46题 二级页表
2017 第45题 二级页表
2019 第31题 二级页表
2021 第29题 二级页表
2023 第30题 物理页和虚拟页关系
2024 第45题 页式虚拟存储管理
2025 第23题 页式虚拟存储管理

说明 :本文内容基于公开资料整理,参考了包括但不限于《数据结构》(严蔚敏)、《计算机操作系统》(汤小丹)、《计算机网络》(谢希仁)、《计算机组成原理》(唐朔飞)等国内高校经典教材,以及其他国际权威著作。同时,借鉴了王道、天勤、启航等机构出版的计算机专业考研辅导系列丛书 中的知识体系框架与典型题型分析思路。文中所有观点、例题解析及文字表述均为作者结合自身理解进行的归纳与重述,未直接复制任何出版物原文。内容仅用于学习交流,若有引用不当或疏漏之处,敬请指正。

相关推荐
tobias.b1 天前
408真题解析-2010-25-操作系统-信号量
计算机考研·408真题解析
tobias.b1 天前
408真题解析-2010-21-计组&操作系统-中断执行顺序
计算机考研·408真题解析
tobias.b7 天前
408真题解析-2010-6-数据结构-哈夫曼树
数据结构·计算机考研·408真题解析
tobias.b7 天前
408真题解析-2010-7-数据结构-无向连通图
数据结构·算法·图论·计算机考研·408真题解析
tobias.b8 天前
408真题解析-2010-9-数据结构-折半查找的比较次数
java·数据结构·算法·计算机考研·408真题解析
tobias.b8 天前
408真题解析-2010-12-计组-程序执行时间
单片机·嵌入式硬件·fpga开发·计算机考研·408真题解析
tobias.b8 天前
408真题解析-2010-8-数据结构-拓扑排序
数据结构·算法·计算机考研·408真题解析
CS创新实验室8 天前
《计算机网络》深入学:广域网
服务器·网络·计算机网络·408·计算机考研·广域网
tobias.b9 天前
408真题解析-2010-10-数据结构-快速排序
java·数据结构·算法·计算机考研·408真题解析