📜  操作系统压缩

📅  最后修改于: 2020-12-14 09:31:41             🧑  作者: Mango

压实

我们知道动态分区会遭受外部碎片的困扰。但是,这可能会导致一些严重的问题。

为了避免压缩,我们需要更改规则,即不能将进程存储在内存中的不同位置。

我们还可以使用压缩来最小化外部碎片的可能性。在压缩中,使所有可用分区连续,并将所有已加载分区合并在一起。

通过应用此技术,我们可以将更大的进程存储在内存中。空闲分区已合并,现在可以根据新进程的需要进行分配。此技术也称为碎片整理。

如上图所示,由于空闲分区是连续的,因此由于缺少连续空间而无法加载到内存中的进程P5现在可以加载到内存中。

压实问题

在压缩的情况下,由于所有自由空间都将从多个位置转移到单个位置,因此系统的效率降低。

此过程花费了大量时间,并且CPU将在所有这段时间内保持空闲状态。尽管压缩避免了外部碎片的事实,但却使系统效率低下。

让我们考虑一下,OS需要6个NS才能将1个字节从一个位置复制到另一个位置。

1 B transfer needs 6 NS 
256 MB transfer needs 256 X 2^20 X 6 X 10 ^ -9 secs

因此,在某种程度上证明了较大的内存传输需要大量的时间(以秒为单位)。