虚拟内存的作用是什么?到底设置多少为好?虚拟内存与虚拟存储有何区别?本文就来对它进行详细的介绍。以下所有步骤均以Windows XP操作系统为例。
1.桌面版windows上经常要设置虚拟内存,尤其是实际内存很小时;设置虚拟内存后,计算机可以运行比实际内存更大的软件;
这个虚拟内存技术,其实主要就是换页技术;将外部存储空间的一部分用来存放内存中暂时不用的东西,就好像它是内存一样,要的时候再把它调进内存,也就是所谓的虚拟了;桌面版windows可以设置这块虚拟内存的位置(位于哪个盘下),及大小,它对应的有一个文件pagefile.sys;
2.虚拟存储技术(虚拟内存技术,这个虚拟内存完全不同于上面所说的虚拟内存),就是程序员在编写程序时使用的地址都从0开始,到运行程序时再进行重定位;常将这个从0开始的地址空间,叫虚拟存储空间(有人也叫虚拟内存空间);这样做有一个极大的好处:程序员不用管它写的程序最后会被放到内存的什么地方执行。
这个虚拟操作系统的支持,当然更虚拟CPU硬件的支持,像8051单片机好像就不支持这个,像S3C2410这样的arm芯片就支持;这个硬件就是MMU(内存管理单元)
3.不要提到虚拟内存或虚拟存储,就以为计算机可以运行比程序实际需要的内存大的程序;这种想法肯定是错误的。很多的嵌入式系统,比如windows mobile手机它支持2G的虚拟存储空间,但不支持换页技术,这就表示它不能运行超过它实际可用内存大小的软件;因为这里说的2G只是程序员可用的地址空间,它并不能把当前运行程序的一部分放置到外存上,它必须完全满足运行的程序需要的内存才能运行这个程序;当然如果windows mobile手机配置了超过2G的内存,它当然可以运行这样的大程序了。
实际上它们的英语单词好像是一样的。但意思不一样。一个就是指虚拟出的内存;一个表示一个技术,这个技术需要MMU和操作系统的支持。虚拟内存是Windows XP为作为内存使用的一部分硬盘空间。即便物理内存很大,虚拟内存也是必不可少的。虚拟存储简单地说就是使主机操作系统看到的存储与实际物理存储分开。
……