如何理解操作系统中的固定(或静态)分区?

2021年3月23日15:08:01 发表评论 759 次浏览

在操作系统中, 内存管理是负责分配和管理计算机主内存的功能。内存管理功能可跟踪分配或释放的每个内存位置的状态, 以确保有效, 高效地使用主内存。

有两种内存管理技术:连续的和非连续。在连续技术中, 执行过程必须完全加载到主存储器中。连续技术可以分为:

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

固定分区

这是用于在主存储器中放置多个进程的最古老, 最简单的技术。在此分区中, RAM中的分区数(不重叠)为

固定但大小

每个分区的

可能不一样

。照原样

连续的

分配, 因此不允许跨越。这里的分区是在执行之前或在系统配置期间进行的。

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

如上图所示, 第一个进程仅占用主内存中4MB中的1MB。

因此, 第一个块中的内部碎片为(4-1)= 3MB。

每个块中的内部碎片总和=(4-1)+(8-7)+(8-7)+(16-14)= 3 + 1 + 1 + 2 = 7MB。

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

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

固定分区的优势–

易于实现:

实现固定分区所需的算法易于实现。它只需要将进程放入特定的分区, 而不必关注内部和外部碎片的出现。

很少的操作系统开销:

固定分区的处理需要较少的额外和间接计算能力。

固定分区的缺点–

内部碎片:

主内存使用效率低下。任何程序, 无论多么小, 都占用整个分区。这可能会导致内部碎片。

外部碎片:

即使有可用空间但不是连续形式(因为不允许跨区), 各个分区的未使用总空间(如上所述)不能用于加载进程。

限制流程大小:

不能容纳大于主存储器中分区大小的进程。分区大小不能根据传入进程的大小而变化。因此, 上述示例中的32MB进程大小无效。

多重编程程度的限制:

在执行之前或在系统配置期间对主存储器进行分区。主内存分为固定数量的分区。假设有

n1

RAM中的分区和

n2

是进程数, 那么

n2 <= n1

必须满足条件。在固定分区中, 大于RAM中的分区数的进程数无效。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: