操作系统中的压缩
压缩是一种将所有以片段形式存在的空闲内存收集到一大块空闲内存中的技术,该空闲内存可用于运行其他进程。
它通过将所有进程移向内存的一端并将所有可用的可用空间移向内存的另一端来实现这一点,从而使其变得连续。
进行压缩并不总是那么容易。只有当重定位是动态的并且在执行时完成时,才能进行压缩。当重定位是静态的并且在加载时或组装时执行时,不能进行压缩。
压实前
在压缩之前,主内存在占用空间之间有一些空闲空间。这种情况称为外部碎片。由于占用空间之间的可用空间较少,因此无法将大型进程加载到其中。
Main Memory |
---|
Occupied space |
Free space |
Occupied space |
Occupied space |
Free space |
压实后
压实后,所有占用的空间都上移了,空闲空间在底部。这使空间连续并消除了外部碎片。现在可以将具有大量内存需求的进程加载到主内存中。 Main Memory Occupied space Occupied space Occupied space Free space Free space
操作系统中压缩的目的
在为进程分配内存时,当内存中有足够的可用空间来满足进程的内存需求时,操作系统通常会遇到问题。但是进程的内存请求不能被满足,因为可用的空闲内存是不连续的,这个问题被称为外部碎片。为了解决这类问题,使用了压缩技术。
压实问题
虽然压缩技术在提高内存利用率和减少内存的外部碎片方面非常有用,但它的问题是在进程中浪费了大量时间,并且在此期间 CPU 处于空闲状态,从而降低了系统的效率.
压实的优点
- 减少外部碎片。
- 提高内存使用效率。
- 记忆变得连续。
- 由于内存变得连续,因此可以将更多进程加载到内存中。
压实的缺点
- 系统效率降低。
- 大量的时间浪费在执行压缩上。
- CPU 长时间处于空闲状态。
- 执行压缩并不总是那么容易。