虚拟地址、逻辑地址、线性地址、物理地址

  • 虚拟地址
    指由程序产生的由段选择符和段内偏移地址组成的地址。
  • 逻辑地址
    指由程序产生的段内偏移。有时候直接把逻辑地址当做虚拟地址。
  • 线性地址
    指虚拟地址到物理地址变换的中间层,是处理器可寻址的内存空间中的地址。程序代码会产生逻辑地址,也就是段中的偏移地址,加上相应的段基址就成了线性地址。如果开启了分页机制,那么线性地址需要再经过变换,转为为物理地址。如果无分页机制,那么线性地址就是物理地址。
  • 物理地址
    指CPU外部地址总线上寻址物理内存的地址信号,是地址变换的最终结果。

虚拟地址到物理地址的转化是体系结构相关的,一般由分段和分页两种方式。以X86CPU为例,分段和分页都是支持的。内存管理单元负责从虚拟地址到物理地址的转化。逻辑地址是段标识+段内偏移的形式。MMU通过查询段表,可以将逻辑地址转化为线性地址。无分页机制时,线性地址就是物理地址,有分页时,MMU还需要查询页表来将线性地址转化为物理地址:逻辑地址(段表)->线性地址(页表)->物理地址。

映射是一种多对一的关系,即不同的逻辑地址可以映射到同一个线性地址上;不同的线性地址也可以映射到同一个物理地址上。而且,同一个线性地址在换页之后,可能被装载到另一个物理地址上,所以这种多对一的映射关系会随时间发生变化。

你可能感兴趣的:(虚拟地址、逻辑地址、线性地址、物理地址)