编译后,每个目标模块都从0号单元开始编址,这称为该目标模块的相对地址(逻辑地址)。当链接程序将各个模块链接成一个完整的可执行目标程序,链接程序顺序依次按各个模块的相对地址构成统一的从0号单元开始编址的逻辑地址空间(或虚拟地址空间),进程在运行时,看到和使用的地址都是逻辑地址,用户程序和程序员只需要知道逻辑地址空间,而内存管理的具体机制则是完全透明的。不同进程可以有相同的逻辑地址,因为这些相同的逻辑地址可以映射到主存的不同位置。
物理地址空间是指内存中物理单元的集合,它是地址转换的最终地址,进程在运行时执行指令和访问数据,最后都要通过物理地址从主存中存取。当装入程序将可执行代码装入内存时,必须通过地址转换将逻辑地址转换成物理地址,这个过程称为地址重定位
操作系统通过内存管理部件将进程使用的逻辑地址转换为物理地址空间。进程使用虚拟内存空间中的地址,操作系统在相关硬件的协助下,将它转换传承真正的物理地址。逻辑地址通过页表映射到物理内存,页表由操作系统维护并被处理器引用