操作系统(第五章)
Contents
虚拟存储器
常见的存储器
- 一次性全部装入
- 常驻内存
内存的利用率低
改进
- 时间局部性(循环执行)
- 空间局部性(顺序执行)
虚拟存储器
- 请求式分页
- 请求式分段
什么是虚拟存储器
-
定义:内存+外存,统一起来进行管理
-
增加了两个功能
- 请求调用(中断):访问的程序不在内存
- 置换:在内存物理块存放满,需要将不执行的程序先调到外存然后再将需要执行的调入内存
-
容量(大小)
- 最大容量:由系统机器指令的地址结构决定
- 实际容量:内存容量+外存容量
-
实现方法
- 分页
- 分段
-
特征
-
离散性:部分装入
若连续则不可能提供虚存),无法支持大作业小内存运行
-
多次性:局部装入,多次装入。
-
对换性
-
虚拟性.
-
请求式分页
-
硬件的变化
- 页表,增加4个字段:状态位(存在)/访问字段/修改位/外存地址
- 缺页中断:请求调入,访问的页面不在内存
- 地址变换:增加缺页中断
-
内存的物理块分配
-
最小物理块
-
页面分配
- 固定分配
- 可变式分配
-
页面置换
- 全局置换
- 局部置换
-
分配算法
-
平均分配算法
-
按进程大小比例分配算法:
-
考虑优先权分配算法
-
-
-
请求调入和置换
- 调入时机
- 预调
- 请求调
- 调页的地方
- 调入过程:调用缺页中断
- 调入时机
页面置换算法:用到缺页中断(3种)
置换的是哪些页面?
缺页中断
-
最佳页面置换算法(DPT)(理论上最好)
置换策略
- 永远不再被访问的页面
- 将来访问的页面中最长时间才被访问的页面
缺页率:$\frac{缺页次数}{总数}$
$\frac{6}{12}\times 100% =50%$
-
FIFO(先进先出)
置换策略:将先装入内容物理块的页面置换出去
缺页率:$\frac{9}{12} \times 100% = 75%$
注:
“抖动“现象:刚刚被置换出去的页面,下一时刻又要被访问(将它调入内存)
产生2次抖动
-
LRU(最近最久未使用置换算法)
置换策略:将已经被访问的页面中,最长最久时间没有被访问的页面
缺页率:$\frac{7}{12}\times 100% \approx 58%$