在Windows3.1x中的虚拟内存
当你第一次安装Windows时,或当你在控制面板的虚拟内存对话框改变设置时,Windows就创建了虚拟内存。这部分硬盘空间之所以叫虚拟内存,是因为Windows使用这部分硬盘空间来存储没被使用的部分物理内存 (RAM)。这就允许Windows运行,存储的信息和应用程序比你的电脑的所有物理内存所能放进的更多。
这种让Windows临时和自动移动部分内存到磁盘的方法的好处是,应用程序能指望Windows供给它们所需要的内存。让Windows照顾内存管理问题, 包括虚拟内存,会给PC尽可能好的性能。
Windows95/98中的虚拟内存
在Windows95/98中,虚拟内存交换文件是动态的。这就是说,依赖于你用电脑干什么,交换文件会变大或变小。如果你使用Windows95/98, 你可能不需要如同在Windows3.1x那样选择虚拟内存设置。相反,你可以让Windows95/98的智能系统为你缺省配置虚拟内存。如果你技术先进, 在Windows95/98中你仍然可以自己配置虚拟内存,如果你喜欢的话。
线性内存
内存的三种类型中,线性内存是最难理解的。线性内存是人为的内存,它仅含糊地相关于另外两种内存类型(物理内存和虚拟内存)。
在Windows3.1x中的线性内存
当你启动Windows时,Windows通过它可用的自由物理内存(RAM)乘以4来决定线性内存(或乘以SYSTEM.INI文件的PageOverCommit设置定义的任意数值, 例如,如果这个设置是:PageOverCommit=5,那么就用5乘自由内存)。
线性内存=自由RAM′4(或PageOverCommit=#)
在这个计算中Windows使用的自由物理内存很可能少于你的RAM的总量,因为有使用常规内存和扩展内存的DOS应用程序。在Windows的运行期间, 这个数目(4乘自由RAM)就是所有Windows下运行的应用程序,甚至Windows下运行的DOS应用程序(在一个MS-DOS命令窗口)所能用的最大线性内存。
每当一个应用程序向Windows申请内存时,Windows就给它一部分线性内存范围。当Windows分配线性内存给一个应用程序时,没有物理内存被初始关联到这个线性内存范围.当应用程序实际需要使用物理内存时, Windows才智能地分配物理内存给它。
如果RAM在一个应用程序需要使用它时是可用的话,Windows就用RAM填充应用程序的线性内存范围。如果没有RAM是可用的话,Windows就搜索所有其他有RAM关联的应用程序的线性内存范围。Windows取出最长时间没使用的且分配有RAM的线性内存范围, 把RAM的内容写到虚拟内存交换文件(以备后用),然后重新分配此RAM给新的范围,把旧的较少使用的范围标记为空。如果那些放置到虚拟内存交换文件里的旧信息又被需要的话, Windows就重做这整个过程,重新分配线性内存范围到磁盘。
这个过程甚至施行到你的DOS应用程序。每次当你打开一个Windows里的DOS提示符窗口时,一个(大约)640K的线性内存块就被分配给它。然而如果你运行一个只需要使用这640K中的250K的DOS应用程序, 那么Windows只需要分配250KRAM给DOS提示符窗口。
因此物理内存是RAM,线性内存可以想象成房间。线性内存是放置Windows应用程序使用的RAM的空间。