overview
- 理论基础:局部性原理
- 本质:以时间(外存与内存的信息交换)换空间(扩大内存逻辑空间)
- 受限:地址结构,外存容量,内存容量
- 实现
请求分页存储管理
请求分段存储管理
请求调页的段页式存储管理
按需调页
- 结构:页表,地址变换机构,缺页中断机构,请求调页机构和页面置换机构
- 页表
- page fault
缺页中断
缺页中断处理程序根据该页在外存的地址把它调入内存;
在调页过程中,若内存有空闲空间,则缺页中断处理程序只需把缺页装入并修改页表中的相应项;
若内存中无空闲物理块,则需要先淘汰内存中的某些页,若淘汰页曾被修改过,则还要将其写回外存。地址变换流程
分页地址变换+缺页中断处理
- 内存访问时间
页在主存中且页表项在快表中:
访问时间=查快表时间+访问内存时间=ε+t。
页在主存中且页表项不在快表中:
访问时间=查快表时间+查页表时间+修改快表时间+访问内存时间=ε+t+ε+t=2(ε+t)
页不在主存中,设处理缺页中断的时间为t1(包含读入缺页、页表更新、快表更新时间):
访问时间=查快表时间+查页表时间+处理缺页中断时间t1+查快表时间+访问内存时间=ε+t+t1+ε+t=t1+2(ε+t)
有效访问时间:内存的读写周期为t,缺页中断服务时间为tl(包含读入缺页、页表更新、快表更新时间), 快表的命中率为α,缺页中断率为f,快表访问时间为ε,则有效存取时间可表示为:EAT= α (ε +t )+(1- α )[(1-f) 2 (ε +t ) +f(tl+ 2 (ε+t ) )]
缺页中断处理时间:缺页中断服务时间,页面传送时间,重新启动进程时间
- 写时拷贝
允许父子进程在内存中共享页面
- 帧分配算法
决定为每个进程分配多少个帧(物理块)
写时拷贝
页面置换
页面分配
进程需要的最少物理块数,进程的物理块数是固定的还是可变的,按什么原则为进程分配物理块数
- 最小物理块数
- 页面分配算法
- 全局分配和局部分配
抖动
内存映射文件
其他考虑
- 预调页
- 页面尺寸选择