请问虚拟内存,页文件,物理内存,三者区别?

解决方案 »

  1.   


    虚拟内存:你在WIN32程序设计中使用的地址,99.99%用的都是虚拟内存地址.虚拟内存是一种内存利用技术,主要是解决程序访问的地址和实际物理地址的分离,但毕竟程序最终要访问实际内存,所以这个技术也要提供程序访问的地址和实际物理地址的映射方式.实现了程序访问的地址和实际物理地址的分离解决了两个问题
    1.任何一个程序都有自己的连续的地址空间,而不用管理内存地址对程序的影响,也就是说一个程序被加载到了物理地址A,或者B但你在程序里看到的都是你的设定地址,比如0x00040000(DLL不算),而且物理内存可以不连续
    2.程序里看到的地址可以没有被映射到实际物理内存.这样就可以高效利用内存资源.物理内存:你电脑主板上的那几条.页文件:既然程序里看到的地址可以没有被映射到实际物理内存,那么这些东西保存在那里呢?肯定是硬盘了.在程序不需要某段数据或代码时他们就被保存到硬盘上,这个保存临时数据代码的文件就是页文件,WIN32下,你在我的电脑属性里面可以设置他的大小,一般它被保存在系统盘符下面,是一个隐藏文件,LINUX好象是单独在硬盘上开了一个小的分区来保存他们.关于虚拟内存地址与实际物理地址的映射是CPU的分页机制自动完成的,只需要系统给予一定的初始化就可以.页文件是系统程序完成的.一家之言,欢迎拍砖,希望对LZ有帮住,有就给分!