操作系统主内存碎片

时间:2012-11-19 03:52:08

标签: memory operating-system virtual storage

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

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


以下是我的回答:

1K可以最大限度地减少碎片,因为已知的小尺寸会导致大桌子,但会浪费更小的空间。

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


我是在正确的轨道上吗?

1 个答案:

答案 0 :(得分:0)

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