【问题标题】:operating systems main memory fragmentation操作系统主存碎片
【发布时间】:2012-11-06 23:59:02
【问题描述】:

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

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


这是我的答案:

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

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


我走对了吗?

【问题讨论】:

  • 我怀疑没有特定的方法来确定操作系统的最佳页面大小。它应该取决于各种架构问题。例如 TLB、pae 表大小等。例如,如果您的处理器中有一个大 TLB,那么您可以有效地使用小页面大小。

标签: memory operating-system virtual storage


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-10-24
    • 2015-03-23
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2017-05-03
    • 2016-07-12
    相关资源
    最近更新 更多