在操作系统中, 内存管理是负责分配和管理计算机主内存的功能。内存管理功能可跟踪分配或释放的每个内存位置的状态, 以确保有效, 高效地使用主内存。
有两种内存管理技术:连续的和非连续。在连续技术中, 执行过程必须完全加载到主存储器中。连续技术可以分为:
- 固定(或静态)分区
- 可变(或动态)分区
固定分区:
这是用于在主存储器中放置多个进程的最古老, 最简单的技术。在此分区中, 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中的分区数的进程数无效。