操作系统:虚拟存储器
1. 什么是虚拟存储器
- 虚拟内存使应用程序以为自己拥有连续可用的内存,而实际上它通常是被分割成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
虚拟存储器定义:具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的存储器系统。其逻辑容量由内存容量与外存容量值之和所决定,其运行速度接近内存速度,每位的成本却又接近于外存。
2. 局部性原理
- 在某个较短时间内,程序的执行仅局限于某个部分,相应的,程序访问的内存空间也仅局限在某个区域。
- 可以表现在两个方面:时间局限性(循环)和空间局限性。
3. 虚拟内存的技术实现
-
请求分页存储管理方式
a. 在分页存储管理的基础上,为了支持虚拟存储器而增加了请求调页功能和页面置换功能。
b. 请求分页管理系统中,在作业开始运行之前,仅调入当前执行的部分段即可运行。假如在执行的过程中发现,要访问的页面不在内存,则由处理器通知操作系统按照相应的页面置换算法将相应页面调入主存,同时操作系统也可将暂时不用的页面置换到外存。 -
请求分段存储管理方式
a. 在分段存储管理基础上,为支持虚拟存储器而增加了请求调入分段和分段置换功能。
b. 请求分段存储管理方式中,在作业开始执行之前,仅调入当前执行的部分段即可运行。在执行过程中,当所访问的段不在内存中时,可通知OS将所缺的段调入内存。 -
请求段页式存储管理方式
4. 页面置换算法(主要4种)
- 最佳置换算法(Optimal,OPT)
淘汰永久不再使用的页面。无法实现,通常作为其他置换算法的衡量方法。 - 先进先出置换算法(First In First Out,FIFO)
淘汰最先进入内存的页面,即在内存中驻留最久的页面。 - 最近最久未使用置换算法(Least Recently Used,LRU)
LRU算法赋予每个页面一个字段,记录上次被访问以来经历的时间T,当需淘汰页面时,选择现有页面中T最大的一个页面淘汰。 - 最少使用置换算法(Least Frequently Used,LFU)
置换选择在之前时期使用最少的页面作为淘汰页。 - Clock置换算法
- 页面缓冲算法