虚拟存储器管理

一、虚拟存储器概述

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

常规存储管理 存在的问题
一次性 程序必须全部装入内存才能运行
驻留性 作业一直驻留内存直到完成 一些不用或者暂时不用的程序(数据)占据了大量的内存空间,浪费空间

局部性原理

程序运行的局部性:程序在一个有限的时间内,访问过的代码和数据集中在有限的地址范围内。

局限性又表现在下述的两个方面:

1)、时间局部性:即刚被访问过的单元在很短的时间内还将被访问。
2)、空间局部性:即被访问过的单元的邻近单元也将被访问。

二、虚拟存储器的定义和特征

虚拟存储器:是指仅把作业的一部分装入内存便可运行作业的存储器系统,具有请求调入功能置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。

1)、多次性

​ 多次性是相对于传统存储器管理方式的一次性而言的,是指一个作业中的程序和数据无需在作业运行时一次性地全部装入内存,而是被分成多次调入内存运行。

2)、对换性

​ 在进程运行期间,允许将那些暂不使用的代码和数据从内存调至外存的对换区(换出),待以后需要时再将它们从外存调至内存(换进)。

​ 甚至还允许将暂时不运行的进程调至外存,待它们重又具备运行条件时再调入内存。

3)、虚拟性

​虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量。

虚拟性是以多次性和对换性为基础的,而多次性和对换性又是以离散分配为基础的。

三、虚拟存储器的实现方法

虚拟存储器的工作原理:

置换
基于置换算法

请求调入
基于中断机制

部分装入
基于局部性原理

基于离散的存储管理
页式虚拟存储管理方式 —— 请求分页系统
段氏虚拟存储管理方式 —— 请求分段系统

四、请求分页管理方式

请求分页的硬件支持
​ 为了实现请求分页,系统必须提供一定的硬件支持,计算机系统除了要求一定容量的内存和外存外,还需要请求页表机制缺页中断机构以及地址变换机构

1、请求页表机制

作用:仍然是将用户地址空间中的逻辑地址映射为内存空间中的物理地址。
2、缺页中断机构

当要访问的页面不在内存时,便产生一缺页中断,请求OS将所缺页调入内存。
![在这里插入图片描述](https://img-blog.csdnimg.cn/0ef329d9255440aebdf1aa5d793665aa.png在这里插入图片描述

五、页面置换算法

“抖动”(Thrashing):即刚被换出的页很快又要被访问,需要将它重新调入,此时有需要再选一页调出;而此刚被调出的页很快又被访问,又需将它调入,如此频繁地更换页面,以致一个进程在运行中把大部分的时间花费在页面置换工作中,我们称该进程发生了“抖动”。

简而言之:“抖动”是页面在内存和外存之间频繁交换的现象。

页面置换策略的目标是:
1、具有较低的缺页率(高命中率)
2、避免程序发送“抖动“”

1、最佳置换算法(OPT,optimal)

只能作为一个“标准”,去评价其他算法

思想:置换永不再用或者**最长时间内(未来)**不再被访问的页面

举例:
在这里插入图片描述
优点:
缺页率最低,性能最好

缺点:
实际上无法实现,无法预知哪一个页面是未来最长时间内不再被访问过的;

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

思想:置换在内存中驻留时间最久的页面

举例:
在这里插入图片描述优点:
实现简单

缺点:
与进程实际运行的规律不相适应,进程只有按顺序访问地址空间时,页面命中率最理想。

异常现象:Belady现象(随着物理块数的增加,缺页率不减少反而增加)

3、最近最久未使用(LRU,Least Recently Used)

思想:置换最长时间未被使用的页面

实现方式:

赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来经历的时间 t。当需要淘汰一个页面时,选择现有页面中 t 值最大的页面进行置换。
举例:
在这里插入图片描述

优点:性能接近最佳算法

缺点:需要记录页面使用时间的先后关系,硬件开销太大。

4、最少使用置换算法(LFU,Least Frequently Used)

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

举例:LFU置换算法的页面访问图,与LRU置换算法的访问图完全相同。
在这里插入图片描述
特点:
要求较多的硬件支持,使得其实现所需要的成本较高。
故在实际应用中,大多采用LRU的近似算法。Clock算法就是用得较多的一种LRU近似算法。

5、Clock置换算法
是LRU的一种近似算法

简单的Clock算法
由于该算法是循环检查个页面的使用情况,故称为:Clock算法。
执行过程:

1)、利用简单Clock算法时,只需为每页设置一位访问位,再将内存中的所有页面都通过链接指针连接成一个循环队列。

2)、当某页被访问过时,其访问位置被置为 1。置换算法在选择一页淘汰时,只需检查页的访问位。如果是 0,就选择该页换出;

3)、若为 1,则重新将它置为 0,暂不换出,给予该页第二次驻留内存的机会,再按照 FIFO 算法检查下一个页面。

4)、当检查到队列中的最后一个页面时,若其访问位仍为 1,则再返回到队首检查第一个页面。

在这里插入图片描述

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值