操作系统 虚拟存储器的概念

虚拟存储器

在这里插入图片描述

程序装入内存时可能会出现如下问题
  • 程序太大,要求的空间超出了内存总容量
  • 有大量作业要求运行,但内存不能容下所有作业
常规存储器管理方式的特征
  • 一次性:要求作业全部装入内存才能运行
  • 驻留性

许多不用或暂时不用的程序占用了大量内存空间,而其他程序却无法装入!这是否必要?

局部性原理

1968年, Denning.P指出

  • 程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下仍是顺序执行
  • 过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但经研究看出,过程调用的深度在大多数情况下都不超过5
  • 程序中存在许多循环结构,这些虽然只由少数指令构成,但是它们将多次执行
  • 程序中还包括许多对数据结构的处理,如对数组进行操作,它们往往都局限于很小的范围内

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

  • 时间局限性
    • 如果程序中的某条指令一旦执行, 则不久以后该指令可能再次执行
    • 如果某数据被访问过, 则不久以后该数据可能再次被访问
    • 典型原因是因在程序中存在着大量循环操作
  • 空间局限性
    • 一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围之内,其典型情况便是程序的顺序执行

虚拟存储器的基本思想是:

  • 程序、数据、堆栈的大小可以超过内存的大小,操作系统把程序当前使用的部分保留在内存,而把其它部分保存在磁盘上,并在需要时在内存和磁盘之间动态交换

虚拟存储器支持多道程序设计技术

虚拟存储器定义
  • 是指具有请求调入功能和置换功能, 能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而其成本却又接近于外存。
    在这里插入图片描述
  • 注意:一个虚拟存储器的最大容量是由计算机的地址结构确定的。如:若CPU的有效地址长度为32位,则程序可以寻址范围是0~(232)-1 ,即虚存容量为 4GB。
  • 虚拟存储器的容量与主存的实际大小没有直接的关系,而是由主存与辅存的容量之和所确定。

虚拟存储器最基本的特征是离散性,在此基础上又形成了多次性对换性的特征。其所表现出来的最重要的特征是虚拟性

  • 多次性
    • 一个作业被分成多次调入内存运行
  • 对换性
    • 允许在作业的运行过程中进行换进、换出
  • 虚拟性
    • 能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际内存容量

以CPU时间和外存空间换取昂贵内存空间,这是操作系统中的资源转换技术

虚拟存储器的实现都是建立在离散分配的存储管理方式基础上的,主要有:

  • 请求分页系统
  • 请求分段系统
请求分页系统
  • 在分页系统的基础上增加了请求调页功能和页面置换功能
  • 硬件支持
    • 请求分页的页表机制,它是在纯分页的页表机制上增加若干项而形成的,作为请求分页的数据结构;
    • 缺页中断机构,即每当用户程序要访问的页面尚未调入内存时 便产生一缺页中断,以请求OS将所缺的页调入内存;
    • 地址变换机构, 它同样是在纯分页地址变换机构的基础上发展形成的
  • 实现请求分页的软件
    • 用于实现请求调页的软件和实现页面置换的软件
请求分段系统

为了实现请求分段,系统同样需要必要的硬件支持:

  1. 请求分段的段表机制。这是在纯分段的段表机制基础上,增加若干项而形成的;
  2. 缺段中断机构。每当用户程序所要访问的段尚未调入内存时,产生一缺段中断,请求OS将所缺的段调入内存;
  3. 地址变换机构
    与请求调页类似,实现请求调段和置换功能也需要得到OS的支持。

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值