408 知识网络

缺页异常 → OS 缺页处理:磁盘 I/O 调入 → 重新执行该指令

跨学科专题

所属模块:X-1 虚拟存储访问全过程(页表 → TLB → Cache → 主存 → 缺页) · 本模块第 6 / 14 个概念

在「X-1 虚拟存储访问全过程(页表 → TLB → Cache → 主存 → 缺页)」概念体系中的位置

flowchart TD
    A["虚拟地址<br/>= 虚页号 | 页内偏移"] --> B{"TLB 命中?"}
    B -- "命中" --> C["得页框号"]
    B -- "未命中" --> D["查内存中的页表<br/>(多级页表则逐级查)"]
    D --> E{"有效位 = 1?"}
    E -- "否(页不在内存)" --> F["缺页异常<br/>→ OS 缺页处理:磁盘 I/O 调入<br/>→ 重新执行该指令"]
    E -- "是" --> C
    C --> G["物理地址<br/>= 页框号 | 页内偏移"]
    G --> H{"Cache 命中?"}
    H -- "命中" --> I["直接读/写 Cache"]
    H -- "未命中" --> J["访问主存,调入 Cache 块"]

必须掌握的概念及其关系:

概念 是什么 缓存的对象 缺失后果 管理者
页表 虚页号 → 页框号的映射表,含有效位、访问位、修改位等 —(映射的源头) OS 建立,硬件(MMU)查询
TLB(快表) 页表的“Cache”,相联存储器 页表项(虚页号→页框号) 多一次(或多级)访存查页表 硬件为主
Cache 主存的缓存 主存块(数据/指令本身) 访主存取块 硬件
缺页机制 页面不在内存时的调入机制 —(兜底) 磁盘 I/O,代价约 10510^5 OS(缺页处理程序)

关键派生概念:

  • 有效位(存在位):页表项中标记该页是否在内存。TLB 中的项必然来自有效位为 1 的页表项 → “TLB 命中但缺页”不可能发生(2010 年 17 题,答案 D)。
  • 多级页表:页表本身太大且必须连续存放的问题 → 把页表再分页。32 位系统典型为 10+10+12 结构:页目录号 | 页表索引 | 页内偏移。
  • 页表基址寄存器(PTBR):存放当前进程一级页表(页目录)的起始物理地址(2021 年 29 题),进程切换时由 OS 更新,并导致 TLB 全局失效(与 X-5 连接)。
  • 访问位 A / 修改位 M:为置换算法服务,改进型 Clock 按 (A, M) 四类淘汰(2016 年 26 题)。
  • 驻留集 vs 工作集:分配给进程的页框集合 vs 进程实际正在用的页面集合;工作集 > 驻留集 → 抖动(2016 年 29 题、2011 年 29 题)。

来源:复习资料 P2 第 4 节(三级访问链)、P3 第 7 节(内存管理);王道 2027 操作系统 内存管理章;王道 2027 计组 存储系统章。