由CPU在程序运行时生成。逻辑地址是虚拟地址, 因为它实际上并不存在, 因此也称为虚拟地址。该地址用作CPU访问物理内存位置的参考。逻辑地址空间一词用于表示程序角度生成的所有逻辑地址的集合。
称为内存管理单元的硬件设备用于将逻辑地址映射到其相应的物理地址。
实际地址
标识所需数据在内存中的物理位置。用户从不直接处理物理地址, 而是可以通过其相应的逻辑地址进行访问。用户程序会生成逻辑地址, 并认为程序正在此逻辑地址中运行, 但是程序需要物理内存才能执行, 因此, 在使用逻辑地址之前, MMU必须将其映射到物理地址。术语"物理地址空间"用于与逻辑地址空间中的逻辑地址相对应的所有物理地址。
将虚拟地址映射到物理地址
操作系统中逻辑地址和物理地址之间的差异
- 逻辑地址和物理地址之间的基本区别在于, 逻辑地址是由CPU从程序角度生成的, 而物理地址是存储单元中存在的位置。
- 逻辑地址空间是由CPU为程序生成的所有逻辑地址的集合, 而映射到相应逻辑地址的所有物理地址的集合称为物理地址空间。
- 逻辑地址在内存中不存在, 而物理地址是内存中可以物理访问的位置。
- 相同的逻辑地址是通过编译时和加载时地址绑定方法生成的, 而它们在运行时地址绑定方法上却彼此不同。请参考这个有关详细信息。
- 逻辑地址是由CPU在程序运行时生成的, 而物理地址是由内存管理单元(MMU)计算的。
比较表:
参数器 | 逻辑地址 | 实际地址 |
---|---|---|
基本的 | 由CPU生成 | 存储单元中的位置 |
地址空间 | 逻辑地址空间是CPU参照程序生成的所有逻辑地址的集合。 | 物理地址是映射到相应逻辑地址的所有物理地址的集合。 |
能见度 | 用户可以查看程序的逻辑地址。 | 用户永远无法查看程序的物理地址。 |
代 | 由CPU产生 | 由MMU计算 |
访问 | 用户可以使用逻辑地址访问物理地址。 | 用户可以间接访问物理地址, 但不能直接访问。 |