在操作系统,内存管理是负责分配和管理计算机的主内存的函数。内存管理函数会跟踪每个内存位置的状态,无论是已分配还是空闲,以确保有效和高效地使用主内存。
有两种内存管理技术: Contiguous和Non-Contiguous 。在连续技术中,执行进程必须完全加载到主内存中。连续技术可分为:
- 固定(或静态)分区
- 可变(或动态)分区
可变分区 –
它是连续分配技术的一部分。它用于缓解固定分区面临的问题。与固定分区相反,在执行之前或系统配置期间不进行分区。与可变分区相关的各种功能-
- 最初 RAM 是空的,并且在运行时根据进程的需要进行分区,而不是在系统配置期间进行分区。
- 分区的大小将等于传入的进程。
- 分区大小根据进程的需要而变化,这样可以避免内部碎片,确保RAM的有效利用。
- RAM 中的分区数量不是固定的,取决于传入进程的数量和主内存的大小。
下面给出了可变分区相对于固定分区的一些优点和缺点。
可变分区的优点 –
- 无内部碎片:
在可变分区中,主存中的空间严格按照进程的需要分配,因此不存在内部碎片的情况。分区中将没有未使用的空间。 - 对多道程序的程度没有限制:
由于没有内部碎片,可以容纳更多数量的进程。可以加载一个进程,直到内存为空。 - 对进程大小没有限制:
在固定分区中,大小大于最大分区大小的进程无法加载,并且进程无法划分,因为它在连续分配技术中无效。这里,在可变分区中,不能限制进程大小,因为分区大小是根据进程大小决定的。
可变分区的缺点 –
- 实施难点:
与固定分区相比,实现可变分区比较困难,因为它涉及在运行时而不是系统配置期间分配内存。 - 外部碎片:
尽管没有内部碎片,但还是会有外部碎片。例如,假设在上面的例子中——进程 P1(2MB) 和进程 P3(1MB) 完成了它们的执行。因此剩下两个空间,即 2MB 和 1MB。让我们假设大小为 3MB 的进程 P5 来了。内存中的空白空间无法分配,因为连续分配中不允许跨越。规则说进程必须连续出现在主内存中才能被执行。因此,它导致外部碎片化。
现在,尽管需要可用空间,但仍无法容纳 3 MB 大小的 P5,因为不允许连续跨越。