虚存
前言
首先我们需要知道局部性原理的概念
经过研究表明:程序在执行时呈现局部性原理
局部性原理表现在时间和空间两方面
- 时间局部性: 一条指令执行后,他很可能再次被执行。
- 空间局部性: 某一存储单元被访问后,与该存储单元相邻的单元也可能被访问。
即一个程序被执行后,下次执行的指令大概率是这条指令或者他邻近的单元
而虚存就是根据局部性原理出现的。
定义:
虚拟存储器:
- 仅把程序的一部分装入内存便可运行程序的存储器系统
- 虚拟存储器具有请求调入和置换功能
- 虚拟存储器是从逻辑上对内存容量进行扩充
为什么会出现虚拟存储器:
作业:计算机中的作业是为了完成某个用户的计算任务所做工作的总和
传统的存储方式具有
一次性:
作业必须一次全部调入内存后才能开始运行,这样一些很大的作业无法全部调入内存,导致作业无法运行,同时多个作业要求运行时,内存无法容纳这么多个作业,只有少量的作业能够运行,多道程序并发度下降。
驻留性:
一旦作业被装入内存就会一直驻留到内存。
我们可以看出传统的存储方式是不好的,很多暂时使用不到的数据也会长期驻留在内存中,内存利用率不高。
关于虚存
为了解决传统存储方式的弊端,出现的虚拟存储器这一概念。
虚存的出现使程序的一小部分调入到内存便可运行。
根据局部性原理,我们只需要将程序最近用到的一部分数据调入到内存即可,当需要的其他的数据时,操作系统
负责将需要的这部分数据调入的内存,内存不够时,操作系统通过置换算法再将短时间内不会再使用的资源置换
出去,这样大大提高了内存的利用率。同时根据这种请求调入的形式,让用户看到的内存容量是很大的,用户给
出一条虚地址或逻辑地址,虚拟存储器给出该地址对应的数据(通过辅助硬件将虚地址映射到主存的实地址),对
用户来说,计算机内有一个比内存大的多的内存,这就是虚拟内存的概念。
虚拟存储的运行速度接近于内存,成本又接近于外存。
但虚存也不是无限大的,他受两方面影响:
- 外存大小
- 指令中的地址长度
虚拟存储管理:
- 请求分页式虚拟存储管理
- 请求分段式虚拟存储管理
参考王道操作系统网课