Skip to content

Latest commit

 

History

History
16 lines (10 loc) · 1.49 KB

虚拟内存.md

File metadata and controls

16 lines (10 loc) · 1.49 KB

为什么需要虚拟内存

对于分页,分段或者段页式这种存储管理方式都有如下两个特点:

  • 一次性:作业全部装入才能执行
  • 驻留性:作业常驻内存直到运行结束

它们均难以满足较大的作业或者较多的作业进入内存执行。

而在程序的执行过程中有一些代码是比较少用到的,例如错误处理或异常情况,而且有的程序还需要长时间的IO操作,导致了内存空间的大量浪费。为此引入了一种可以让作业部分装入就可以运行的存储管理技术,即虚拟内存管理技术。

为什么虚拟内存可以使用,主要是因为[[局部性原理]]。使用虚拟内存可以让程序存在的地址空间与运行时的存储空间分开,程序员可以完全不考虑实际内存的大小,而在地址空间内编写程序。

虚拟内存的特征

基于局部性原理,在程序装入时,一方面可以将程序的一部分装入内存,而将其余部分放在外存,然后启动程序(部分装入)。在程序执行过程中,当访问的信息不再内存中时,再由操作系统将所需的部分调入内存(请求调入)。另一方面,操作系统将内存中暂时不使用的内容置换到外存上,从而腾出空间存放将要调入内存的信息(置换功能)。

从效果上看,计算机系统好像为用户提供了一个存储容量比实际内存大的多的存储器,这种从逻辑上扩充内存容量的存储器系统称为虚拟存储器。