将页面文件移动到RAM是一个荒谬的想法,只需关闭它并增加RAM。:)
No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.
Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).
内存管理由CPU处理,并且页面文件是打开还是关闭不会对页面的处理产生任何影响。对Windows透明。
页面优先级不会改变,页面将被相同地丢弃。CPU将页面文件用作辅助存储,而不是操作系统。一级(RAM)耗尽时,它不过是二级缓存。
一个快速且非常肮脏的示例:我的机器具有16GB的RAM,没有页面文件。5分钟前,我有13GB的待机空间和2GB的空闲空间,因此我加载了Fallout4。低优先级页面在加载Fallout时被丢弃。
顺便说一句,2008 Technet博客上的“推动Windows内存限制”非常令人误解-我要说的是欺骗。
https://i.stack.imgur.com/wXkmi.png
我也怀疑马克是否写过它,但我希望不会,因为这会改变我对他的看法.....
在这篇文章中有很多漏洞,我很沮丧,没有人考虑到该博客被推荐的频率
- 该页面文件及其位置是由Windows处理的,内存访问到已调出到磁盘的位置的陷阱将由CPU捕获,但会交给操作系统从磁盘检索页面并将其加载。
无论如何,这里是一个不太模糊的描述:
Windows无法达到比CPU更高的地址-这是不可能的。
不管OS的功能如何,它仍然受运行的硬件的限制..因为OS实际上是CPU本身(内部寄存器)。
好的,因此页面文件是HDD上的一个区域,当CPU不能在物理上或体系结构上使用更多的RAM时,它将用于扩展物理地址空间。
例如,在分段x86 32位体系结构上,有两个2GB的RAM段。
一个分配给内核。其余2GB用于用户模式。这就是CPU可以通过32个DRAM引脚使用的全部RAM,但是32位进程具有4GB的可用空间,因此该怎么办。幸运的是,CPU可以使用二级存储(也称为硬盘)来存储额外的2GB页面。因为它具有内部寄存器
,所以进程引用的虚拟页的物理位置不必存储在RAM中。但是它们确实已由CPU存储在某个位置。
CPU不能为应用程序提供所有4GB的RAM,但是可以通过将HDD用作辅助缓存来提供4GB的地址(这就是HDD的全部内容)
通过内部的页面调度机制将页面移入和移出RAM,但这与页面文件不同。分页总是发生...。
底线确实没有那么复杂。在过去的15年左右的时间里,许多最终用户给人留下了印象,即页面文件是操作系统的一部分,而事实并非如此。从来没有。这种误解部分是由英特尔和微软等公司助长的。
RAM是一种快速存储设备,硬盘是一种较慢的存储设备,因此本质上说RAM是1级缓存,硬盘是2级(在这种情况下,不考虑CPU缓存)。两者都可以由CPU访问。
如果CPU没有足够的RAM来存储所需的页面,则可以将HDD用作溢出。如果有足够的RAM,则PF是多余的。
在Core 2之前,Intel处理器具有32pin DRAM总线和32个寄存器,这意味着CPU可以访问4GB RAM和4GB HDD空间(页面文件)。这是体系结构硬件限制,而不是Windows限制。
由于页表占用512MB,因此可用于进程的总数为3.5GB。这就是为什么在具有Intel CPU的Windows中显示3.5GB(直到Core 2为止)的原因。添加GPU,可用的甚至更少。
Xeon可以访问总共32GB的RAM,包括HDD在内的64GB的物理空间(再次为pagefile)。(此^涵盖了PAE,更多内容请添加链接)。
http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html
第三个屏幕截图来源:
系统V应用程序二进制接口AMD64体系结构处理器补充草案0.99.7版
我打算继续改进此答案,并添加源材料和相关信息。我想在信息不足和技术信息过多之间取得平衡。欢迎提出建议。请不要仅仅因为它可能写得不好而拒绝投票。