虚拟内存存储在硬盘的什么位置?

虚拟内存存储在硬盘的什么位置?

如果进程想要访问不在物理内存中的内存地址,操作系统会将物理内存中的页框外包给硬盘以供以后使用。该数据/指令存储在硬盘驱动器的什么位置?

它存储在交换分区上吗?

答案1

您可以运行swapon -s来查看哪些设备和文件正在用于交换。例如,我的科学 Linux 机器说:

[[email protected] ~]$ swapon -s
Filename                Type        Size    Used    Priority
/dev/sda3                               partition   8388600 833408  -1

所以我使用 /dev/sda3 进行交换。另请注意可用于调整交换页分配顺序的优先级字段(请参阅 参考资料man 2 swapon)。

正如一些人所说,如果您用完交换(或交换为零)内存溢出杀手当物理内存变低时可能会开始终止进程​​。

答案2

进程内存页可能会从 RAM 转移到磁盘。这就是所谓的交换或分页(条款是本质上是同义的)。数据被移动到交换空间,并在需要时从交换空间加载回来。 Linux 支持分区(和其他块设备)和文件作为交换空间。

如果相关页面包含从文件加载的数据,则在要回收该页面时,该数据不会写入交换空间:它只是从 RAM 中删除。当进程再次需要该页面时,将从该文件加载数据。

相关内容