这个关于虚拟内存的[wiki article]说:
然后,该进程开始在exe文件中执行字节。然而 只有这个过程可以使用或设置' - ' VAS中的值是要问的 操作系统将它们映射到文件中的字节。使用VAS的常用方法 这种方式的内存是将它映射到页面文件。
图表如下:
0 4GB
VAS |---vvvvvvv----vvvvvv---vvvv----vv---v----vvv--|
mapping ||||||| |||||| |||| || | |||
file bytes app.exe kernel user system_page_file
我不理解values in its VAS is to ask the OS to map them to bytes from a file.
这里的系统页面文件是什么?
答案 0 :(得分:1)
首先,我无法想象维基百科中存在如此糟糕的文章。在能够理解所描述的内容之前,必须是熟悉该主题的专家。
假设您理解了本文的其余部分,“ - ”部分表示进程可用的4GB地址空间内的未分配虚拟地址。所以句子“进程可以在其VAS中使用或设置' - '值的唯一方法是要求操作系统将它们映射到文件中的字节”意味着分配虚拟内存地址,例如在调用VirtualAlloc()的Windows本机程序中,或调用malloc()的C程序分配一些内存来存储程序数据,而这些内存尚未存在于当前进程的虚拟地址空间中。
当Windows将内存分配给进程地址空间时,它通常会将这些内存与硬盘中的页面文件相关联。 c:\ pagefile.sys是这个页面文件,它是文章中提到的 system_page_file 。当没有足够的物理页面来满足需求时,内存页面将被换出到该文件。
希望澄清