2024年3月15日发(作者:)
【Word版本下载可任意编辑】
什么叫做虚拟内存
什么叫做虚拟内存呢?有很多朋友会从“虚拟磁盘”、
“虚拟光驱”等概念简单推广到内存方面,认为用做内存交
换和扩展空间的“磁盘页面文件”就是“虚拟内存”,因为
不是内存芯片,却要做内存的用途,所以是“虚拟”的内存。
其实这种观点是错误的!
那么到底什么叫做虚拟内存呢?简而言之,所谓虚拟内
存就是多路程序进程共享计算机物理内存的方法。
我们知道WINDOWS是一个所谓“抢先多任务系统”,
就是说,WINDOWS下同时可以有多个程序在运行,但每
次真正运行的所谓“活动进程”却只有一个,那些被别人“抢
先”的进程则处于一种“挂起”状态,就是说整个进程及其
内存空间的内容都要被保存下来,以便随时“抢到先手”时
再运行。
这样,系统有限的内存空间就必须有一个分配机制,如
果简单平均分配,则势必造成本来来就捉襟见肘的内存空间
的巨大浪费。为解决这个问题,一个简单的方法就是把内存
尽量优先分配给“活动进程”。至于那些处于“挂起”状态
的进程的所占用内存,如果物理内存足够的话,就维持原状;
一旦出现物理内存缺陷的现象,就把这些进程的内存空间的
内容原封不动地存到一个文件里。这就是磁盘交换文件的来
历。
这样一来,如果把这些内存搬进般出的工作,交给应用
程序来做,势必造成程序之间的对话、协调、以及安全保护
1 / 3
【Word版本下载可任意编辑】
等一系列难以解决的问题。所以WINDOWS开发者设计了
一套所谓的“虚拟内存系统”,让所有的应用程序都运行在
自己独占的私有所谓“虚拟地址空间”里,这个“虚拟地址
空间”对于应用程序的开发者来说,使用起来就象单一任务
操作系统下DOS下单独访问实际物理地址一样,完全不需
要考虑内存的调度、共享、安全等等。而这些调度、共享、
安全等等的工作,则完全交由WINDOWS虚拟内存系统来
完成。
磁盘交换文件为什么被称做“页面文件”(Pagefile)呢?,
这是因为文件内部的组织方式不同。一般的磁盘文件在打开
的时候都是由系统一次顺序读入内存,所以是顺序地存放在
一个尽可能连续的磁盘区域。但内寸的使用不同,系统需要
随机地快速访问每一个地址,所以WINDOW的(虚拟)内
存管理系统对内存地址采取了“分页管理”的方法,把内存
分割成为许多小块,加上许多用与“寻址”的信息,方便系
统迅速地找到每一个内存地址。WINDOWS磁盘交换文件
内部采用了和内存空间完全一样的格式,所以叫做页面文件。
这当然是为了管理和“搬运”的方便。
磁盘交换文件采用页面方式管理,还有一个好处,就是
可以直接当作扩展内存来使用。可能很多朋友已经知道,
WINDOWSNT操作系统分配给每个进程4个G的虚拟内存
空间,而多数PC机所能提供的全部物理内存都是远远不够
的。事实上很多大型的应用程序实际上也需要占用越来越多
的内存空间。遇到这种情况,系统虚拟内存管理系统,就会
使用页面文件(Pagefile)的一部分来充当活动的扩展内存内
存空间。
2 / 3
【Word版本下载可任意编辑】
说到磁盘交换文件的使用方式,再简单地提一下一个相
关的话题,就是前不久讨论过的磁盘“碎片”问题。由于一
般的磁盘文件都是顺序使用的,所以访问效率对于碎片问题
比较敏感;而页面文件由于是采用了随机访问的方式,所以
相对就没有那么敏感。但是由于页面文件一般都比较大,而
且由于受系统保护,一般DEFRAG程序又无权对它开展整理。
所以页面文件一旦产生碎片,就有可能会造成其它文件产生
更多的更难于整理的碎片。
再者,系统为了提高页面文件的扩展性和和适应某些
“大食量”程序的需要,同时也为了照顾早期较小的硬盘的
使用者,缺省都采用了动态分配页面文件的方式,就是说,
一开始分配一个较小的页面文件,需要时系统再自动加大这
个文件的尺寸,因而比较容易造成碎片。所以,如果你的磁
盘空间足够,请把页面文件尺寸定义为一个固定值。
3 / 3


发布评论