操作系统的虚拟内存管理,是内存管理中逻辑扩充内存的一个重点,必须掌握其原理和经典的页面置换算法。
主要的重点冷月做出了标识,知识点如下图(pdf版或xmind源文件请关注公众号:学长冷月,回复操作系统)。
时间局部性 当前访问的数据、指令在不久的将来可能会再次访问
空间局部性 当前访问的存储单元附近的存储空间在不久的将来可能会再次访问
高速缓存技术 把使用更加频繁的数据放到更高速的存储器中
一次性 作业必须一次性全部装入内存
驻留性 作业在整个运行期间必须常驻内存
程序无需全部装入内存即可运行,根据需要动态调入数据。如内存不够,则换出内存
特征
多次性 无需一次性装入,运行分多次调入内存
对换性 作业根据需要换入、换出
虚拟性 逻辑上扩充了内存的容量
请求调页功能 访存的信息不在内存中,则从外存调入
页面置换功能 内存不够时,则从内存调出
页表机制
在基本分页的基础上,增加了几个表项
缺页中断机制
找到页表项后检查是否在内存中,若不在产生缺页中断;然后将目标页面调入内存,有必要时还要调出页面
缺页中断产生在CPU内部,属于内中断,也就是故障
一条指令执行可能产生多次缺页中断
最佳置换算法(OPT):优先淘汰以后永不访问的页面;理想算法,无法实现
先进先出页面置换算法(FIFO):优先淘汰最先进入的页面;Belady现象:分配的物理块越大,中断次数不减反增
最近最久未使用置换算法(LRU):优先淘汰最长时间未使用的页面;需要寄存器和栈的支持
时钟置换算法(CLOCK)