📜  操作系统中的固定(或静态)分区

📅  最后修改于: 2021-09-28 09:46:12             🧑  作者: Mango

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

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

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

固定分区:
这是用于在主内存中放置多个进程的最古老和最简单的技术。在这种分区中,RAM 中的分区数(非重叠)是固定的,但每个分区的大小可能相同可能不同。由于它是连续分配,因此不允许跨越。这里分区是在执行之前或系统配置期间进行的。

如上图所示,第一个进程只消耗了主存 4MB 中的 1MB。
因此,第一个块中的内部碎片是 (4-1) = 3MB。
每个区块的内部碎片总和 = (4-1)+(8-7)+(8-7)+(16-14)= 3+1+1+2 = 7MB。

假设大小为 7MB 的进程 P5 来了。但是由于连续分配(因为不允许跨越),尽管有可用的可用空间,但无法容纳此过程。因此,7MB 成为外部碎片的一部分。

固定分区有一些优点和缺点。

固定分区的优点 –

  1. 易于实施:
    实现固定分区所需的算法很容易实现。它只需要将一个进程放入某个分区,而不关注内部和外部碎片的出现。
  2. 小操作系统开销:
    固定分区的处理需要较少的多余和间接计算能力。

固定分区的缺点 –

  1. 内部碎片:
    主内存使用效率低下。任何程序,无论多么小,都会占用整个分区。这可能会导致内部碎片。
  2. 外部碎片:
    即使有可用空间但不是连续形式(因为不允许跨越),各个分区的总未使用空间(如上所述)也不能用于加载进程。
  3. 限制进程大小:
    不能容纳大于主内存分区大小的进程。分区大小不能根据传入进程的大小而变化。因此,上述示例中 32MB 的进程大小是无效的。
  4. 多道程序度的限制:
    主存储器中的分区是在执行之前或系统配置期间进行的。主内存被分成固定数量的分区。假设如果有n1 RAM 中的分区和n2是进程数,那么n2 <= n1必须满足条件。进程数大于 RAM 中的分区数在固定分区中无效。