7

我无法理解页面大小和页表条目大小之间的区别。

据我了解,页面大小用于将页面表划分为等号。称为页的块和相同大小的块用于将主内存划分为帧。

页面大小 = 帧大小。

画画水平不好请见谅。这是我对页表的可视化

在此处输入图像描述

其中页表条目大小是每个页条目占用的大小。所以,

页表条目大小 = 页面大小。

但是页表条目大小是由帧号中的位数计算的。

谁能解释一下页面大小与页面表条目大小有何不同?为什么页表条目的大小是根据帧中的位数而不是页面来计算的?

请帮我想象一下所有上述组件的页表有多精确

4

3 回答 3

4

为什么页表条目的大小是根据帧中的位数而不是页面来计算的?

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 描述。

于 2016-10-04T14:37:22.957 回答
1

“页面大小=帧大小”这是正确的。物理内存分为称为“页框”的块。虚拟内存分为称为“页面”的块。PTE 包含页框的基地址,我们根据偏移量确定实际地址。请参阅了解 Linux 内核章节。2 内存寻址。

在图 3.1 中解释

于 2016-09-24T03:56:08.033 回答
1

1)页面大小由设计者给出,页面大小=帧大小

2) 帧大小指定了划分主存储器的每个块的大小。

3)每个页面存储的内容是一个帧的地址,在主存储器中存在一个特定的帧。

4)然后您存储在每页中的内容包含唯一寻址帧所需的位数,即(主存储器大小/每页大小)

--> 让我们考虑一个例子。让物理地址为 44 位长 让 CPU 生成的逻辑地址为 32 位长 让每个页面的大小为 4KB(12 位)

主存中有 (2^44)/(2^12) 帧 As page size== frame size

我们需要 44-12=32 位来唯一标识每一帧所以页表中的每一页都必须能够存储 32 位。这称为页表条目的大小

于 2020-04-12T17:27:28.493 回答