| 在采用虚拟存储器的系统中,程序员都在一个同样的虚拟地址空间中写程序。在程序装入系统运行时,操作系统按照某种存储管理机制(分段、分页、段页)把用户程序的一部分或全部放到内存中,并把存放的物理地址信息记录到段表或页表中,以建立虚拟地址空间和物理地址空间的映射。实现这种映射的过程称为程序重定位,它建立了逻辑地址和物理地址的映射关系,实现了逻辑地址向物理地址的转换。所以,重定位和地址转换是同一个概念。
有两种重定位方式:一种方式通过链接程序或加载程序进行地址转换而实现程序重定位,这种方式下,程序执行时每条指令中的地址已经是物理地址,称为静态重定位;另一种方式是在程序执行过程中由硬件实现地址转换,称为动态重定位。
|