前提条件—可变分区、固定分区
分页和分段是允许进程的物理地址空间是非连续的两种方式。它具有减少内存浪费的优点,但是由于地址转换,它增加了开销。它减慢了内存的执行,因为地址转换消耗了时间。
在非连续分配中, 操作系统需要维护被称为页表对于每个进程, 其中包含该进程在内存空间中获取的每个块的基地址。在非连续内存分配中, 进程的不同部分在主内存中分配了不同的位置。允许跨越, 这在其他技术(如动态或静态连续内存分配)中是不可能的。这就是为什么需要分页以确保有效分配内存的原因。进行分页以除去外部碎片。
工作:
在这里, 进程可以非连续方式跨越主内存中的不同空间。假定大小为4KB的进程P。考虑主存储器有两个空插槽, 每个空插槽的大小为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。
解决主内存,
总而言之, 我们可以说, 分页允许进程的内存地址空间不连续。分页更加灵活, 因为仅移动进程的页面。与连续内存分配相比, 它允许更多的进程驻留在主内存中。