【答案解析】静态重定位是在作业装入时进行的地址转换,在作业执行过程中不再需要进行地址转换。
通常一个作业在装入时分配到的存储空间和它的地址空间是不一致的,因此有必要将用户程序中的逻辑地址转换成内存的物理地址。这种地址转换过程称为重定位也叫地址映射。它有两种方式:静态重定位和动态重定位。
(1)静态重定位,是指地址转换工作是在程序装入内存时由装配程序完成的。装配程序根据将要装入内存的起始地址,对程序模块中有关的地址部分进行调整和修改(物理地址一逻辑地址+程序存放在内存的起始地址),一旦确定下来之后不再改变,即静态地址重定位是在程序执行之前完成的地址转换。它的优点:无需硬件支持,容易实现。缺点:程序经地址重定位后不能再移动,程序在内存空间只能连续存储,程序很难被若干个用户所共享。
如上图所示,图(a)中,程序中逻辑地址为6,8,10,因为装入内存中程序的起始地址变为100,所以须对地址进行重定位,否则在图(b)的情况下会发生调用错误,所调用的地址中不再是程序员想要的内容。图(c)为重定位之后的结果。
(2)动态重定位,是指地址转换工作是在程序执行期间由硬件变换机构动态实现地址转换的。物理地址一逻辑地址+重定位寄存器的内容。动态重定位的优点:用户程序在执行过程中内存可移动,程序不必连续存放在内存中,可以放在不同区域,若干个用户可以共享同一程序段或数据段。缺点:需要附加硬件支持,实行存储管理的软件算法比较复杂。
