【发布时间】:2014-12-17 07:47:46
【问题描述】:
在连续的内存分配中,我们有一个外部碎片的问题,但是我们不能根据我们的要求将所有可用的空闲内存小洞组合成一个大洞吗?
【问题讨论】:
标签: memory-management memory-fragmentation
在连续的内存分配中,我们有一个外部碎片的问题,但是我们不能根据我们的要求将所有可用的空闲内存小洞组合成一个大洞吗?
【问题讨论】:
标签: memory-management memory-fragmentation
添加到 varun 的答案:
压缩可能并不总是可行的,即如果地址绑定是静态的,则程序的地址空间不能重新定位。仅当重定位是动态的并且在执行时完成时才能完成。
另一种解决方案是增加块大小,但需要权衡。
【讨论】:
是的,我们可以组合分散在物理内存中且不连续的所有内存空间。所以我们需要一种算法来将所有使用的内存分配移动到内存的一侧,以便我们有一个连续的可用内存。这种方法称为压缩。压缩执行效率很低,需要一些时间。 动态绑定的内存也可以重新分配。
【讨论】: