大剑无锋之简单介绍一下虚拟内存【面试推荐】
内存是程序得以运行的基础,如何在有限的内存空间中运行较大的应用程序,曾经是一个难题,为了解决这个问题设计了许多方案,其中最成功的当属虚拟内存技术。
虚拟内存技术可以让系统看上去具有比实际物理内存大得多的内存空间并为实现多道程序的执行创造了条件。
现代操作系统提供了一种对主存的抽象能力叫做虚拟内存,虚拟内存为每个进程提供了一个非常大的、一致的、私有的地址空间。
虚拟内存提供了三个关键能力
- 虚拟内存将主存看成是一个存储在磁盘空间上的地址空间的高速缓存,主存中只保存活动区域并根据需要在磁盘和主存之间来回传送数据。
- 虚拟内存为进程提供了一致的地址空间简化了内存管理
- 虚拟内存保护了每个进程的地址空间不被其它进程破坏
虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称为“分页文件”的空间中。将数据移入分页文件可释放RAM,以便完成工作。 一般而言,计算机的RAM容量越大,程序运行得越快。若计算机的速率由于RAM可用空间匮乏而减缓,则可尝试通过增加虚拟内存来进行补偿。但是,计算机从RAM读取数据的速率要比从硬盘读取数据的速率快,因而扩增RAM容量(可加内存条)是最佳选择。
虚拟内存是Windows 为作为内存使用的一部分硬盘空间。虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文件”就是从这个文件的文件名中来的。 [2]
内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,WINDOWS运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,这部分空间即称为虚拟内存,虚拟内存在硬盘上的存在形式就是 PAGEFILE.SYS这个页面文件。