📜  操作系统查找最佳页面大小

📅  最后修改于: 2020-12-15 03:42:19             🧑  作者: Mango

寻找最佳页面大小

我们已经看到较大的页面表大小会导致额外的开销,因为我们必须将该表划分为多个页面,然后将其存储到主内存中。

我们所关心的必须是执行进程而不是执行页表。页表为流程的执行提供了支持。页表越大,开销越大。

我们知道,

Page Table Size = number of page entries in page table X size of one page entry 
Let's consider an example, 
Virtual Address Space = 2 GB = 2 X 2 ^ 30 Bytes 
Page Size = 2 KB = 2 X 2 ^ 10 Bytes 
Number of Pages in Page Table = (2 X 2 ^ 30)/(2 X 2 ^ 10) = 1 M pages 

将有100万页,这是一个很大的数字。但是,请尝试使页面大小更大,例如2 MB。

然后,页表中的页数=(2 X 2 ^ 30)/(2 X 2 ^ 20)= 1 K页。

如果比较这两种情况,我们可以发现页面表的大小与页面大小成反比例。

在分页中,最后一页总是浪费。如果虚拟地址空间不是页面大小的倍数,那么将剩余一些字节,我们必须为这些字节分配一个完整的页面。这只是开销。

考虑一下

Page Size = 2 KB 
Virtual Address Space = 17 KB
Then number of pages = 17 KB / 2 KB 

页数将为9,尽管第9页仅包含1个字节,其余页将被浪费。

一般来说,

If page size = p bytes 
Entry size = e bytes 
Virtual Address Space = S bytes 
Then, overhead O = (S/p) X e + (p/2) 

平均而言,虚拟空间中浪费的页面数为p / 2(总页面数的一半)。

因为,最小的开销,

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

因此,如果页面大小为√(2.Se)字节,则开销将最小。