排除有效,脏和参考位,仅考虑实际的"映射"从虚拟地址空间到物理地址空间,为什么表示页表项的大小由从主存储器引用页面所需的位数确定(如下所示:https://stackoverflow.com/a/14770650/3684931)
我的论点是,由于物理地址也可以在二级存储中(这是使用虚拟内存的点),页表条目的大小应该简单地等于引用任何页面所需的位数在虚拟内存中的所有页面中。
举一个例子,如果虚拟地址空间可以通过64位寻址,则主存储器可以寻址48位,页面大小为16KB(可由14位寻址),页面表应该映射( 64 - 14)50位地址到(64 - 14)50位地址而不是(48 - 14)34位地址。
如果页面存在于主存储器中,可以映射到34位地址,否则,在计算页表大小时应该考虑上限为50位。
我在这里错过了什么吗?
答案 0 :(得分:1)
页面表条目的大小适合支持虚拟地址大小和支持的最大物理内存量。根据辅助存储的任何方面,它们不大小。
在您的示例中,页表必须支持将2^50
虚拟页面映射到可能的2^34
物理页面。因此,页表条目将使用34位来保存物理页码。
如果内存中没有页面,并且之前已将页面分页到辅助存储,则可以使用数据结构(如哈希表)来查找页面所在的页面文件中的位置。您不需要使用页表结构来执行此操作。
答案 1 :(得分:0)
页面表的大小必须考虑: 1.控制位 2.访问限制位 3.页面大小 4.位数需要访问所需的页数。
页表条目对应于虚拟内存。页面大小的条目数是虚拟地址大小。
条目本身只需要处理物理内存。