在操作系统中, 分页是一种存储机制, 用于以页面形式从二级存储中检索进程到主内存中。
分页背后的主要思想是以页面的形式划分每个进程。主存储器也将以帧的形式进行划分。
该线程的一页将存储在存储器的其中一个帧中。页面可以存储在内存的不同位置, 但是始终要优先查找连续的框架或孔。
仅当需要时, 该线程的页面才被带入主存储器, 否则它们位于辅助存储器中。
不同的操作系统定义了不同的框架大小。每帧的大小必须相等。考虑到页面在分页中映射到框架这一事实, 因此页面大小必须与框架大小相同。
文章图片
例子
让我们考虑主存储器的大小为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使用逻辑地址访问页面时, 操作系统需要获取物理地址才能物理访问该页面。
逻辑地址分为两部分。
- 页码
- 偏移量
例子
【分页示例图解】考虑到上面的图像, 假设CPU要求进程P3的第4页的第10个字。由于进程P1的页码4存储在帧号9, 因此将返回第9帧的第10个字作为物理地址。