首页 > 解决方案 > 页面大小如何影响内部碎片?

问题描述

在操作系统内部和设计原则(第7版)中有一句话“页面越小内部碎片越少”。我不明白这是什么意思。正如我所知,页面大小等于帧大小。因此,没有内部碎片。我不太明白这句话是什么意思?

标签: operating-system

解决方案


假设您的进程有 12 个字节的可执行代码、34 个字节的只读数据和 56 个字节的读/写数据。请注意,这些区域中的每一个都具有不同的访问权限,因此(对于大多数与页面相关联的权限的 CPU)它们不能共享页面。

如果页面大小为 100 字节,那么 12 字节的可执行代码将不得不消耗 100 字节(整个页面),其中 88 字节将被浪费(内部碎片);由于内部碎片,整个过程将浪费 198 个字节(因为 3 个区域中每个区域的大小都需要四舍五入到页面大小)。如果页面大小为 16384 字节,那么同一个进程将浪费 49050 字节;如果页面大小为 10 个字节,则会浪费 18 个字节。

进一步来说; 如果 N 个进程有 M 个唯一区域(其中一个唯一区域可能由多个进程共享),您会期望/假设由于内部碎片而浪费的平均字节数将为“M * PAGE_SIZE/2”。


推荐阅读