请教关于虚拟存储器的问题,谢谢!

虚拟存储器究竟是什么东西?真的就指硬盘上分配的一个交换区域??!!我的第一种猜想是: 虚拟存储器就是硬盘上分配的一个交换空间。如果是,那么这块交换区域怎样确保32位机每个进程都有4G的虚拟存储器?怎样使每个进程的虚拟存储器结构都一致?而程序启动是把其所有的代码或者数据都拷贝一份副本到这个交换区域,以实现将来需要时的换入换出(pagging)?我的第二种猜想是: 虚拟存储器是一个抽象的概念,4G的虚拟存储器只是一个进程的页表(加入只分页)每一栏所能覆盖的所有区域,而统一的虚拟存储器结构,是各个进程的页表里面的条目中的地址划分都是一致的。而另一方面,程序的数据和代码不用拷贝到交换区域,当需要换入时直接换入内存,因为页表已经指向了其在应盘中的位置,硬盘的交换区域,只是进程在动态申请分配空间时,比如new一个对象,当内存空间不足,则需要用到硬盘的swap区域来辅助。我个人倾向于第二种猜想,但是上网查了些资料,很多说虚拟存储器是硬盘的一个交换区域,必要时拿来当内存用。而且windows的确可以设定虚拟内存的空间大小。我看了不少书籍也搞不清楚,恳请有深入研究过的朋友指点。谢谢!
2026年09月19日 11:25
有2个网友回答
网友(1):

个人说法:

1、windows下的,pagefiles.sys。称为:虚拟内存页面文件。
简单点说,就是将硬般的存储区域划分出来,生成一个虚拟RAM进行数据交换。

2、但它始终只是虚拟RAM,和实际上的RAM的区域和地址码位置还是有本质的不同。系统只是借助磁盘的区块进行模拟。

3、它不能直接充当物理内存来使用。但本质上,它所扮演的角色往往要比物理内存直接访问兼容性要来的更稳定,更安全。但性能和访问速度,直接和硬盘性能有着直接关系。

网友(2):

似乎你说的虚拟内存。
个人理解,当我们所用内存ram不足时,windows会把暂时用不到的,或挂起的应用转存到虚拟内存中,这样,ram中只保留位置信息,这样当我们需要再次调用时,系统可以直接从中读取出来,而不必从磁盘中重新搜索,从而提高读取效率。