分页管理

静态页式管理(Paging)

在这里插入图片描述

基本原理:

①等分内存为物理块(或称页面 page frame),物理块编号为0,1,2…
②进程的逻辑地址空间分页(page),页编号为0,1,2…,页大小 = 物理块大小
③内存分配原则:进程的一页可装入任一物理块

*----进程的最后一页可能装不满,产生“页内碎片”。
*----分页类似于固定分区,但不同之处在于:页比较小且大小相等 + 一个进程可占据多页且不要求连续性。

管理所需数据结构:

OS为每个进程建立一个页表(Page Table)
页表作用:记录进程的页号和物理块号的对应关系----->便于之后逻辑地址和物理地址的转换

地址转换:

逻辑地址—>物理地址
①页表寄存器(Page Table Register,PTR)
*----存放当前进程的页表起始地址和长度(每个进程的页表起始地址和长度平时放在PCB中,调度时由OS放入PTR)
②页大小的选择
页小:碎片小,但页表占用空间大
页大:页表小,但页内碎片大
因此,通常来说,页的大小为2的整数次幂。
③进程的逻辑地址结构
地址的高位部分为页号,低位部分为页内地址
|31|. . . . . . . . . . . . . . . . . . . . . . . . . . . . .|12|11|. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . … . . . . . . . |0|

页号P页内地址d

④基本的地址转换
已知逻辑地址------------>根据逻辑地址结构,得出页号和页内地址------------->根据页表和页号找物理块号-------------->物理地址 = 物理块号 * 页大小(物理块大小)+页内地址
CPU要存取一个数据,需要访问内存几次??
2次:①访问页表,找到对应的物理块号,得出物理地址 ②访问该物理地址,存取其中的指令或数据

⑤引入快表的地址转换
快表:又称联想存储器,是具有并行查找能力的特殊高速缓冲存储器。当切换到新进程时,快表要刷新。
*-----作用:保存当前进程的页表的子集(部分表项),比如最近访问过的表项。
*-----目的:提高地址转换速度
页表只放物理块号,快表中放页号+物理块号+访问位+状态位
*-----访问位指示该页最近是否被访问过(1:访问过);状态位:表示该快表项是否被占用。
*-----访问位和状态位为快表内容更新依据
*-----有了快表之后,当进程访问一页时,先查找快表,如果没有的话再查找页表。引入快表的效果取决于快表访问时的命中率。

二级页表:

存在意义:页表可能占用相当大的连续的内存空间,因此引入二级页表。
<页表不一定放在内存中,还可以将一部分放在磁盘中。>
①基本原理
将页表进行分页,设置1个一级页表,多个二级页表
*—一级页表:第i项纪录第i号二级页表所在的物理块号;二级页表:第i项纪录第i页对应的物理块号。
系统设置1个页表寄存器,存放一级页表的起始地址和长度。(类似于多级索引)
②进程的逻辑地址结构

|31|. . . . . . . . . . . . . . . . . . . . . . . . |22|21|. . . . . . . . . . . . . . . . . . . . . . . .|12|11|. . . . . . . . . . . . . . . . . . . . . . |0|

一级页号P1二级页号P2页内地址d

③地址转换
先根据一级页表号,找到对应的二级页表;在二级页表中找到页号和对应的物理块号;然后得出物理地址。说明:二级页表并未减少页表所占的内存空间,但解决了页表的离散分配问题,避免了连续存储对空间的要求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值