📜  操作系统中的可变(或动态)分区

📅  最后修改于: 2021-09-27 14:28:32             🧑  作者: Mango

在操作系统,内存管理是负责分配和管理计算机的主内存的函数。内存管理函数会跟踪每个内存位置的状态,无论是已分配还是空闲,以确保有效和高效地使用主内存。

有两种内存管理技术: ContiguousNon-Contiguous 。在连续技术中,执行进程必须完全加载到主内存中。连续技术可分为:

  1. 固定(或静态)分区
  2. 可变(或动态)分区

可变分区 –
它是连续分配技术的一部分。它用于缓解固定分区面临的问题。与固定分区相反,在执行之前或系统配置期间不进行分区。与可变分区相关的各种功能-

  1. 最初 RAM 是空的,并且在运行时根据进程的需要进行分区,而不是在系统配置期间进行分区。
  2. 分区的大小将等于传入的进程。
  3. 分区大小根据进程的需要而变化,这样可以避免内部碎片,确保RAM的有效利用。
  4. RAM 中的分区数量不是固定的,取决于传入进程的数量和主内存的大小。

下面给出了可变分区相对于固定分区的一些优点和缺点。

可变分区的优点 –

  1. 无内部碎片:
    在可变分区中,主存中的空间严格按照进程的需要分配,因此不存在内部碎片的情况。分区中将没有未使用的空间。
  2. 对多道程序的程度没有限制:
    由于没有内部碎片,可以容纳更多数量的进程。可以加载一个进程,直到内存为空。
  3. 对进程大小没有限制:
    在固定分区中,大小大于最大分区大小的进程无法加载,并且进程无法划分,因为它在连续分配技术中无效。这里,在可变分区中,不能限制进程大小,因为分区大小是根据进程大小决定的。

可变分区的缺点 –

  1. 实施难点:
    与固定分区相比,实现可变分区比较困难,因为它涉及在运行时而不是系统配置期间分配内存。
  2. 外部碎片:
    尽管没有内部碎片,但还是会有外部碎片。

    例如,假设在上面的例子中——进程 P1(2MB) 和进程 P3(1MB) 完成了它们的执行。因此剩下两个空间,即 2MB 和 1MB。让我们假设大小为 3MB 的进程 P5 来了。内存中的空白空间无法分配,因为连续分配中不允许跨越。规则说进程必须连续出现在主内存中才能被执行。因此,它导致外部碎片化。

    现在,尽管需要可用空间,但仍无法容纳 3 MB 大小的 P5,因为不允许连续跨越。