逻辑地址是由CPU在程序运行时生成的。逻辑地址是虚拟地址,因为它实际上并不存在,因此也称为虚拟地址。该地址用作CPU访问物理内存位置的参考。逻辑地址空间一词用于表示程序角度生成的所有逻辑地址的集合。
称为内存管理单元的硬件设备用于将逻辑地址映射到其相应的物理地址。
物理地址标识所需数据在内存中的物理位置。用户从不直接处理物理地址,而是可以通过其相应的逻辑地址进行访问。用户程序生成逻辑地址,并认为程序正在该逻辑地址中运行,但是程序需要物理内存来执行,因此,在使用逻辑地址之前,必须先通过MMU将其映射到物理地址。术语“物理地址空间”用于与逻辑地址空间中的逻辑地址相对应的所有物理地址。
将虚拟地址映射到物理地址
操作系统中逻辑地址和物理地址之间的差异
- 逻辑地址和物理地址之间的基本区别在于,逻辑地址是由CPU从程序角度生成的,而物理地址是存储单元中存在的位置。
- 逻辑地址空间是CPU为程序生成的所有逻辑地址的集合,而映射到相应逻辑地址的所有物理地址的集合称为物理地址空间。
- 逻辑地址在内存中不存在,而物理地址是内存中可以物理访问的位置。
- 相同的逻辑地址是通过编译时和加载时地址绑定方法生成的,而它们在运行时地址绑定方法上却彼此不同。有关详细信息,请参考此内容。
- 逻辑地址是由CPU在程序运行时生成的,而物理地址是由内存管理单元(MMU)计算的。
比较表:
Paramenter | LOGICAL ADDRESS | PHYSICAL ADDRESS |
---|---|---|
Basic | generated by CPU | location in a memory unit |
Address Space | Logical Address Space is set of all logical addresses generated by CPU in reference to a program. | Physical Address is set of all physical addresses mapped to the corresponding logical addresses. |
Visibility | User can view the logical address of a program. | User can never view physical address of program. |
Generation | generated by the CPU | Computed by MMU |
Access | The user can use the logical address to access the physical address. | The user can indirectly access physical address but not directly. |