重定位
将程序逻辑地址空间转换为物理地址空间的过程
重定位是实现多道程序在内存中同时运行的基础技术,其核心机制是将程序的逻辑地址转换为内存中的实际物理地址。
定义与分类
重定位的本质是通过地址映射机制建立程序逻辑地址空间与物理内存地址空间的对应关系。根据转换时机的差异分为两类:
技术实现
静态重定位的实现依赖连接程序的二次扫描技术:首趟扫描生成内部符号表与外部调用表,次趟扫描结合重定位因子修正指令中的地址引用。动态重定位则需要硬件支持,典型实现包括:
转换时机
地址转换可发生于以下三个阶段:
硬件支持
动态重定位的实现需硬件地址变换机构支持,典型技术包括:
应用场景
重定位技术在多道程序环境下的核心作用体现于:
实例分析
Windows平台PE文件的重定位表记录了所有直接使用虚拟地址的指令位置(如全局变量访问、虚函数表初始化),加载器根据实际加载地址修正这些指令。鸿蒙系统通过objdump工具分析可执行文件的重定位项,验证静态重定位对内部符号引用的一致性处理。
最新修订时间:2025-11-27 08:18
目录
概述
定义与分类
技术实现
参考资料