如果我增加页面大小,则内部碎片会增加。怎么样?

时间:2014-01-24 13:21:46

标签: operating-system paging

我不知道,我是否应该在stackoverflow上问这个问题?但这个问题对我来说很难。

我最近正在学习操作系统,我只是想知道,如果我们增加分页 页面大小,然后内部碎片将如何增加。

提前致谢。

2 个答案:

答案 0 :(得分:3)

引用Wikipedia

  

流程很少需要使用确切数量的页面。结果,最后一页可能只是部分填满,浪费了一些内存。较大的页面大小会以这种方式增加浪费内存的可能性,因为更多可能未使用的内存部分被加载到主内存中。较小的页面大小可确保与分配中所需的实际内存量更加匹配。

     

例如,假设页面大小为1024KB。如果进程分配1025KB,则必须使用两个页面,从而产生1023KB的未使用空间(其中一页完全消耗1024KB,另一页仅消耗1KB)。

假设您有一个总内存占用量为(9 * 1024KB + 100KB)(文本,数据,堆栈,堆)的进程,并且您使用1024KB作为页面大小,将代表10个页面错误整个执行过程。内部碎片约为924KB。

现在使用页面102400KB(以前大小的100倍)而不是1024KB,现在整个过程生命周期中只有1页错误,但内部碎片确实很大。这就是页面大小导致内部碎片的方式。虽然您节省了所有这些页面错误所花费的时间,但是您花费更多时间将这个非常大的页面从交换空间交换到主内存,因为将有其他进程争用主内存上的空间。

答案 1 :(得分:2)

我们不能将页面作为分数,我们必须始终获得整页,这就是为什么如果没有。页面增加,内部碎片也会增加。