为什么页面 table 条目的大小仅由主内存大小决定?
Why is the size of a page table entry determined only by main memory size?
不包括有效位、脏位和引用位,只考虑从虚拟地址space到物理地址space的实际"mapping",为什么说页的大小table条目由从主存中引用一个页面所需的位数决定(像这里:)
我的论点是,由于物理地址也可以在辅助存储中(这是使用虚拟内存的要点),页面 table 条目的大小应该简单地等于位数需要引用虚拟内存中所有页面中的任何页面。
举个例子,如果虚拟地址space是64位可寻址的,主存是48位可寻址的,页面大小是16KB(14位可寻址)位),页面 table 应将 (64 - 14) 50 位地址映射到 (64 - 14) 50 位地址,而不是 (48 - 14) 34 位地址。
如果页面存在于主内存中,它可以映射到 34 位地址,否则,上限应该是 50 位,这在计算页面大小时应该考虑table.
我是不是漏掉了什么?
页面大小 table 必须考虑:
1.控制位
2.访问限制位
3.页面大小
4.位数需要访问需要的页数。
页table条目对应虚拟内存。条目数乘以页面大小就是虚拟地址大小。
条目本身只需要寻址物理内存。
页 table 条目的大小可支持虚拟地址大小和所支持的最大物理内存量。它们的大小不是基于辅助存储的任何方面。
在您的示例中,页面 table 必须支持将 2^50
虚拟页面映射到可能的 2^34
物理页面。因此,页面 table 条目将使用 34 位来保存物理页码。
如果一个页面不存在于内存中,并且它之前被调出到辅助存储,则可以使用数据结构(如散列table)来定位页面在页面文件中的位置位于。您不需要使用页面 table 结构来执行此操作。
不包括有效位、脏位和引用位,只考虑从虚拟地址space到物理地址space的实际"mapping",为什么说页的大小table条目由从主存中引用一个页面所需的位数决定(像这里:)
我的论点是,由于物理地址也可以在辅助存储中(这是使用虚拟内存的要点),页面 table 条目的大小应该简单地等于位数需要引用虚拟内存中所有页面中的任何页面。
举个例子,如果虚拟地址space是64位可寻址的,主存是48位可寻址的,页面大小是16KB(14位可寻址)位),页面 table 应将 (64 - 14) 50 位地址映射到 (64 - 14) 50 位地址,而不是 (48 - 14) 34 位地址。
如果页面存在于主内存中,它可以映射到 34 位地址,否则,上限应该是 50 位,这在计算页面大小时应该考虑table.
我是不是漏掉了什么?
页面大小 table 必须考虑: 1.控制位 2.访问限制位 3.页面大小 4.位数需要访问需要的页数。
页table条目对应虚拟内存。条目数乘以页面大小就是虚拟地址大小。
条目本身只需要寻址物理内存。
页 table 条目的大小可支持虚拟地址大小和所支持的最大物理内存量。它们的大小不是基于辅助存储的任何方面。
在您的示例中,页面 table 必须支持将 2^50
虚拟页面映射到可能的 2^34
物理页面。因此,页面 table 条目将使用 34 位来保存物理页码。
如果一个页面不存在于内存中,并且它之前被调出到辅助存储,则可以使用数据结构(如散列table)来定位页面在页面文件中的位置位于。您不需要使用页面 table 结构来执行此操作。