操作系统:内存管理一(3)基本分页存储管理
根据王道2024
一、基本概念:
将主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单位。
-
不会产生外部碎片
-
只会在为最后一个不完整的块申请主存空间时,才产生内部碎片(少量页内碎片)
-
提高内存利用率,提升计算机性能,硬件实现,对用户完全透明
页面(页):
进程中的块
页框(页帧):
内存中的块
块(盘块):
外存中的块
页面大小:
应为2的整数幂。太小,占用大量内存,增加地址转换开销;太大,使页内碎片增多,降低内存利用率
地址结构:
0~11位为页内地址,即每页大小为4KB;
12~31位为页号,最多允许2^20页
页表:
实现从页号到物理块号的地址映射
- 页表项(页号,块号)
二、基本地址变换机构
将逻辑地址转换为物理内存中的物理地址
页表寄存器(PTR),未执行时,页表始址和页表长度存放在PCB中,进程被调度执行时才运行时装入页表寄存器
过程硬件自动完成(页面大小L,逻辑地址A,物理地址E):
-
计算页号(P=A/L)和页内偏移量(W=A%L)
-
比较页号P和页表长度M,若P≥M,产生越界中断;反之继续执行
-
页表项地址=页表始址F+页号P*页表项长度,取出该页表项内容为b,即为物理块号
-
计算E=b*L+W,用得到的物理地址E去访问内存
问题:
-
每次访存都需要地址转换,对转换速度要求高
-
每个进程引入页表,页表不能太大,不然内存利用率降低
-
存取数据或指令至少需要访问两次内存
-
访问页表,找到对应的物理地址
-
根据该物理地址存取数据或指令
-
三、具有快表的地址变换机构
快表(相联存储器、TLB):
具有并行查找能力的高速缓冲存储器,存放若干页表项
主存中的页表常称为慢表
过程:
-
CPU给出逻辑地址,由硬件进行地址转换,将页号送入快表并比较
-
若找到匹配,则直接取出对应的页框号,与页内偏移量拼接成物理地址
-
若未找到匹配,则继续访问主存中的页表,读出页表项后,存入快表中
-
若快表已满,则按特定算法淘汰一个旧页表项
特点:
-
快表命中率可达90%以上,分页速度损失低
-
若找到匹配项,只需访问一次主存
-
快表的有效性基于局部性原理
四、两级页表
构造页表的页表(二级页表或多级页表)来存储索引表
顶级页表最多只能由一个页面
结构: