linux - linux中虚拟内存存在于何处?

标签 linux

因为程序存储在闪存/磁盘上。为了执行它,程序被加载到虚拟内存中,并通过虚拟管理器映射到 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/

相关文章:

mysql - Centos 7上安装MySQL 5.7问题-目录初始化问题

linux - `aide` 宏定义中的正则表达式错误

linux - 期望:没有这样的变量

php - 在solr结果中隐藏路径(id)

c++ - 运算符<<在单例中的重新定义

linux - 使用命令行查找 Linux 系统的目标架构

c - Windows 和 Linux 中 printf 的区别

c - 关于Linux C-UUID

linux - 无法通过管道传输 wget HTTP header 以进行 grep 处理

linux - 在 Linux 终端中,破折号是否可以用作临时文件名?