页面大小和页面表项大小之间有什么区别

时间:2016-09-22 03:44:18

标签: memory-management operating-system hardware page-tables

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

根据我的理解,Page size用于将Page表格划分为相等的no。名为Pages的块和相同的大小用于将主存储器划分为帧。

页面尺寸=框架尺寸。

抱歉画画技巧不佳。这是我对Page Table

的可视化

enter image description here

Page Table Entry Size是每个页面条目占用的大小。所以,

页面表项大小=页面大小。

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

任何人都可以解释页面大小与页面表项大小的区别吗? 为什么页面表项大小是根据帧中的位数而不是页面计算的?

请帮我看一下页面表与所有上述组件的准确程度

3 个答案:

答案 0 :(得分:0)

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

Explained here in Fig-3.1

答案 1 :(得分:0)

  

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

PAGE FRAME大小始终与PAGE大小相同。

  

任何人都可以解释页面大小与页面表项大小的区别吗?

PAGE TABLE ENTRY大小取决于PAGE大小,但不是由它计算的。

PAGE TABLE是一种定义进程逻辑地址空间的数据结构。进程地址空间由一组PAGES组成。页面的大小可以是2的任意倍数。我看到的最小页面大小是512字节,最大的页面大小可以是兆字节(或可能是千兆字节)。

PAGE TABLE由PAGE TABLE ENTRIES组成。 PAGE TABLE ENTRY描述进程的逻辑地址空间中的单个页面。 PAGE TABLE ENTRY标识逻辑页面映射到的物理页面框架以及页面的属性。

然后,PAGE TABLE ENTRY需要一些位来描述页面,并需要一些位来将页面映射到物理页面框架。

PAGE TABLE ENTRIES总是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中为PAGE描述留下9位。

答案 2 :(得分:0)

1)页面大小由设计者确定,页面大小=框架大小

2)帧大小指定主内存被划分的每个块的大小。

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

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

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

主存储器中有(2 ^ 44)/(2 ^ 12)帧 页面尺寸==框架尺寸

我们需要44-12 = 32位才能唯一地标识每个帧 因此,页表中的每个页必须能够存储32位。这称为页表条目的大小