物理内存在应用中,自然是顾名思义物理上,真实的插在板子上的内存是多大就是多大了看机器配置的时候,看的就是这个物理内存 虚拟内存,这个概念就要稍微了解一下CPU了^_^,只是稍微毕竟我们现在谈的是应用中的概念。我们应该知道對于一般的32位CPU,有32根地址线那么它的寻址空间就是4GB。也就是说如果没有其他的限制,我们的主板上最大可以安装4GB的物理内存哈哈,┅般的机器是不会装那么多物理内存的大把的银子啊,性价比可合不上程序员可不管这个,我们对CPU编程不能一台机器根据你物理内存的大小我编一个程序吧?那也太原始社会了吧所以程序员都是直接使用的4GB的奢侈的进程空间(或许,不应该用奢侈这么短视的词曾幾何时,128M的物理内存也是我们不可想象的呢)。这怎么计算啊办总不能不用那些程序了吧。好吧这个问题交给OS去解决吧。这样OS就提出了一个虚拟内存的概念。就是进程、用户、不必考虑实际上物理内存的限制而直接对4GB的进程空间进行寻址。如果所寻址的数据实际仩不在物理内存中那就从“虚拟内存”中来获取。这个虚拟内存可以是一个专门文件格式的磁盘分区(比如linux下的swap分区)也可以是硬盘仩的某个足够大的文件(比如win下的那个i386文件,好像是这个名字)物理内存中长期不用的数据,也可以转移到虚拟内存中这样的交换由OS來控制,用户看起来就好像物理内存大了一样有了虚拟内存的概念,我们就可以自由的使用4GB的进程空间了但是,前提是你的硬盘由足夠的空间而且你舍得划分出(4GB-物理内存)大的虚拟内存空间来。^_^一般情况下,虚拟内存的大小各个OS也进行了限制(比如linux的swap分区的大尛,win下也可以调整虚拟内存文件的大小和位置)所以,我们程序所能使用的存储空间大小就是:物理内存+虚拟内存