【发布时间】:2017-01-31 19:53:28
【问题描述】:
页表是程序员创建的数据结构。那么MMU是如何知道如何访问页表的呢?我知道 MMU 从页表基址寄存器中获取页表的地址,但是之后它如何读取页表呢? MMU不知道程序员创建的页表的数据结构。
谢谢
【问题讨论】:
标签: operating-system virtual-memory mmu page-tables
页表是程序员创建的数据结构。那么MMU是如何知道如何访问页表的呢?我知道 MMU 从页表基址寄存器中获取页表的地址,但是之后它如何读取页表呢? MMU不知道程序员创建的页表的数据结构。
谢谢
【问题讨论】:
标签: operating-system virtual-memory mmu page-tables
不! PageTable DataStructure 是由System Architecture Designers设计的,他们也设计了MMU;因此,MMU 完全了解 PageTable 的结构。
操作系统开发人员 不要为 PageTable 数据结构选择任意格式;他们遵循机器的架构手册。
【讨论】:
正如您所说,页表是由硬件寄存器定义的。
操作系统负责确保页表的结构符合 MMU 可以识别的结构。
MMU不知道程序员创建的页表的数据结构。
MMU 知道 A 数据结构。如果页表符合 MMU 已知的结构,则一切正常。如果程序员创建了一些不符合 MMU 期望的任意结构,系统就会崩溃。
关于这种结构的例子,见 p. 203从这里开始
【讨论】: