我无法理解页面大小和页表条目大小之间的区别。
据我了解,页面大小用于将页面表划分为等号。称为页的块和相同大小的块用于将主内存划分为帧。
页面大小 = 帧大小。
画画水平不好请见谅。这是我对页表的可视化
其中页表条目大小是每个页条目占用的大小。所以,
页表条目大小 = 页面大小。
但是页表条目大小是由帧号中的位数计算的。
谁能解释一下页面大小与页面表条目大小有何不同?为什么页表条目的大小是根据帧中的位数而不是页面来计算的?
请帮我想象一下所有上述组件的页表有多精确
我无法理解页面大小和页表条目大小之间的区别。
据我了解,页面大小用于将页面表划分为等号。称为页的块和相同大小的块用于将主内存划分为帧。
页面大小 = 帧大小。
画画水平不好请见谅。这是我对页表的可视化
其中页表条目大小是每个页条目占用的大小。所以,
页表条目大小 = 页面大小。
但是页表条目大小是由帧号中的位数计算的。
谁能解释一下页面大小与页面表条目大小有何不同?为什么页表条目的大小是根据帧中的位数而不是页面来计算的?
请帮我想象一下所有上述组件的页表有多精确
为什么页表条目的大小是根据帧中的位数而不是页面来计算的?
PAGE FRAME 大小始终与 PAGE 大小相同。
谁能解释一下页面大小与页面表条目大小有何不同?
PAGE TABLE ENTRY Size 取决于 PAGE 大小,但不是从它计算的。
PAGE TABLE 是一种定义进程逻辑地址空间的数据结构。一个进程地址空间由一组 PAGES 组成。页面的大小可以是 2 的任意倍数。我见过的最小的页面大小是 512 字节,最大的可以是兆字节(或可能是千兆字节)。
页表由页表条目组成。PAGE TABLE ENTRY 描述进程逻辑地址空间中的单个页面。PAGE TABLE ENTRY 标识逻辑页映射到的物理页框和页的属性。
然后,页表条目需要一些位来描述页面,并且需要一些位来将页面映射到物理页框。
页表条目的大小始终是 2 的幂,通常为 4、8 或 16 个字节长。因此 PAGE 大小比 PAGE TABLE ENTRIES 大小大几个数量级。
用于将 PAGE 映射到 PAGE FRAMES 的位数是
maximum amount of physical memory / page size
更大的物理内存支持 => 更大的页表条目。
较大的 PAGE 大小 => 较小的页表条目。
如果系统想要使用 512 (2^9) 字节的 PAGES 来支持 2^32 字节的内存,则它需要 PAGE TABLE ENTRY 中的 2^23 位来将逻辑页面映射到物理页面帧。这将在 32 位 PAGE TABLE ENTRY 中留下 9 位用于 PAGE 描述。
“页面大小=帧大小”这是正确的。物理内存分为称为“页框”的块。虚拟内存分为称为“页面”的块。PTE 包含页框的基地址,我们根据偏移量确定实际地址。请参阅了解 Linux 内核章节。2 内存寻址。
1)页面大小由设计者给出,页面大小=帧大小
2) 帧大小指定了划分主存储器的每个块的大小。
3)每个页面存储的内容是一个帧的地址,在主存储器中存在一个特定的帧。
4)然后您存储在每页中的内容包含唯一寻址帧所需的位数,即(主存储器大小/每页大小)
--> 让我们考虑一个例子。让物理地址为 44 位长 让 CPU 生成的逻辑地址为 32 位长 让每个页面的大小为 4KB(12 位)
主存中有 (2^44)/(2^12) 帧 As page size== frame size
我们需要 44-12=32 位来唯一标识每一帧所以页表中的每一页都必须能够存储 32 位。这称为页表条目的大小