简答题
👁️ 浏览量:

试题题干

什么叫程序装入的重定位?从是否需要硬件支持,以及各自物理地址的计算方法角度比较静态重定位和动态重定位的区别。

参考答案

试题解析

(1)在程序装入时对目标程序中的指令和数据地址的修改过程称为重定位

(2)静态重定位:编译时地址都是逻辑地址,在程序被装入内存时,再把这些逻辑地址映射为物理地址。不需要硬件支持。

动态重定位:系统将进程装入内存后,由于进程在内存中的位置可能发生移动,所以此时并不计算物理地址,而是在进程运行访存的过程中才进行地址转换,这种方式需要重定位寄存器的支持。故动态重定位需要硬件支持。

(3)可重定位装入方式(静态重定位):物理地址=有效逻辑地址+程序在内存中的起始地址

动态运行时装入(动态重定位):物理地址=有效逻辑地址+重定位寄存器的值