📜  操作系统中的非连续分配

📅  最后修改于: 2021-09-27 15:17:00             🧑  作者: Mango

先决条件 – 可变分区、固定分区
分页和分段是允许进程的物理地址空间不连续的两种方式。它具有减少内存浪费的优点,但由于地址转换而增加了开销。它会减慢内存的执行速度,因为地址转换会消耗时间。

在非连续分配中,操作系统需要为每个进程维护一个称为页表的表,该表包含进程在内存空间中获取的每个块的基地址。在非连续内存分配中,进程的不同部分被分配到主内存中的不同位置。允许跨越,这在动态或静态连续内存分配等其他技术中是不可能的。这就是为什么需要分页来确保有效的内存分配。分页是为了去除外部碎片。

在职的:
在这里,一个进程可以以非连续的方式跨越主内存中的不同空间。假设进程 P 的大小为 4KB。考虑主内存有两个空插槽,每个大小为 2KB。因此,总可用空间为 2*2= 4 KB。在连续内存分配中,不能容纳进程 P,因为不允许跨越。

在连续分配中,内存中的空间应该分配给整个进程。如果不是,则该空间保持未分配状态。但是在非连续分配中,进程可以被分成不同的部分,从而填充主内存中的空间。在这个例子中,进程 P 可以被分成大小相等的两部分——2KB。因此,进程 P 的一部分可以分配到主存的第一个 2KB 空间,而进程 P 的另一部分可以分配到主存的第二个 2KB 空间。下图将更好地解释:

但是,我们以何种方式划分进程以将它们分配到主内存中是非常重要的理解。在分析主内存中的空白空间的数量和它们的大小后,进程被划分。然后只有我们划分我们的过程。这是非常耗时的过程。由于执行主内存中已经存在的进程,它们的数量和大小每次都会发生变化。

为了避免这个耗时的过程,我们在到达主存执行之前提前将我们的进程划分在二级内存中。每个进程都被分成大小相等的不同部分,称为页面。我们还将我们的主内存分成大小相等的不同部分,称为帧。重要的是要了解:

Size of page in process 
= Size of frame in memory 

尽管它们的数字可能不同。下图会让你更好地理解:考虑空主内存,每帧大小为 2 KB,两个进程 P1 和 P2 各为 2 KB。

解析主存,

总之我们可以说,分页允许进程的内存地址空间是不连续的。分页更灵活,因为只移动进程的页面。它允许比连续内存分配更多的进程驻留在主内存中。