OS 基础教程

进程管理

同步

死锁

内存管理

文件管理

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/os-paging-with-example.html

分页技术实例


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

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

进程的一页将被存储在存储器的一个帧中。 分页可以存储在内存的不同位置,但优先级始终是查找连续的帧或空洞。

进程页面只有在需要时才会被带入主内存,否则它们将驻留在辅助存储中。

不同的操作系统定义不同的帧大小。 每个帧的大小必须相等。 考虑到页面被映射到页面中的帧,页面大小需要与帧大小相同。

示例

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

系统中有4个进程,分别是4KB的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个字将作为物理地址返回。