操作系统 找到最佳的页面大小

操作系统 找到最佳的页面大小

我们已经知道,页面表的大小越大,会引起额外的开销,因为我们必须将该表分割成页面,然后存储到主内存中。

我们关注的应该是执行进程,而不是执行页面表。页面表为进程的执行提供支持。页面表越大,开销越大。

我们知道,

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 

这将有1百万个页面,这是一个相当大的数字。然而,试着让页面大小变大,比如2 MB。

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

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

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

让我们考虑一下,

页面大小 = 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) 字节 

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程