基本分页存储管理
分页存储
基本概念
- 将内存空间分为一个个大小相等分区,称页帧,页框
- 用户进程的地址空间也分为和页框大小相等的一个个区域
如何实现地址转换
-
计算逻辑
- 要算出逻辑地址对应的页号
- 知道该页号对应页面在内存中的起始地址
- 算出逻辑地址在页内的偏移量
- 物理地址=页面地址+页内偏移量
-
计算公式
-
页号
- 逻辑地址/页面长度(取除法整数部分)
-
页内偏移量
- 逻辑地址%页面长度(取余数)
-
页面在内存中的起始地址
- 页表内记录
-
-
举例
-
32位表示逻辑地址,页面大小4K
-
零号页
-
00000000000000000000
- 000000000000
- 111111111111
-
-
一号页
-
00000000000000000001
- 000000000000
- 111111111111
-
-
二号页
-
00000000000000000010
- 000000000000
- 111111111111
-
-
-
规律
-
页内偏移量为K位
- 系统一个页面大小位2^k个内存单元
-
页号有M位
- 一个进程最多允许有2^M个页面
-
-
页表
image.png-
概念
- 表示进程的每个页面在内存中存放的位置,操作系统为每一个进程建立一个页表
-
特性
- 一个进程对应一张页表
- 进程的每一页对应一个页表项
- 每个页表项由页号和块号组成
- 页表记录进程页面和实际存放内存块之间的对应关系
-
举例
-
物理内存4G,页面大小为4K,每个页表项多大
- 内存分为2^20个内存块
- 至少20个bit才能表示2^20个内存块,页表项至少3B
-
特点
-
各页表项按顺序连续存放在内存中
-
页表在内存中存放起始地址为x
-
则M号页对应的页表项位置
- 内存中X + 3*M
-
页号可以隐含
-
-
-
网友评论