Linux进程的虚拟内存结构

Linux进程的虚拟内存结构

我正在读一本教科书,其中将虚拟内存显示为: 在此输入图像描述

Linux 还将一组连续的虚拟页面(大小等于系统中 DRAM 的总量)映射到相应的一组连续的物理页面。这为内核提供了一种访问物理内存中任何特定位置的便捷方法

我在这里有点困惑。我认为它指的是第二部分“物理记忆”。但是 i 是访问物理内存中任何特定位置的便捷方式是什么意思?如果要访问某个特定位置,CPU仍然需要发出一条具有虚拟地址的指令,该虚拟地址可以被TLB使用,然后会产生一个物理地址来访问物理内存,那么“物理内存”部分到底是什么?为了?

答案1

映射物理内存的部分实际上旨在作为访问物理内存的便捷方式。在具有此映射的架构上,例如x86-64,访问任意物理地址都可以通过访问虚拟地址+addr来完成。page_offset_baseaddr

如果没有此映射,访问给定的物理地址就需要查找包含该地址的映射,或者如果不存在,则创建一个。这要贵得多。

相关内容