我们知道动态分区遭受外部碎片的困扰。但是, 这可能会导致一些严重的问题。
【内存压缩】为了避免压缩, 我们需要更改规则, 即不能将进程存储在内存中的不同位置。
我们还可以使用压缩来最小化外部碎片的可能性。在压缩中, 使所有可用分区连续, 并将所有已加载分区合并在一起。
通过应用此技术, 我们可以将更大的进程存储在内存中。空闲分区已合并, 现在可以根据新进程的需要进行分配。此技术也称为碎片整理。
文章图片
如上图所示, 由于空闲分区是连续的, 由于缺少连续空间而无法加载到内存中的进程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
因此, 在某种程度上证明了较大的内存传输需要大量的时间(以秒为单位)。
推荐阅读
- 磁盘的连续分配
- 动态分区的位图
- 二进制信号量或互斥量
- 贝拉迪异常(Belady’s Anomaly)
- Win10系统组策略编辑器怎样打开?
- Win10系统网络连接受限怎样处理?
- Win10如何迅速显示桌面?
- Win10笔记本蓝牙怎样打开?
- Win10系统故障的有效果处理办法