虚拟内存学习

216 阅读3分钟

虚存

前言

首先我们需要知道局部性原理的概念

经过研究表明:程序在执行时呈现局部性原理

局部性原理表现在时间和空间两方面

  1. 时间局部性: 一条指令执行后,他很可能再次被执行。
  2. 空间局部性: 某一存储单元被访问后,与该存储单元相邻的单元也可能被访问。

即一个程序被执行后,下次执行的指令大概率是这条指令或者他邻近的单元

而虚存就是根据局部性原理出现的。

定义:

虚拟存储器:

  1. 仅把程序的一部分装入内存便可运行程序的存储器系统
  2. 虚拟存储器具有请求调入和置换功能
  3. 虚拟存储器是从逻辑上对内存容量进行扩充

为什么会出现虚拟存储器:

作业:计算机中的作业是为了完成某个用户的计算任务所做工作的总和

传统的存储方式具有

一次性:

作业必须一次全部调入内存后才能开始运行,这样一些很大的作业无法全部调入内存,导致作业无法运行,同时多个作业要求运行时,内存无法容纳这么多个作业,只有少量的作业能够运行,多道程序并发度下降。

驻留性:

一旦作业被装入内存就会一直驻留到内存。

我们可以看出传统的存储方式是不好的,很多暂时使用不到的数据也会长期驻留在内存中,内存利用率不高。

关于虚存

为了解决传统存储方式的弊端,出现的虚拟存储器这一概念。

虚存的出现使程序的一小部分调入到内存便可运行。

根据局部性原理,我们只需要将程序最近用到的一部分数据调入到内存即可,当需要的其他的数据时,操作系统

负责将需要的这部分数据调入的内存,内存不够时,操作系统通过置换算法再将短时间内不会再使用的资源置换

出去,这样大大提高了内存的利用率。同时根据这种请求调入的形式,让用户看到的内存容量是很大的,用户给

出一条虚地址或逻辑地址,虚拟存储器给出该地址对应的数据(通过辅助硬件将虚地址映射到主存的实地址),对

用户来说,计算机内有一个比内存大的多的内存,这就是虚拟内存的概念。

虚拟存储的运行速度接近于内存,成本又接近于外存。

但虚存也不是无限大的,他受两方面影响:

  1. 外存大小
  2. 指令中的地址长度

虚拟存储管理:

  1. 请求分页式虚拟存储管理
  2. 请求分段式虚拟存储管理

参考王道操作系统网课

操作系统 第四版 刘振鹏 张明 王煜著