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

适用计算机操作系统(OS)(第四版)
自己的学习笔记,PPT及图片来源网络及自己老师,侵删。
三硬一软一接口——2硬:虚拟存储器

第五章虚拟存储器

5.1 虚拟存储器概述

为了解决内存空间不足的问题,从逻辑上扩充内存容量。

5.1.1 常规存储管理方式的特征和局部性原理

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

1)一次性 :指作业必须一次性地全部装入内存方能开始运行。

2 )驻留性 :指作业被装入内存后,整个作业都一直驻留在内存中,其中任何部分都不会被换出,直至作业运行结束。

2、局部性原理
程序运行时存在地局部性现象,表现在两个方面 :

  • 时间局限性:
    程序中的某条指令一旦执行,则不久以后该指令可能再次执行。
  • 空间局限性:
    程序访问了某个存储单元,不久之后,其附近的存储单元也被访问。

5.1.2 虚拟存储器的定义和特征

1、虚拟存储器定义

  • 仅把作业的一部分装入内存便可运行作业的存储器
    系统。
  • 具有请求调入功能和置换功能,从逻辑上对内存容
    量进行扩充的存储器系统。
  • 从用户角度看感觉系统的内存容量比实际内存容量
    大得多,是一种虚拟的概念。
  • 最大逻辑容量由计算机地址结构决定,其实际容量
    受外存容量的制约。

2、 虚拟存储器的特征

1 )离散性 :虚拟存储器的虚拟存储是在内存离散分配的基础上建立的。

2 )虚拟性 :从逻辑上扩充内存容量,使用户看到的内存容量远大于实际内存容量。

3 )多次性 :允许只需将当前要运行的部分作业装入内存即可开始运行。

4 )对换性 :允许在进程运行期间进行对作业中程序与数据的换入,换出。

5.1.3 虚拟存储器的实现方法

1 )请求分页系统
在分页系统的基础上,增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。置换以页为单位进行,系统须提供的硬件支持:

  • 请求分页的页表机制

  • 缺页中断机构

  • 地址变换机构

2 )请求分段系统
在分段系统的基础上,增加了请求调段及分段置换功能后,所形成的段式虚拟存储系统。置换以段为基本单位进行。提供硬件支持:

  • 请求分段的段表机制

  • 缺段中断机构

  • 地址变换机构

5.2 请求分页存储管理方式

5.2.1 请求分页中的硬件支持

1、请求页表机制
在这里插入图片描述
状态位(存在位)P:页是否调入内存。

访问字段A:某时间段内页被访问次数,或最近多长时间未被访问。

修改位M:页在调入内存后是否被修改。

外存地址:页在外存上的物理地址。

2、缺页中断机构

缺页中断:指当访问的页面不在内存时,便要产生缺页中断。请求OS将所缺的页面调入内存。

与一般中断的区别 :

1)在指令执行期间产生和处理中断信号。
2)一条指令执行期间,可能产生多次缺页中断。

3、地址变换机构

分页系统变换机构 + 请求调页 + 页面置换
在这里插入图片描述

5.2.3 页面调入策略

何时调入页 :

  • 预调页策略(空间局部性原理,成功率≤50%)
  • 请求调页策略(一次调入一页,系统开销大)

从何处调入页 :

  • 系统有足够的对换区,可全部从对换区调页。
  • 无足够对换区时,凡不会修改的文件,直接从文件区调入。可能被修改的文件,从对换区调入。
  • 未运行的文件放在文件区,曾运行过且被换出的页面放在对换区。共享页面,若已在内存,则无需再调入。

页面调入过程 :
1 )缺页中断,转入缺页中断处理程序
2 )查找页表,找到该页在外存的物理块
3 )若内存未满,则调入页并修改页表,若内存已满,则按照某种置换算法从内存中选出一页准备换出。如果该页已被修改,则需回写磁盘。
4 )然后把所缺的页面调入内存,修改页表中的相应表项,并计入快表。

缺页率 = 访问页面失败的次数/总的页面访问次数

5.3 页面置换算法

选择合适的页换入,换出。

5.3.1 最佳(Optimal)置换算法和先进先出(FIFO)置换算法

1、最佳(Optimal)置换算法

将永不使用、或者在最长时间内不再被访问的页面淘汰,无法实现,但可以评价其它算法。

某进程分配了三个物理块,进程访问页面走向:
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
在这里插入图片描述
缺页中断:9次 缺页率:9/20 * 100%=45%

2、先进先出(FIFO)页面置换算法

淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。

实现简单:按页面调入内存的先后次序链接成队列,并设置指针,指向最老页面。

某进程分配了三个物理块,进程访问页面走向:
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
在这里插入图片描述
缺页中断:15次 缺页率:15/20 * 100%=75%
缺页率过高,先进先出页面置换算法会出现Belady现象。

Belady现象 :增加物理块无法降低缺页率,违反过程运行规律,与局部性原理相矛盾。

抖动 :指缺页率上升,运行进程频繁处理页面的换进/换出,致使CPU利用率下降的现象。
原因:随着多道程序度的提高,CPU的利用率也随之提高并达到某一峰值,若继续增加多道程序度,则将产生抖动,从而导致CPU的利用率下降。

5.3.2 最近最久未使用(LRU)置换算法

由于无法预测各页面将来的使用情况。因此采用“最近的过去”来近似“最近的将来”。即系统淘汰最近最久未使用的页面。

某进程分配了三个物理块,进程访问页面走向:
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
在这里插入图片描述
缺页中断:12次 缺页率:12/20*100%=60%

2、LRU置换算法的硬件支持

1 )寄存器 :
用于记录某进程在内存中各页面的使用情况。每页配置一个移动寄存器。

当页面被访问时,对应的寄存器的最左边位置1,每隔时间t,将r寄存器右移一位。

发生缺页中断时,找最小数值的r寄存器对应的页面淘汰。

R = Rn-1 Rn-2 …… R2 R1 R0

2 )栈 :

利用特殊的栈来保存当前使用的各个页面的页面号。每当进程访问某页面时,便将该页面的页面号从栈中移出,将它压入栈顶。

栈顶始终是最新被访问页面的编号。
在这里插入图片描述

5.3.3 Clock置换算法

1 )简单的Clock置换算法

为每页设置一个访问位,内存中的所有页面都通过链接指针链成一个循环队列。从替换指针所指向的页开始,被访问时,该位置为1。页面置换时,首先淘汰访问位为0的页;若访问位为1,则重新置为0,暂不换出,当队列中的最后一个页面仍为1,则返回到队首重新检查。

优先为0,为1置0,一边搜索一边置0。
在这里插入图片描述

在这里插入图片描述

2 )改进型Clock置换算法

首选置换页面:既是未访问过的页面;又是未修改的页面(根据局部性原理,刚刚被访问过的页,很可能再次被访问)

访问位A和修改位M可以组合成下面四种类型的页面:

最近没有被访问, 没有被修改(r=0,m=0)

最近没有被访问, 但是被修改(r=0,m=1)

最近被访问过,没有被修改(r=1,m=0)

最近被访问过,也被修改过(r=1,m=1)

算法过程 :

①:从指针当前位置开始,扫描循环队列。把找到的第一个r=0,m=0的页面作为淘汰页面。扫描过程中不改变“访问位”

②:如果①失败,再次从原位置开始,查找r=0且m=1的页面,把找到的第一个这样的页面作为淘汰页面,而在扫描过程中把指针所扫过的页面的“访问位”r置0

③:如果②失败,指针再次回到了起始位置,由于此时所有页面的“访问位”r均己为0,再转向①操作,必要时再做②操作,此时一定可以找到可淘汰的页面。

该算法与简单的Clock算法相比,减少了磁盘的I/O操作次数,但算法本身的开销将有所增加。

5.3.5 访问内存的有效时间

有效时间 = ( 1 - P )* 存储访问时间 + P * 缺页中断时间

P :缺页率

5.5 请求分段存储管理方式

5.5.1 请求分段中的硬件支持

1、请求段表机制
在这里插入图片描述
存取方式:只执行、只读、允许读/写
访问字段A:记录该段被访问的频繁程度。
修改位M:进入内存后,是否修改
存在位P:记录本段是否调入内存。
增补位:记录段在运行中是否动态增长。
外存始址:记录段在外存中的起始盘块号。

2、缺段中断机构
在这里插入图片描述

3、地址变换机构

分段 + (请求调段 +调段置换)

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从今天起请叫我小张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值