1 基本概念
总览
传统存储管理的特征
- 一次性
- 驻留性
局部性原理
- 时间局部性原理
- 空间局部性原理
虚拟存储器的定义和特征
- 多次性
- 对换性
- 虚拟性
虚拟存储技术的实现
需要的功能:请求调页(段)功能,页面置换功能
- 请求分页存储管理
- 请求分段存储管理
- 请求段页式存储管理
注意前面传统的都叫基本XXXX
需要的支持: - 一定容量的内存和外存
- 页表机制(或段表机制),作为主要数据结构
- 中断机制
- 地址变换机构
2 请求分页管理方式
1 页表机制
2 缺页中断机构
3 地址变换机构
注意:调页后还是再次查快表
4 小结
3 页面置换算法
1 最佳(OPT)置换算法
2 先进先出(FIFO)页面置换算法
3 最近最久未使用(LRU)置换算法
算法的实现需要专门的硬件支持,性能好但是开销大,实现困难,性能是最接近最佳置换算法的
时钟(CLOCK)置换算法
优化的CLOCK
自己的理解:
(访问位,修改位):总是优先淘汰访问位是0的,修改位也是0的,也就是最近既未访问的也没有修改的
优先淘汰未访问的显而易见,为何淘汰未修改的呢?
因为修改过的淘汰了得往磁盘里写,产生I/O的开销,当然尽可能的先不淘汰它,如果你没修改丢了就丢了,也不用特地往磁盘写
所以过程就是:
- 扫描第一遍,淘汰(0,0)的,没有就继续第二遍,不用修改
- 第一遍失败扫第二遍,淘汰(0,1)的(00没有,肯定没办法了,往磁盘写就往磁盘写吧,也得先淘汰最近没访问的).就这都还没的话(这时候肯定剩 (1,1)/(1,0) 这两种)就把扫过的访问位都改成0,下把肯定有(0,0)/(0,1)了
- 第三遍肯定还是上来优先是(0,0)的,没有就说明只剩(0,1)了
- 第四遍淘汰(0,1)的,这必然有了
- 也就是为了淘汰(0,0)的时候,啥也不用修改,为了淘汰(0,1)的时候,边扫边改访问位
五种算法的比较
4 页面分配策略
可变分配局部置换和可变分配全局置换的区别:
局部的:物理块不够的时候,是从进程自己内部的物理块换出外存
全局:不够的时候随便挑一个不一定是自己的进程里的换,也可能是拿别人的