Linux下有什么虚拟内存管理器

Linux下有什么虚拟内存管理器

Linux 中虚拟内存管理器的用途是什么以及它与 Linux 机器上传统的“交换”有何不同。

答案1

答案2

“虚拟内存”意味着事物(例如进程)获得自己唯一的内存地址空间;一般是从0到CPU可以引用的最大地址。 “页面”——作为单元进行管理的内存块——在进程的虚拟地址空间中被映射到物理内存中的页面等。内存管理单元(CPU 的一部分)使用进程的“页表”将运行程序引用的虚拟地址转换为这些页面映射的物理地址。

虚拟页和物理页之间不需要一一对应;有些虚拟页是未映射的,多个进程中的虚拟页可以映射到同一个物理页。

“交换”使内核能够将页面(通常是不经常使用的页面)从物理内存移动到磁盘,从而释放这些物理页面以供其他内容使用。如果进程尝试引用映射到已交换到磁盘的页面的虚拟地址,则会发生“页面错误”。内核将通过查找可用的物理页、将该物理页的内容交换到磁盘、将原始进程页的内容从磁盘交换到该物理页并更新进程的页表来响应页错误。关联的虚拟页被映射到新的物理页。此时,对该虚拟地址的进程引用可以继续。

相关内容