Memory management 页面大小更改时,单个页面表项的大小如何受到影响?

Memory management 页面大小更改时,单个页面表项的大小如何受到影响?,memory-management,operating-system,paging,Memory Management,Operating System,Paging,我在学习操作系统,我有一个关于页面表的问题 我遇到了这样一个问题:当页面大小改变时,页面表大小和条目大小是如何变化的。假设页面大小从8KB减少到4KB。现在,我猜测页面表的大小将加倍,因为现在分页系统需要两倍多的条目来将页面映射到帧 但是对于页面表条目的大小,我不太确定。我的猜测是,页表条目将更小,因为它包含的物理地址更短。这是因为物理地址由页面/帧大小决定,如果页面大小较小,则物理地址的长度也将缩短2^-1 但这是一个好的假设吗?页表条目的大小是由地址的长度决定的吗?或者,无论每个框架/页面的

我在学习操作系统,我有一个关于页面表的问题

我遇到了这样一个问题:当页面大小改变时,页面表大小和条目大小是如何变化的。假设页面大小从8KB减少到4KB。现在,我猜测页面表的大小将加倍,因为现在分页系统需要两倍多的条目来将页面映射到帧

但是对于页面表条目的大小,我不太确定。我的猜测是,页表条目将更小,因为它包含的物理地址更短。这是因为物理地址由页面/帧大小决定,如果页面大小较小,则物理地址的长度也将缩短2^-1

但这是一个好的假设吗?页表条目的大小是由地址的长度决定的吗?或者,无论每个框架/页面的大小,条目大小都是固定的吗?我似乎找不到与条目相关的资源/问题


谢谢大家!

我将尝试回答您的示例,即将页面大小从8KB减少到4KB。在这种情况下,正如您所说,PTE(页表条目)的总数确实翻了一番,因为虚拟地址空间中的页数翻了一番

对于PTE大小:PTE包含几个字段,其中最重要的显然是帧号,它指向对应页面所在的物理地址。更小的页面还意味着更小的帧和更长的帧号,因为表示帧号所需的位数为$log2(物理地址空间大小/帧大小)$

那么这是否意味着我们会有更大的PTE?不一定。 与许多其他建筑结构一样,PTE尺寸被四舍五入到最接近的二次方。例如,在x86-64 CPU上,PTE大小为64位,但实际使用的只有48-52位。因此,在frame number字段中添加几位(在您的示例中只有一位)可能会使PTE大小保持不变

编辑:您可以在这里看到x86-64体系结构中的PTE结构:
(摘自)

我将尝试回答您的示例,即将页面大小从8KB减少到4KB。在这种情况下,正如您所说,PTE(页表条目)的总数确实翻了一番,因为虚拟地址空间中的页数翻了一番

对于PTE大小:PTE包含几个字段,其中最重要的显然是帧号,它指向对应页面所在的物理地址。更小的页面还意味着更小的帧和更长的帧号,因为表示帧号所需的位数为$log2(物理地址空间大小/帧大小)$

那么这是否意味着我们会有更大的PTE?不一定。 与许多其他建筑结构一样,PTE尺寸被四舍五入到最接近的二次方。例如,在x86-64 CPU上,PTE大小为64位,但实际使用的只有48-52位。因此,在frame number字段中添加几位(在您的示例中只有一位)可能会使PTE大小保持不变

编辑:您可以在这里看到x86-64体系结构中的PTE结构:
(取自)

地址通常表示为指针,指针的大小通常固定。地址通常表示为指针,指针的大小通常固定。谢谢!我也很欣赏这个图表:)谢谢!我也很欣赏这个图表:)