页面大小更改时,单个页面 table 条目的大小如何受到影响?
How is the size of a single page table entry affected when the page size changes?
我正在学习操作系统,我对第 table 页有疑问。
我遇到了这个问题,它询问页面 table 大小和条目大小如何随着页面大小的变化而变化。假设页面的大小从 8KB 减少到 4KB。现在,我的猜测是 页面 table 的大小将加倍,因为现在分页系统需要两倍的条目来将页面映射到框架。
但是对于页table条目的大小,我不太确定。我的猜测是页面 table 条目将 较小 因为它包含的物理地址更短。这是因为物理地址是由page/frame大小决定的,如果页面大小较小,物理地址的长度也会缩短2^-1。
但这是一个好的假设吗?页面table条目的大小是由地址的长度决定的吗?或者,无论每个 frame/page 的大小如何,条目大小都是固定的吗?我似乎找不到专门针对这些条目的资源/问题。
谢谢!
我将尝试回答您的示例,即将页面大小从 8KB 减小到 4KB。那样的话,正如你所说,PTE的总数(pagetable条目)确实翻了一番,因为虚拟地址space中的页数翻了一番。
对于PTE大小:PTE包含几个字段,其中最重要的显然是帧号,它指向对应页所在的物理地址。更小的页面也意味着更小的帧和更长的帧号,因为表示一个帧号所需的位数是$log2(物理地址space大小/帧大小)$。
那么这是否意味着我们会有更大的 PTE?不必要。
与许多其他建筑结构一样,PTE 大小四舍五入为最接近的 2 的幂。例如,在 x86-64 CPU 上,PTE 大小为 64 位,但实际使用的只有 48--52 位。因此,向帧号字段添加几位(在您的示例中只有一位)可能会使 PTE 大小保持不变。
编辑:你可以在这里看到x86-64架构中的PTE结构:
https://qph.ec.quoracdn.net/main-qimg-0bcd46d62af1b35820a88f7afc4a50de
(取自 https://www.quora.com/How-is-a-page-walk-implemented )
我正在学习操作系统,我对第 table 页有疑问。
我遇到了这个问题,它询问页面 table 大小和条目大小如何随着页面大小的变化而变化。假设页面的大小从 8KB 减少到 4KB。现在,我的猜测是 页面 table 的大小将加倍,因为现在分页系统需要两倍的条目来将页面映射到框架。
但是对于页table条目的大小,我不太确定。我的猜测是页面 table 条目将 较小 因为它包含的物理地址更短。这是因为物理地址是由page/frame大小决定的,如果页面大小较小,物理地址的长度也会缩短2^-1。
但这是一个好的假设吗?页面table条目的大小是由地址的长度决定的吗?或者,无论每个 frame/page 的大小如何,条目大小都是固定的吗?我似乎找不到专门针对这些条目的资源/问题。
谢谢!
我将尝试回答您的示例,即将页面大小从 8KB 减小到 4KB。那样的话,正如你所说,PTE的总数(pagetable条目)确实翻了一番,因为虚拟地址space中的页数翻了一番。
对于PTE大小:PTE包含几个字段,其中最重要的显然是帧号,它指向对应页所在的物理地址。更小的页面也意味着更小的帧和更长的帧号,因为表示一个帧号所需的位数是$log2(物理地址space大小/帧大小)$。
那么这是否意味着我们会有更大的 PTE?不必要。 与许多其他建筑结构一样,PTE 大小四舍五入为最接近的 2 的幂。例如,在 x86-64 CPU 上,PTE 大小为 64 位,但实际使用的只有 48--52 位。因此,向帧号字段添加几位(在您的示例中只有一位)可能会使 PTE 大小保持不变。
编辑:你可以在这里看到x86-64架构中的PTE结构: https://qph.ec.quoracdn.net/main-qimg-0bcd46d62af1b35820a88f7afc4a50de (取自 https://www.quora.com/How-is-a-page-walk-implemented )