在连续的内存分配中,我们遇到了外部碎片的问题,但是我们只能根据我们的要求组合所有可用的小空闲内存来创建一个大的漏洞?
答案 0 :(得分:1)
是的,我们可以组合分散在整个物理内存中的所有内存空间,而不是连续的。因此,我们需要一种算法将所有使用的内存分配移动到内存的一侧,以便我们可以获得连续的空闲内存。此方法称为压缩。压缩的执行效率非常低,需要一些时间。 还可以重新分配动态绑定的内存。
答案 1 :(得分:1)
添加到varun的答案:
压缩可能并不总是可能的,即如果地址绑定是静态的,则无法重新定位程序的地址空间。只有在重定位是动态的并且在执行时完成时,才能执行此操作。
另一个解决方案是增加块大小但是需要权衡。