简而言之,根据我对内存管理的理解,处理器会产生虚拟地址。这些地址由 MMU 使用每个进程的地址表转换为相应的物理地址(在需要时,中间有 TLB 和页面错误)。
我的问题是处理器是否总是产生虚拟地址?在地址空间(用户/内核)、处理器模式(用户/内核)和上下文(进程/系统)方面,处理器何时始终产生物理地址?
最佳答案
内存通常对虚拟地址或段一无所知,这是 CPU 的概念,它只是内存,是可寻址和可读/可写位的集合。处理器使用物理地址与内存通信。许多简单的处理器(尤其是旧处理器或用于特殊嵌入式用途的处理器)没有 MMU、虚拟地址或特权模式。具有 MMU 和虚拟地址的那些通常要么从禁用的开始,要么首先使用固定映射,否则如果根本没有映射,任何事情都无法工作。
因此,物理地址始终在使用中,而虚拟地址则取决于所使用的 CPU 和软件。
关于linux - 处理器和虚拟/物理地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32844209/