【发布时间】:2021-12-04 12:51:36
【问题描述】:
在阅读需求分页时,我可以看到几个来源(例如http://www.expertsmind.com/questions/name-the-hardware-to-support-demand-paging-30176232.aspx)提到我们需要硬件支持页表中每个条目的有效/无效位。但是,我无法理解硬件支持会是什么样子。据我了解,
- 页表本身是一个基于软件的结构,即它有 4 字节/8 字节(取决于寻址方案/架构等)条目,这些条目存在于 RAM 中。
- 有效/无效位与用于页表每个条目的 4 字节/8 字节是分开的,因此它不像页表条目的 4 字节,我们使用 31 位来存储有效/无效位的帧号和 1 位。
总而言之,我的问题是 - 有效/无效位的硬件支持是什么样的?如果它可能因实现/架构而异,您能否分享任何特定实现的细节?
【问题讨论】:
-
并非页表条目中的所有位都用于帧号,因为仅在页级粒度上进行转换,因此您不需要所有位。例如,在 32 位 x86 上,将低 12 位留作标志,包括位 0 处的当前(有效)标志。还有更多细节 here
标签: operating-system paging page-tables demand-paging