文章目录
- 一. 虚拟内存
- 1)传统存储管理方式的特征、缺点
- 2)虚拟内存的定义和特征
- 3)如何实现虚拟内存 —— 请求分页存储管理
- 二. 缺页中断
- 1)缺页中断机构
- 2)请求分页的地址变换机构
- 三. 页面置换
- 四. 页面分配、置换策略
一. 虚拟内存
1)传统存储管理方式的特征、缺点
- 作业必须一次性全部装入内存才能运行,可能会由于作业太大导致装不下内存。
- 放入大作业后,只有少量作业能运行,导致多道程序并发度下降
- 驻留性:装入后,会一直驻留于内存,直到结束。实际上一时间段只需要访问一小部分数据,这导致了内存资源的浪费。
2)虚拟内存的定义和特征
- 基于局部性原理,有下面三个主要特征
- 多次性:无需一次装入整个作业,允许分成多次调入内存
- 对换性:作业无须常驻内存,允许换入换出内存
- 虚拟性:逻辑上扩充了内存容量,使得用户感知的内存容量,远大于实际容量
3)如何实现虚拟内存 —— 请求分页存储管理
- 请求分页与基本分页的主要区别:请求分页会进行内存 - 外存的调换
- 页表机制:新增四个字段,存储信息供置换算法参考。(状态位、访问字段、修改位、外存地址)
二. 缺页中断
1)缺页中断机构
- 缺页中断:要访问的页面不在内存时,产生一个缺页中断。
- 内存有空闲块,则分配。没有,则由页面置换算法选择一个页面来淘汰。
- 淘汰页面时,如果页面在内存时被修改过,则需要写回内存。没修改过则不需要。
- 缺页中断属于内中断。
2)请求分页的地址变换机构
- 三个新增步骤
- 5 个细节
三. 页面置换
- 重点
四. 页面分配、置换策略
- 驻留集:请求分页存储管理中,给进程分配的物理块的集合
- 驻留集太小:缺页频繁,进程实际推进时间少
- 驻留集太大:多道并发度下降,资源利用率低
- 固定分配、可变分配、局部置换、全局置换(见图)
- 选择可变分配局部置换最好
- 预调页:主要用于进程的首次掉入(运行前掉入)
- 请求调页:运行时发现缺页才掉入所缺页面。由于一次只能调一页,所以I/O开销大
- 对换区:进程运行前,需要把对应数据从文件区复制到对换区
- 文件区:不会被修改的数据直接从文件区掉入,不必写回磁盘。(可能修改的数据则需要到对换区)
- 简单来说就是页面反复横跳,主要原因:进程频繁访问的页面数目高于可用的物理块数
- 驻留集大小不能小于工作集大小,否则进程运行过程会频繁缺页