Skip to content

2014年 408 操作系统 第 28 题

操作系统2014年选择题2分

题目

下列措施中,能加快虚实地址转换的是( )。

I. 增大快表 (TLB) 容量

II. 让页表常驻内存

III. 增大交换区 (swap)

错因

A

只承认 Ⅰ TLB,把 Ⅱ"页表常驻内存"漏了。可能默认"页表本来就在内存里"——但请求分页系统里,页表的部分页本身可以被换出(多级页表的二级页表是按页存储的),如果当前进程的页表项在外存里,那次访问就要先把页表换回来再做地址变换,速度直接掉几个量级。"常驻内存"消除这种额外 I/O。

B

只承认 Ⅱ 页表常驻、漏了 Ⅰ TLB。其实 TLB 是地址变换路径上最关键的加速器——没有 TLB 时每次访存都要先查一次页表(多一次内存访问),有 TLB 命中时直接拿物理地址。漏掉它相当于否定了 OS 性能优化的最大头。

D

把 Ⅲ swap 容量当成加速因素了——swap 是虚拟内存的硬盘备份,扩大 swap 让系统能"装下更多虚拟内存",但和"虚拟地址 → 物理地址转换的速度"完全没关系。地址变换发生在 MMU 硬件 + TLB + 页表层面,根本不经过 swap。把存储容量和访存速度混了。

总解析

虚实地址转换的全流程:

虚拟地址 → MMU 查 TLB
   命中 → 直接得到物理地址(最快)
   未命中 → 查页表(在内存)
       页表项有效 → 得到物理地址,回填 TLB
       页表项无效 → 缺页,要从 swap 调入

要"加快地址变换",必须作用在这条路径上的某一环节:

措施作用环节是否加快地址变换?
Ⅰ 增大 TLB 容量提升 TLB 命中率 → 更多次访问直接拿到物理地址
Ⅱ 页表常驻内存TLB miss 后查页表不再触发"页表换入"的额外 I/O
Ⅲ 增大 swap只让系统能容纳更大的虚拟内存,不影响地址变换速度本身

速记:地址变换的"快"靠 TLB(硬件缓存)+ 页表本身可立即访问;swap 是缺页时的兜底,跟变换速度是两回事。

Ⅰ Ⅱ 都直接作用在地址变换路径上,Ⅲ 完全在路径之外。

最终答案是 C

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数