内存管理经典(分页/分段/置换)

共 20 题
#

1. 分页与分段的本质区别,目的、大小、碎片类型与地址结构如何对比,段页式如何结合两者?

A 外部碎片
B 跨段碎片
C 无碎片
D 内部碎片 ✓ 正确答案
#

2. 页面置换算法 OPT、FIFO、LRU、Clock(二次机会)的原理与命中率对比?请以一个页面引用串演算缺页次数。

A OPT
B Clock(二次机会) ✓ 正确答案
C LRU
D FIFO
#

3. FIFO 的 Belady 异常是什么?为什么 LRU 类栈式算法不会出现该异常?

A LRU 置换最早的页
B LRU 不产生缺页
C LRU 需要预知未来
D LRU 是栈式算法,帧数增加时驻留页集合单调扩大 ✓ 正确答案
#

4. 页大小选择的权衡,为什么 4KB 仍是主流,大页(2MB/1GB)如何提升 TLB 覆盖但增大内部碎片?

A 减少内部碎片
B 提升 TLB 覆盖范围,减少页表项 ✓ 正确答案
C 加快缺页时磁盘传输
D 简化内存保护
#

5. 伙伴系统与 slab 分配器,为什么内核需要两套分配器,伙伴系统如何分配/合并页块,slab 如何避免频繁初始化对象?

A 减少外部碎片
B 支持大块连续内存
C 通过对象缓存复用,避免频繁初始化和分配开销 ✓ 正确答案
D 提高页表命中率
#

6. 内部碎片与外部碎片的产生机理与治理手段(分页/紧凑/伙伴系统)?

A 紧致移动进程
B 合并空闲块
C 使用固定大小的页框分配物理内存 ✓ 正确答案
D 增大页大小
#

7. 请求分页系统中缺页中断的完整处理流程?缺页率过高(抖动/Thrashing)的成因与对策?

A 进程驻留集过小,无法容纳其工作集,导致频繁换页 ✓ 正确答案
B 页表过大
C TLB 失效
D 置换算法错误
#

8. 虚拟内存的页表分级(多级页表)与 TLB 命中率的关系?

A 加快地址翻译
B 减少页表内存占用(按需分配页表页) ✓ 正确答案
C 提高 TLB 命中率
D 消除内部碎片
#

9. 页面置换算法(FIFO/LRU/Clock)在真实 OS 中的近似实现?

A 精确 LRU
B 活跃/非活跃双 LRU 链表 + 访问位近似 ✓ 正确答案
C 纯 FIFO
D OPT
#

10. 分页与分段的区别,逻辑地址到物理地址的映射如何不同?

A 因为页大小固定
B 因为段长度可变,需确保偏移不超过段长 ✓ 正确答案
C 因为段表不存在
D 因为分页需要检查
#

11. TLB 与页表缓存,多级页表的 TLB miss 如何处理?

A 硬件自动从页表基址遍历多级页表并填充 TLB ✓ 正确答案
B 中断用户程序
C 由用户程序处理
D 直接丢弃访问
#

12. 多级页表的内存开销计算,64 位地址 4 级页表每进程占用多少页表内存,为什么页表项按需分配?

A 减少了地址位数
B 只按需分配实际使用地址空间对应的页表页 ✓ 正确答案
C 用 TLB 替代页表
D 取消页表
#

13. 栈的 guard page 机制,为什么栈溢出会触发 SIGSEGV,guard page 的大小与线程栈的关系如何?

A 栈空间耗尽
B 编译器检测
C 栈指针溢出
D 访问到栈区末尾的 guard page(不可访问页),触发页错误 ✓ 正确答案
#

14. 工作集(Working Set)模型如何指导驻留集大小分配?

A 驻留集越大越好
B 驻留集越小越好
C 驻留集应覆盖进程的工作集,避免缺页频繁与抖动 ✓ 正确答案
D 驻留集与工作集无关
#

15. 内存碎片(内部/外部)与 malloc 的 buddy/slab 分配器如何解决?

A 按 2 的幂分配页块,并在释放时合并相邻伙伴 ✓ 正确答案
B 按对象大小复用缓存
C 增大页大小
D 使用紧凑算法
#

16. Copy-on-Write 与 fork,fork 后父子进程如何共享页表,写时复制缺页如何触发,与 exec 如何配合?

A 父进程读取页面
B exec 调用
C fork 调用本身
D 任一进程写入一个被标记为只读的共享页 ✓ 正确答案
#

17. 内存回收与脏页回写,内核 LRU 链表如何组织,回收匿名页与文件页的差异,与 OOM 机制的关系如何?

A 需要先写回磁盘缓存
B 需要更新页表
C 必须写回交换区(swap),因为它没有磁盘副本 ✓ 正确答案
D 无需任何额外操作
#

18. Swap 与内存压缩,zswap/zram 的原理与适用场景,过度换页(swap thrashing)如何识别与治理?

A us(用户态 CPU)
B 进程数
C 空闲内存
D si/so(swap 换入/换出)持续非零且很高 ✓ 正确答案
#

19. 大页(HugeTLB/THP)的运维权衡,透明大页(THP)为什么可能引发延迟毛刺,何时该关闭或启用?

A 提高 TLB 命中率
B 减少页表
C 增大内部碎片
D 后台合并大页与拆分大页带来额外 CPU 与缺页开销 ✓ 正确答案
#

20. 内存映射文件与按需分页,缺页中断的流程如何?

A mmap 调用时立即全部读入
B 进程退出时
C 首次访问映射页触发缺页时按需读入 ✓ 正确答案
D 从不读入