物理地址和逻辑地址是计算机内存管理中的两个重要概念。理解这两个概念对于理解计算机如何管理和访问内存至关重要。

物理地址

物理地址(Physical Address) 是指计算机内存硬件中实际存在的地址。它是内存单元在计算机内存中的实际位置,由内存管理单元(MMU, Memory Management Unit)直接访问。物理地址是由硬件层次的电路和内存管理器使用的真实地址。

逻辑地址

逻辑地址(Logical Address),也称为虚拟地址(Virtual Address),是程序在运行时生成的地址。这些地址在程序的视角下看是连续的,并由操作系统和硬件共同管理,转换为实际的物理地址。

地址转换

计算机系统中通常有一个硬件组件称为内存管理单元(MMU),它负责将逻辑地址转换为物理地址。这种转换通常通过一个叫做页表(Page Table)的数据结构实现。

示例:地址转换过程

假设一个进程生成了一个逻辑地址0x1234,而这个地址需要映射到物理内存的某个位置。地址转换过程如下:

  1. 程序生成逻辑地址:假设程序生成了一个逻辑地址0x1234。
  2. 通过页表查找:MMU查找该逻辑地址对应的页表条目,假设该条目将逻辑地址0x1234映射到物理地址0x5678。
  3. 访问物理地址:MMU将逻辑地址0x1234转换为物理地址0x5678,并访问该物理地址对应的内存位置。

地址空间

虚拟内存

现代操作系统使用虚拟内存技术,使每个进程似乎拥有独立的、连续的内存空间,这实际上由物理内存和磁盘上的交换空间共同构成。

总结