在操作系统,内存管理是负责分配和管理计算机的主内存的函数。内存管理函数会跟踪每个内存位置的状态,无论是已分配还是空闲,以确保有效和高效地使用主内存。
有两种内存管理技术: Contiguous和Non-Contiguous 。在连续技术中,执行进程必须完全加载到主内存中。连续技术可分为:
- 固定(或静态)分区
- 可变(或动态)分区
固定分区:
这是用于在主内存中放置多个进程的最古老和最简单的技术。在这种分区中,RAM 中的分区数(非重叠)是固定的,但每个分区的大小可能相同也可能不同。由于它是连续分配,因此不允许跨越。这里分区是在执行之前或系统配置期间进行的。
如上图所示,第一个进程只消耗了主存 4MB 中的 1MB。
因此,第一个块中的内部碎片是 (4-1) = 3MB。
每个区块的内部碎片总和 = (4-1)+(8-7)+(8-7)+(16-14)= 3+1+1+2 = 7MB。
假设大小为 7MB 的进程 P5 来了。但是由于连续分配(因为不允许跨越),尽管有可用的可用空间,但无法容纳此过程。因此,7MB 成为外部碎片的一部分。
固定分区有一些优点和缺点。
固定分区的优点 –
- 易于实施:
实现固定分区所需的算法很容易实现。它只需要将一个进程放入某个分区,而不关注内部和外部碎片的出现。 - 小操作系统开销:
固定分区的处理需要较少的多余和间接计算能力。
固定分区的缺点 –
- 内部碎片:
主内存使用效率低下。任何程序,无论多么小,都会占用整个分区。这可能会导致内部碎片。 - 外部碎片:
即使有可用空间但不是连续形式(因为不允许跨越),各个分区的总未使用空间(如上所述)也不能用于加载进程。 - 限制进程大小:
不能容纳大于主内存分区大小的进程。分区大小不能根据传入进程的大小而变化。因此,上述示例中 32MB 的进程大小是无效的。 - 多道程序度的限制:
主存储器中的分区是在执行之前或系统配置期间进行的。主内存被分成固定数量的分区。假设如果有 RAM 中的分区和是进程数,那么必须满足条件。进程数大于 RAM 中的分区数在固定分区中无效。