操作系统主内存碎片化

4
假设一个小型计算机系统有4MB主内存。该系统以固定大小的帧管理内存。帧表维护内存中每个帧的状态。一个帧应该有多大(多少字节)?您可以选择以下之一:1K、5K或10K字节。这些选择中哪一个会最小化由于碎片和帧表存储而导致的进程浪费的总空间?
假设以下情况:平均每次有10个进程驻留在内存中。每个进程的平均浪费空间将是1/2个帧。
帧表必须为每个帧都有一个条目。每个条目需要10个字节。
我的答案是:1K可以最小化碎片,因为众所周知小尺寸会导致大表但浪费空间较小。
10个进程~每个浪费1/2帧。
我在正确的轨道上吗?

我怀疑没有确定操作系统最佳页面大小的特定方法。它应该取决于各种架构问题,例如TLB,pae表大小等。例如,如果您的处理器具有大型TLB,则可以有效地使用小页面大小。 - Debobroto Das
1个回答

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接