什么是静态地址重定位,它需要什么支持?什么是动态地址重定位,他需要什么支持?静态地址重定位与动态地址重定位有什么区别?

在程序装入过程中随即进行的地址变换方式称为静态地址映射或静态重定位。

进行静态重定位要求被装入的程序本身是可以重定位的。(软件支持:重定位装入程序)

动态地址映射是指在程序执行期间,随着每条指令和数据的访问,自动地、连续地进行映射。

这种重定位的实现需要硬件的支持。最简单的硬件机构是一个重定位寄存器。

区别:

1、  地址转换时机不同。静态地址重定位是在程序装入内存前完成从逻辑地址到物理地址的转换。动态地址重定位是在程序执行过程中进行的重定位,由系统硬件完成从逻辑地址到物理地址的转换。装入时不加任何修改,但在每次访问内存单元前才进行地址变换。

2、  需要的支持不同。静态地址重定位需要软件的支持(重定位装入程序)。而动态地址重定位需要硬件的支持(重定位寄存器)。

3、  转换速度不同。静态地址重定位是运行重定位程序来完成地址转换的,他需要花费很多CPU的时间。而动态地址重定位是由硬件完成的,因此转换速度快。

4、  灵活度不同。静态地址重定位是在程序装入主存时就完成了所有地址的转换,之后不能移动,不利于共享。动态地址重定位是在运行时转换,有利于共享。

原文地址:https://www.cnblogs.com/luo841997665/p/4667619.html