📜  带有示例的OS分页

📅  最后修改于: 2020-12-14 09:36:56             🧑  作者: Mango

分页示例

在操作系统中,分页是一种存储机制,用于以页的形式从二级存储中检索进程到主内存中。

分页背后的主要思想是将每个进程划分为页面形式。主存储器也将以帧的形式进行划分。

该过程的一页将存储在存储器的其中一个帧中。页面可以存储在内存的不同位置,但是始终要优先查找连续的框架或孔。

仅当需要时,该过程的页面才会进入主内存,否则它们将位于辅助存储中。

不同的操作系统定义了不同的框架大小。每帧的大小必须相等。考虑到页面在分页中映射到框架这一事实,因此页面大小必须与框架大小相同。

让我们考虑主存储器的大小为16 Kb,帧大小为1 KB,因此,主存储器将被分为16个帧,每个1 KB的集合。

系统中有4个进程,分别是4 KB的P1,P2,P3和P4。每个进程分为1 KB的页面,因此一页可以存储在一帧中。

最初,所有框架都是空的,因此进程页面将以连续方式存储。

下图显示了框架,页面以及两者之间的映射。

让我们考虑一下,P2和P4在一段时间后进入等待状态。现在,8帧变为空白,因此可以在该空白位置加载其他页面。大小为8 KB(8页)的进程P5在就绪队列中等待。

鉴于这一事实,我们在内存中有8个非连续帧,分页提供了在不同位置存储进程的灵活性。因此,我们可以代替P2和P4加载过程P5的页面。

内存管理单元

内存管理单元(MMU)的目的是将逻辑地址转换为物理地址。逻辑地址是CPU为每个页面生成的地址,而物理地址是将存储每个页面的帧的实际地址。

当CPU使用逻辑地址访问页面时,操作系统需要获取物理地址才能物理访问该页面。

逻辑地址分为两部分。

  • 页码
  • 抵消

OS的内存管理单元需要将页码转换为帧号。

考虑到上面的图像,假设CPU要求进程P3的第4页的第10个字。由于进程P1的页码4存储在帧号9,因此将返回第9帧的第10个字作为物理地址。