查詢最佳頁面大小


我們已經看到,較大的頁表會導致額外的開銷,因為必須將該表分成頁面,然後將其儲存到主記憶體中。

我們擔心的是執行進程而不是執行頁表。 頁表為執行過程提供了支援。 頁面越大,開銷越高。

例如,我們知道 -

頁面大小=頁面表中的頁面條目數量一個頁面條目的X大小
下面來看一個例子,
虛擬地址空間= 2 GB = 2 X 2 ^ 30位元組
頁面大小= 2 KB = 2 X 2 ^ 10位元組
頁表中的頁數=(2 X 2 ^ 30)/(2 X 2 ^ 10)= 1 M頁

將會有100萬頁這是相當大的數位。 但是,嘗試使頁面大小更大,例如:2MB。

然後,頁表中的頁數=(2 X 2 ^ 30)/(2 X 2 ^ 20)= 1K頁。

如果比較兩種情況,可以知道頁面大小與頁面大小成反比。

在分頁中,最後一頁總會有浪費。 如果虛擬地址空間不是頁面大小的倍數,那麼將剩餘一些位元組,並且必須將整個頁面分配給那些許多位元組。 這只是一個開銷。

讓我們考慮一下,

頁面大小= 2 KB
虛擬地址空間= 17 KB
然後頁數 = 17 KB / 2 KB

頁數將為9,但第9頁只包含1個位元組,剩餘的頁面將被浪費。

一般來說,

如果頁面大小= p個位元組
專案大小= e位元組
虛擬地址空間= S位元組
然後,開銷:O =(S / p)X e +(p / 2)

平均而言,虛擬空間中浪費的頁面數量為p / 2(總頁數的一半)。

因為,最小的開銷,

?O/?p = 0   
-S/(p^2) + ? = 0  
p = √ (2.S.e) bytes

因此,如果頁面大小為√(2.S.e)位元組,則開銷將很小。