第六章 虚拟存储器
目录
1.引入
实存管理:具有一次性、驻留性的存储器管理方法称为实存管理
1、作业(进程)逻辑空间不能超过实际内存大小
2、同时存在的进程数目受限较大
虚拟存储器:是指对内存的虚拟,是一种实际并不存在的内存空间,它包括两个方面的概念:
1、一级存储器概念:将大容量的外存作为内存的直接延伸,对内存、外存(交换区)实施统一管理
2、作业(进程)地址空间概念:虚存统一编址,按需要将作业(进程)放在内存或外存上
多次性:一个进程被分成多次调入内存运行
对换性:允许进程在运行过程中进行换进、换出
虚拟性:从逻辑上扩充内存容量
(容量上接近于外存,运行速度上接近于内存)
虚拟存储器的容量主要取决于:
1、计算机的地址结构
2、外存储器的空间
分页请求管理:基本分页上增加调入和置换功能,硬件设备
页面置换算法:最佳置换、先进先出、LRU、改进型Clock
请求分段管理:基本分段上增加调入和置换功能,硬件设备
2.页面置换算法
2.1最佳置换算法OPT
选择被置换的页面,将是永不使用的页面,或最长时间不使用的页面
优点:可保证最低的缺页率
缺点:不可能真正实现,只可作为其它算法的评价参考
假定系统为进程固定分配三个物理块,且页面被访问顺序为(p163):7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
第一次置换,7最长时间不使用,被置换
需要6次页面置换
2.2先进先出置换算法FIFO
选择最先进入内存的页面,即选择在内存中驻留时间最长的页面予以淘汰
优点:算法简单
缺点:性能不佳(p163)
需要12次页面置换
2.3最近最久未使用LRU
选择最近最久未被使用的页面淘汰
优点:性能较好
缺点:需要较多的硬件支持
需要9次页面置换
2.4时钟置换算法CLOCK/最近未用算法NRU
Clock置换算法是LRU算法的近似算法
Clock算法也称最近未用算法(NRU)(p166)
Clock算法中,设置1位访问位,记录页面是否被访问过(访问过为1,未访问为0)
实现原理:
⑴、将内存所有页面用指针链成一个循环队列
⑵、Clock算法沿链查找页面
⑶、如果访问位为0,则换出
⑷、如果访问位为1,则将访问位复0;并继续沿链查找下一个页面,直到找到一个访问位为0的页面换出
2.5改进型Clock置换算法
改进型Clock置换算法除设置1位访问位(A),还设置1位修改位(M)
将页面分成四类:
⑴、1类:A=0,M=0,最佳淘汰页
⑵、2类:A=0,M=1
⑶、3类:A=1,M=0
⑷、4类:A=1,M=1,最不应淘汰页
实现原理:(p167)
⑴.查找指针前进一步,判断当前页是否为第1类页(A=0,M=0),是则选择该页淘汰
⑵.否则,继续沿链向下查找
⑶.如果沿链查找一周,没有第1类页面,则查找第2类页(A=0,M=1),找到后淘汰,并将访问过的页面访问位置为0(A=0)
⑷.如果沿链查找一周后,未找到第2类页面,则将所有页面的访问位置0,重新从第⑴步开始