2012-11-19 90 views
4

假设小型计算机系统具有4MB的主内存。系统以固定大小的框架管理它。帧表维护存储器中每个帧的状态。一帧应该有多大(多少字节)?您可以选择以下选项之一:1K,5K或10K字节。由于碎片和帧表存储,这些选择中的哪一个可以最大限度地减少由进程浪费的总空间?操作系统主内存碎片

假设如下:平均来说,10个进程将驻留在内存中。每个过程的平均浪费空间量将为1/2帧。 对于每个帧,帧表必须有一个条目。每个条目需要10个字节。


这里是我的回答:

1K会减少碎片,已知小尺寸导致大表,但更小的空间浪费。

10个进程〜每个帧浪费1/2帧。


我在正确的轨道上吗?

+0

我怀疑没有具体的方法来确定操作系统的最佳页面大小。它应该取决于各种建筑问题。如TLB,pae表大小等。例如,如果您的处理器中有大的TLB,则可以高效地使用小页面大小。 –

回答

0

是的,你是。我同意你的看法,在这样的系统中,最小的尺寸最有意义。但是,例如,如果您采用x86-64的情况,其中选项为4kb,2MB,1GB。考虑到近似4GB的现代内存大小,显然1GB是没有意义的,但是因为大多数程序现在包含相当多的编译代码,或者在解释和VM语言的情况下,VM的所有代码,2MB页面使得最有意义的。换句话说,要确定这些事情,您必须考虑此系统中程序的平均内存使用情况,程序数量,最重要的是平均碎片与页面大小的比例。因为虽然像这样的小内存大小可从低碎片中受益,但4GB内存上的4kb页面是非常大的页表。 大。