一个进程的页面数量是否取决于内存大小

一个进程的页面数量是否取决于内存大小

我读到过一些文章说,只有进程需要启动的页面才会加载到内存中,然后随着程序的运行,可能会有更多页面被加载到内存中,具体取决于您尝试使用的代码或数据。

这种情况是否总是发生,还是取决于您有多少内存以及已加载的内容?例如,如果您只启动了一个进程并且有大量内存,那么是否所有可装入内存的页面都会被加载,还是它们会根据您的操作进行加载?

答案1

是的,这种情况总是会发生。这根本不取决于你有多少 RAM。

实际情况是,如果系统内存更多(其他条件相同),进程将被允许保留更多页面,而不是忍受“工作集替换”。当进程想要在页面中发生故障,但由于可用内存有限,系统会强制执行进程工作集限制时,就会发生工作集替换。在这种情况下,进程必须为其引入的每个页面从其工作集中释放一个页面。

因此,当您查看大内存系统上的进程时,您会发现它们通常都占用比内存少得多的系统更多的 RAM(更大的工作集)。但这并不是因为任何预加载。而是因为稍后没有丢失页面。

相关内容