虚拟地址是由程序产生的由段选择符和段内偏移地址组成的地址。这两部分组成的地址并没有直接访问物理内存,而是要通过分段地址的变换处理后才会对应到相应的物理内存地址。
逻辑地址指由程序产生的段内偏移地址。有时把逻辑地址当成虚拟地址,两者并没有明确的界限。
线性地址是指虚拟地址到物理地址变换的中间层, 是处理器可寻址的内存空间(称为线性地址空间)中的地址。程序代码会产生逻辑地址,或者说段中的偏移地址,加上相应段基
址就生成了一个线性地址。如果启用了分页机制,那么线性地址可以再经过变换产生物理地址。若是没有采用分页机制,那么线性地址就是物理地址。
物理地址是指现在 CPU 外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果。
虚拟地址到物理地址的转换方法是体系结构相关的,一般分段与分页两种方式。以X86CPU为例:
分段分页都是支持的。内存管理单元负责从虚拟地址到物理地址的转化。逻辑地址是段标识+段内偏移 MMU(内存管理单元) 通过查询段表,可以把逻辑地址转换为线性地址。
如果CPU没有开启分页功能,线性地址就是物理地址;如果CPU开启了分页功能,MMU还需要查询业表来将线性地址转换为物理地址;
逻辑地址(段表)--------> 线性地址(页表)------------->物理地址。
映射是一种多对一的关系,即不同的逻辑地址可以映射到同一个线性地址上;
不同的线性地址也可以映射到同一个物理地址上。而且同一个线性地址在发生变化后,也可能被重新装载到另外一个物理地址上,所以这种多对一的关系也会随时间发生变化。
-
顶
- 0