Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在连续的内存分配中,我们有一个外部碎片的问题,但是我们不能根据我们的要求将所有可用的空闲内存小洞组合成一个大洞吗?
是的,我们可以将分散在物理内存中且不连续的所有内存空间组合起来。所以我们需要一种算法将所有使用的内存分配移动到内存的一侧,以便我们有一个连续的空闲内存可用。这种方法称为压缩。压缩执行效率很低,需要一些时间。动态绑定的内存也可以重新分配。
添加到varun的答案:
压缩可能并不总是可行的,即如果地址绑定是静态的,则程序的地址空间不能重新定位。仅当重定位是动态的并且在执行时完成时才能完成。
另一种解决方案是增加块大小,但它是折衷的。
请参阅此以了解块大小对碎片的影响