OS 基础教程

进程管理

同步

死锁

内存管理

文件管理

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/os-compaction.html

压缩(碎片整理)


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

为了避免压缩,我们需要更改规则,该规则指出进程无法存储在内存中的不同位置。

也可以使用压缩来减少外部碎片的可能性。 在压缩过程中,所有的空闲分区都是连续的,所有加载的分区都集中在一起。

通过应用这种技术,可以将更大的进程存储在内存中。 合并可用分区,现在可以根据新进程的需要分配这些分区。 这种技术也称为碎片整理。

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

压实问题

由于所有的自由空间将从几个地方转移到一个地方,因此在压实的情况下系统的效率会降低。

这个过程投入了大量的时间,并且CPU一直保持空闲状态。 尽管压实避免了外部碎片,但却使得系统效率低下。

让我们考虑一下,操作系统需要6个NS将1个字节从一个地方复制到另一个地方。

1 B转移需要6 NS
256 MB传输需要256 X 2 ^ 20 X 6 X 10 ^ -9秒

因此,在一定程度上证明,较大容量的存储器传输需要几秒钟的大量时间。