操作系统 内存压缩
我们了解到动态分区存在外部碎片问题。然而,这可能会引发一些严重的问题。
为了避免压缩,我们需要改变这样一个规则,即进程不能存储在内存中的不同位置。
我们还可以利用压缩来最小化外部碎片的可能性。在压缩过程中,所有空闲分区被连续排列,所有加载的分区被放在一起。
通过应用这种技术,我们可以将更大的进程存储在内存中。空闲分区被合并,现在可以根据新进程的需求进行分配。这种技术也被称为碎片整理。
如上图所示,由于连续空间不足,进程P5无法加载到内存中,现在可以通过使空闲分区连续,将其加载到内存中。
紧凑问题
紧凑的情况下,系统的效率会降低,因为所有的空闲空间都将从多个位置转移到一个位置。
这个过程需要大量的时间,而CPU在这段时间内将一直处于空闲状态。尽管紧凑可以避免外部碎片,但它会使系统变得低效。
假设操作系统需要花费6 NS的时间将1字节从一个位置复制到另一个位置。
1 B transfer needs 6 NS
256 MB transfer needs 256 X 2^20 X 6 X 10 ^ -9 secs
因此,证明了在某种程度上,较大规模的内存传输需要大量时间,即以秒为单位。