2016-09-22 2817 views
1

我無法理解頁面大小和頁面表項大小之間的差異。頁面大小和頁面表項大小有什麼區別

從我的理解,頁面大小是用來劃分頁表在等於no。稱爲Pages的塊和相同的大小用於將主存儲器劃分爲多個幀。

頁面大小=幀大小。

對不起,繪畫技巧。這是我的頁表

enter image description here

凡爲頁表項大小是由每個頁面項所佔用的大小的可視化。所以,

Page Table Entry Size = Page Size。

但是,頁表條目大小是通過幀號中的位數來計算的。

任何人都可以請解釋頁面大小如何不同頁面表條目大小? 爲什麼頁表條目大小是根據幀中的位數而不是頁面計算的?

請幫我想象的頁表將如何精確與所有上述組件

回答

0

「頁面尺寸=外形尺寸」 這是正確的。物理內存被分成稱爲「頁面框架」的塊。虛擬內存被分成稱爲「頁面」的塊。 PTE包含頁框的基地址,並根據偏移量決定實際地址。 請參閱瞭解Linux內核章節。 2內存尋址。

Explained here in Fig-3.1

0

爲什麼頁表項大小計算對位的築底號在框架,而不是頁面?

PAGE FRAME大小始終與PAGE大小相同。

任何人都可以請解釋頁面大小如何不同頁面表條目大小?

PAGE TABLE ENTRY大小取決於PAGE大小,但不是從它計算出來的。

PAGE PAGE是定義進程邏輯地址空間的數據結構。進程地址空間由一組PAGES組成。頁面的大小可以是2的任意倍數。我看到的最小頁面大小是512字節,最大可以是兆字節(或可能是千兆字節)。

PAGE TABLE由PAGE TABLE ENTRIES組成。 PAGE TABLE ENTRY描述了進程邏輯地址空間中的單個頁面。 PAGE TABLE ENTRY標識邏輯頁面映射到的物理頁面框架和頁面的屬性。

PAGE PAGE ENTRY然後需要一定數量的位來描述頁面和一些位數來將頁面映射到物理頁面框架。

PAGE TABLE ENTRIES的大小通常爲2,通常爲4,8或16個字節。因此頁面大小比PAGE TABLE ENTRIES大小大幾個數量級。

用於PAGE映射到頁面幀的比特的數量是

maximum amount of physical memory/page size 

更大的物理存儲器支持=>更大的頁表條目。

較大的頁面大小=>較小的頁面表項。

如果系統想要使用512(2^9)個字節的PAGES支持2^32個字節的內存,則它在PAGE TABLE ENTRY中需要2^23個位來將邏輯頁面映射到物理頁面框架。這將在32位PAGE TABLE ENTRY中爲PAGE描述留下9位。