【发布时间】:2014-02-15 12:22:00
【问题描述】:
我最近正在学习操作系统。在分页中,如果我们增加 页面大小然后这个内部碎片将如何增加。
【问题讨论】:
我最近正在学习操作系统。在分页中,如果我们增加 页面大小然后这个内部碎片将如何增加。
【问题讨论】:
引用Wikipedia:
很少有进程需要使用确切数量的页面。结果,最后一页可能只是部分填满,浪费了一些内存。较大的页面大小会以这种方式增加浪费内存的可能性,因为更多可能未使用的内存部分被加载到主内存中。较小的页面大小可确保更接近分配中所需的实际内存量。
例如,假设页面大小为 1024KB。如果一个进程分配 1025KB,则必须使用两个页面,从而导致 1023KB 的未使用空间(其中一个页面完全消耗 1024KB,而另一个仅消耗 1KB)。
假设您有一个总内存占用为 (9*1024KB + 100KB) 的进程(文本、数据、堆栈、堆),并且您使用 1024KB 作为页面大小,将有 10 个页面错误代表整个执行过程中的过程。内部碎片约为 924KB。
您现在使用 102400KB 页面而不是 1024KB(以前大小的 100 倍),现在在整个进程生命周期中只会出现 1 个页面错误,但内部碎片确实很大。这就是页面大小导致内部碎片的方式。尽管您节省了所有这些页面错误所花费的时间,但您将花费更多时间将这个非常大的页面从交换空间交换到主内存,因为将会有其他进程争夺主内存上的空间。
【讨论】:
我们不能将页面作为分数,我们必须始终获得整页,这就是为什么如果不是。页面增加内部碎片也会增加。
【讨论】: