因为程序存储在闪存/磁盘上。为了执行它,程序被加载到虚拟内存中,并通过虚拟管理器映射到 RAM。在其执行过程中是在RAM中。那么虚拟内存存在于何处(它拥有所有.text、.data、.stack、.heap)?
最佳答案
虚拟内存是 RAM 的 View 加上虚拟内存管理器提供的一些交换空间。现代操作系统具有虚拟内存管理器并为进程提供虚拟内存,以便执行程序可以表现得好像它有一个连续的地址空间,其大小不受实际 RAM 的限制。组成虚拟内存的页面或 block 可以映射到RAM中的任何地方,因此连续的虚拟页面需要存储在连续的RAM区域中。或者它们可以换出到页面空间或交换空间,在那里等待直到需要,然后它们被操作系统读取并映射到某个 RAM 页面。
当你说
During its execution process is in RAM.
这并不完全正确。如前所述,属于该进程的部分或所有内存页可能会被换出。
还有一个关于“虚拟”意味着它不存在的答案和评论的词。这是没有意义的。相反,根据韦伯斯特的说法:
being such in essence or effect ...
因此,虚拟内存是某种(因此,它存在!)行为就好像它是内存的东西。
关于linux - linux中虚拟内存存在于何处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17856167/