4

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

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


这是我的答案:

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

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


我在正确的轨道上吗?

4

1 回答 1

0

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

于 2012-11-19T04:26:08.907 回答