计算机操作系统第五章 虚拟存储器 复习笔记

1 常规存储管理方式的特征

1.一次性:作业必须一次性全部转入内存才能运行
2.驻留性:装入内存后,整个作业都驻留在内存中,在完成前,任何部分都不能换出

1.1 虚拟存储器 :

指具有请求调入功能和置换功能,能够从逻辑上对内存容量加以扩充的一种存储器系统

1.2 理论基础:

程序在执行过程中的一个较短时间内,所执行的指令地址和指令的操作数地址,分别局限于一定区域。
1.时间局部性
2.空间局部性

1.3 特征:

1.多次性
2.对换性
3.虚拟性

2.请求分页存储管理方式

2.1 硬件支持

2.1.1 请求页表数据结构

页号 物理块号 状态位P 访问字段A 修改位M 外存地址

1.状态位(P):指示是否已调入内存
2.访问字段(A):记录本业在一段时间的访问次数
3.修改位(M):标识该页调入内存后是否被修改过

2.1.2 地址变换机构流程图

在这里插入图片描述

2.2 请求分页中的内存分配

2.2.1 最小物理块数:

能保证进程正常运行所需的最小物理块数

2.2.2 内存分配策略

1.固定分配局部置换:为每个进程分配一组固定数目的物理块,当缺页率较高时,也不再分配更多物理块
2.可变分配全局置换:先为系统中的每个进程分配一定数目的物理块,而OS也保持一定数目的物理块队列,当发生缺页时,则从系统总分配一块新的空闲物理块
3.可变分配局部置换:为每个进程分配一定数目的物理块,当缺页率较高时,需为该进程分配若干附加物理块

2.2.3 物理块分配算法

1.平均分配算法
2.按比例分配算法
3.考虑优先权分配算法

2.3 页面调入策略

2.3.1 何时调入页面

1.预调页策略:需要调入某页时,一次调入该页及相邻的几个页
2.请求调页策略:只调入发生缺页时所需的页面

2.3.2 从何处调入页面

1.系统拥有足够的对换空间,全部从对换区调入
2.系统缺少足够的对换区,不会被修改的从文件区调入;修改后被换出的页面放入对换区,以后从对换区调入
3.UNIX方式:未运行过的页面从文件去调入,运行过被换出的页面从对换区调入

2.3.2 缺页率

f=F/A

1.F:访问页面失败的次数
2.A:访问页面成功的次数

2.4 请求分系统评价

2.4.1 优点

1.有效的缓解了碎片问题
2.提供了大容量的多个虚拟存储器
3.作业地址空间不再受实际存储容量的限制
4.有利于运行多道程序

2.4.2 缺点

1.增加了成本
2.缺页中断增加了处理机时间的开销
3.页面淘汰算法选择不当,可能发生抖动现象

2.5 页面置换算法

2.5.1 最佳置换算法(OPT)

概述:具有最好的性能,但实际无法实现,通常作为标准来评价其他算法的优劣。

选择所淘汰的页面是以后不再使用,或者未来很长时间不被访问的页面

示例图
在这里插入图片描述

2.5.2 先进先出(FIFO)页面算法

概述:最直观的算法,但性能可能是最差的

选择在内存中驻留时间最久的页面予以淘汰

示例图
在这里插入图片描述

2.5.3 最近最久未使用(LRU)算法

概述:性能最接近最佳算法,硬件开销大

需要的硬件机构(二者选其一)

1.移位寄存器:进程第一次访问页面时,将相应寄存器的最高位置为1,每隔一段时间,将寄存器右移一位,那么具有最小值的寄存器所对应的页面,就是最近最久未使用的页面
2.特殊的栈:把被访问的页面移到栈顶,于是栈底就是最久未使用的页面

示例图
在这里插入图片描述

2.5.4 最少使用(LFU)算法

选择在最近时期使用最少的页面最为淘汰页

硬件机制

每次访问页面时,便将移位寄存器的最高位置1,每隔一段时间,将寄存器右移一位,这样,在一段时间内移位寄存器数值最小的页面将是最少使用页面

2.5.5 简单Clock置换算法

又把该算法成为最近未使用算法或NRU

为每页设置一个访问位,再将所有的页面连接成循环队列,被访问时,访问位置1,在淘汰时,检查访问位是否为0,若是则换出,若为1,则访问位置0,按照FIFO继续检查下一个,直到查到访问位为0的页

2.5.6 改进型Clock置换算法

除了考虑页面使用情况,还需考虑置换代价,因此增加了修改位M,和访问位组合为四种类型

1类(A=0, M=0):表示该页最近既未被访问,又未被修改过,最佳淘汰业
2类(A=0, M=1):表示该页未被访问,但也被修改,不是很好的淘汰页
3类(A=1, M=0):表示该页已被访问,但未被修改
4类(A=1, M=1):表示该页已被访问,也被修改

访问

第一步:从当前位置开始,查找A=0且M=0的第一类页面,将遇到的第一个页面作为淘汰页
第二步:若第一步失败,继续查找A=0且M=1的第二类页面,所遇到的第一个页面作为淘汰页,这一轮将所有的访问位A置0
第三步:若第二轮失败,则进行第一步,若仍失败,进行第二步,则必然能够找到淘汰页

2.5.7 页面缓冲算法(PBA)

采用可变分配全局置换的方法
如果一个淘汰页未被修改,则将他放入空闲链表中;如果页面被修改过,则放入已被修改的链表中。
当读入页面时,则放在第一个链表块中,淘汰时则将它放到链表尾部,当淘汰页达到一定数量时,再将链表全部换回(写回)外存

此算法减少了i/o操作

2.6 抖动与工作集

2.6.1 抖动

原因

如果系统中的进程太多,分配给每个进程的物理块太少,则会频繁的发生换页,导致大部分时间都浪费在i/o中,CPU的利用率趋近于0

预防方法

1.采取局部置换策略
2.把工作集算法融入到处理机调度中
3.利用L=S准则调节缺页率
4.选择暂停的进程

2.6.2 工作集

定义

指在某段时间间隔内,进程访问页面的集合

发布了13 篇原创文章 · 获赞 0 · 访问量 108

猜你喜欢

转载自blog.csdn.net/weixin_43602614/article/details/103619155