我从维基读到有关虚拟地址空间(VAS)的内容。
有一点我不明白,我不确定我是否理解正确。 这是它:
应用程序的EXE文件映射到VAS。进程中的地址VAS映射到exe文件中的字节。操作系统管理映射:
0 4GB VAS |---vvvvvvv------------------------------------| mapping |-----| file bytes app.exe
我的愚蠢问题是'映射到VAS'是什么意思? 这是否意味着exe文件将被加载到物理内存中?
答案 0 :(得分:1)
VAS,顾名思义,是一个虚拟空间,因此它不需要与物理空间相关。这取决于内存管理器在哪里加载它(物理内存或虚拟内存或其他)。
答案 1 :(得分:0)
每个进程都有自己的地址空间,操作系统管理虚拟地址空间与该页内存的物理地址之间的映射(在某些时间点可以在磁盘上,或可以在RAM中。)
当进程从其虚拟地址空间请求读取时,操作系统可以处理,其中该页面实际驻留在磁盘上(这是发生页面错误时)。同样,在运行可用内存很少的计算机上,这就是因为操作系统在磁盘和物理内存之间交换页面时磁盘可能会出现抖动的原因。