这里写目录标题
虚拟内存简介
虚拟内存概念
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存,而实际上该内存通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。
虚拟内存的容量
虚拟内存的最大容量是由计算机的地址结构(cpu寻址范围)确定的,虚拟内存的实际容量=min(内存和外存容量之和,cpu寻址范围)。
虚拟内存的优点
- 可以处理比实际内存更大的文件或者数据。
- 可以让系统运行更多的程序实例,从而实现更加高效的内存利用。
虚拟内存的缺点
- 加大了对硬盘的读写,如果内存严重不足,会频繁引起内存和磁盘进行swap,从而降低系统性能。
- 虚拟内存本质上是充分了磁盘空间,但同时提供用户使用的实际磁盘空间也会变小。
如何实现虚拟内存(请求分页、请求分段、请求段页式)
虚拟内存的实现需要建立在离散分配的内存管理方式基础上。回忆一下传统的离散分配存储管理方式:基本分页存储、基本分段存储管理、基本段页式存储管理。
其对应虚拟内存的实现就是:请求分页存储管理、请求分段存储管理、请求段页式存储管理。
虚拟内存的实现与离散分配存储管理方式的主要区别在于虚拟内存多了以下三个步骤:
- 在程序执行过程中,当所访问的信息不在内存时,需要由操作系统负责将所需信息从外存调入内存,然后继续执行程序。(即操作系统要提供请求调页功能)
- 若内存空间不够,需要由操作系统负责将内存中暂时用不到的信息换带外存。(即操作系统要提高页面置换功能)
- 在请求调页和页面置换后,除了对慢表和快表进行修改外,还要对请求页表中新增的表项进行修改。