物理地址和逻辑地址是计算机内存管理中的两个重要概念。理解这两个概念对于理解计算机如何管理和访问内存至关重要。
物理地址(Physical Address) 是指计算机内存硬件中实际存在的地址。它是内存单元在计算机内存中的实际位置,由内存管理单元(MMU, Memory Management Unit)直接访问。物理地址是由硬件层次的电路和内存管理器使用的真实地址。
逻辑地址(Logical Address),也称为虚拟地址(Virtual Address),是程序在运行时生成的地址。这些地址在程序的视角下看是连续的,并由操作系统和硬件共同管理,转换为实际的物理地址。
计算机系统中通常有一个硬件组件称为内存管理单元(MMU),它负责将逻辑地址转换为物理地址。这种转换通常通过一个叫做页表(Page Table)的数据结构实现。
假设一个进程生成了一个逻辑地址0x1234,而这个地址需要映射到物理内存的某个位置。地址转换过程如下:
现代操作系统使用虚拟内存技术,使每个进程似乎拥有独立的、连续的内存空间,这实际上由物理内存和磁盘上的交换空间共同构成。