操作系统之分页储存管理(复习的同学进)
这里的概念非常多,那么我们来理一下这里的概念吧
知识点
首先分为两部分用户进程 和 内存
区域
内存:
将内存空间分为大小相等的块,每一块称之为页框(内存块),把每一块的编号称之为页框号(内存块号)
用户进程
将用户进程的地址空间分为与页框大小相等的块,称之为页面(页),每个页面的编号称之为页号
页表
- 操作系统为每个进程创建一个页表
- 每一页(页面)对应一个页表项,每个页表项长度相等(每项的位数=内存号范围所站的字节 页面大小4KB 物理内存大小2MB,内存号范围=221/212=2^9B 为2个字节)
- 每个页表项由页号和内存号组成
- 页表记录页面和内存块之间对应的关系
计算
事前准备
页号:逻辑地址/页面长度
页内偏移量:逻辑地址%页面长度
物理地址=起始地址+页内偏移量
页面长度 为 2^20B 可以得出:
- 页内偏移量的位数是20位
- 内存块的大小为2^20B(内存块=页面)
逻辑地址长度为2^30B , 页面长度为2^20B,可以得出:
- 页号的位数是10位
对上面的在变个型 有M位页号代表什么,有N位页内偏移量代表什么
- M 代表 有2^M个页面 . N 代表有N页面大小为2^N B
基本地址变换机构
基本地址变换机构可以借助页表将进程的逻辑地址转化为物理地址
- 计算 页号 和 页内偏移量
- 判断页号P 是否大于等于 页表长度M P>=M 则产生越界中段
- 页表中页号P所对应的页表地址=页表起始地址+P*页表项长度,从该地址中取出内存块号 b
- 物理地址=b*页面大小+页内偏移量
例题
引入快表
- 页表又称为慢表。
- 快表又称联想寄存器 TLB 是一种访问速度很快的高速缓冲储存器
- 引入块表后,快表可储存访问过的页面,及内存块号,之后就可以直接通过快表访问物理地址对应的内存单元,因为只访问了一次内存,所以可以节省访问时间(不用快表则需两次访问内存,访问页表一次,访问内存单元一次)
注意使用快表后的时间计算