跳到正文

第7章学习笔记:虚拟内存与地址空间

课程笔记

沿程序真实运行路径学习虚拟内存与地址空间,始终区分抽象接口、实现状态和可观测证据。

关联:章节 第7章 虚拟内存与地址空间

第7章笔记:虚拟内存与地址空间

本章要解决的问题

沿程序真实运行路径学习虚拟内存与地址空间,始终区分抽象接口、实现状态和可观测证据。 本章七课是一条连续推理链,不是七个标题。先确定上一课输出怎样成为下一课输入,再记录对象、事件、状态和证据。

七课连接

  • 虚拟页、页框与权限:关系 VA=VPN|offset;练习为为《虚拟页、页框与权限》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 VA=VPN|offset 复算关键量;边界为不能把《虚拟页、页框与权限》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《页表项与多级页表》。
  • 页表项与多级页表:关系 PTE=PFN+permissions;练习为为《页表项与多级页表》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 PTE=PFN+permissions 复算关键量;边界为不能把《页表项与多级页表》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《TLB与地址翻译》。
  • TLB与地址翻译:关系 TLB\ hit?PFN:walk;练习为为《TLB与地址翻译》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 TLB\ hit?PFN:walk 复算关键量;边界为不能把《TLB与地址翻译》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《缺页与按需调页》。
  • 缺页与按需调页:关系 not\ present\Rightarrow fault;练习为为《缺页与按需调页》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 not\ present\Rightarrow fault 复算关键量;边界为不能把《缺页与按需调页》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《写时复制与共享页》。
  • 写时复制与共享页:关系 write\ shared\Rightarrow copy;练习为为《写时复制与共享页》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 write\ shared\Rightarrow copy 复算关键量;边界为不能把《写时复制与共享页》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《内存映射与隔离》。
  • 内存映射与隔离:关系 VA\ region\to object;练习为为《内存映射与隔离》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 VA\ region\to object 复算关键量;边界为不能把《内存映射与隔离》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《页表翻译实验》。
  • 页表翻译实验:关系 PA=PFN\cdot page+offset;练习为为《页表翻译实验》构造一条最短可运行轨迹,逐步记录输入状态、系统动作和输出状态,并用关系 PA=PFN\cdot page+offset 复算关键量;边界为不能把《页表翻译实验》在语言、ABI、ISA、微体系结构、内核或设备层的对象混成一个‘系统自动完成’,必须声明位宽、权限、时序和失败后的可见状态;连接说明:承接前一课的状态或契约;本节结果会进入《异常、中断与陷阱》。

章内学习法

先闭卷画一条最短执行轨迹,再为每个箭头标主体和所属层;随后逐式复算,运行本章代码实验四组测试,并增加一个越界、权限、冲突、乱序或故障输入。只要实际值与模型不同,就保存首个偏差,不用后续噪声替代根因。

错题与复习

把错误归入分层混淆、位宽/单位、状态跳步、事件顺序、权限遗漏、并发交错、故障恢复或观察窗八类。一周后更换参数重做阶段卷;能向同学从现象讲到机制、公式、实验和边界,才算学会。