虚拟存储管理
虚拟存储管理是一种逻辑扩容的方式,
基于局部性原理
- 虚拟存储原理:
- 在进程运行时,没有必要将其全部装入内存,而仅装入当前运行的那部分,当进程访问不在内存的那部分时,才将那部分调入内存。如果内存满了,则将暂时不用的那部分数据调出内存。
- 虚拟存储的特征
- 离散性:进程不连续的装入内存多个不同的区域中。离散性是实现虚拟存储器的基础。
- 多次性:一个进程多次调入内存
- 对换性:允许将部分程序和数据换进换出
- 虚拟性:逻辑上扩充容量
- 请求页式存储管理
- 硬件支持
- 需要内外存对换区
- 页表机制
- 缺页中断机构
- 地址变换机构
graph LR
页号,存储块号,状态位P,访问字段A,修改位M,外存地址
- 状态位:用于标记该页是否调入内存
- 访问字段:用于记录该页多久没被访问。置换算法需要访问该字段
- 修改位:表示该页调入内存后是否修改过
- 外村地址:指出该页在外存的地址
- 缺页中断机制
- 地址变换时,首先检查给定的页号是否大于页表寄存器的页表长度,若是,则越界中断
- 根据页号同时查找页表、快表。
- 若在快表中找到,则修改访问字段。对于写操作,还要将修改位置为1
- 若快表找不到,则在页表找。页表查到后,检查状态位,
- 如果该页在内存,将该页项写入快表
- 如果快表已满,则使用置换算法换出最后一页再将该页写入
- 如果该页不在内存,产生缺页中断。由中断处理程序将需要的页调入内存
- 如果内存已满,则使用置换算法换出最后一页再将该页写入内存
- 请求页式管理的页面置换算法
- 最佳置换算法(OPT)
- 理论上的算法
- 先进先出算法(FIFO)
- 淘汰最先进入内存的页
- 最近最久未使用置换算法
- 根据页面调入内存的使用情况作为置换的条件