地址重定位 将一个作业从它的逻辑地址变换成它要装入 的、或要重定位的主存地址的过程。在多道 程序系统中,为了方便用户的使用,对于每 个作业的主存空间可以看成是由地址0开始 的连续的地址空间,称之为逻辑地址空间。 但作业运行是在主存,因此,要进行地址的 转换;称之为“地址重定位”(地址映射)。 上·重定位两种方式:静态重定位和动态重定位。 停止放映 下一页 第11页
下一页 上一页 停止放映 第 11 页 地址重定位 ⚫ 将一个作业从它的逻辑地址变换成它要装入 的、或要重定位的主存地址的过程。在多道 程序系统中,为了方便用户的使用,对于每 个作业的主存空间可以看成是由地址0开始 的连续的地址空间,称之为逻辑地址空间。 但作业运行是在主存,因此,要进行地址的 转换;称之为 “地址重定位”(地址映射)。 ⚫ 重定位两种方式:静态重定位和动态重定位
静态地址重定位 ●是指在作业执行之前进行的重定位。地址 转换工作主要靠勇定位装入程序字来完成。 这种方式简单、容易实现,无需硬件的支 持,是早期计算机采用的一种方式。 ●缺点是: 程序一经定位后就不能再在主存中移动; ●要求作业分配连续的主存空间,主存资 上一页 源利用率低; 停止放峡·难于实现主存的资源共享。 下一页 第12页
下一页 上一页 停止放映 第 12 页 静态地址重定位 ⚫ 是指在作业执行之前进行的重定位。地址 转换工作主要靠重定位装入程序来完成。 这种方式简单、容易实现,无需硬件的支 持,是早期计算机采用的一种方式。 ⚫缺点是: ⚫ 程序一经定位后就不能再在主存中移动; ⚫ 要求作业分配连续的主存空间,主存资 源利用率低; ⚫ 难于实现主存的资源共享
静态重定位示意图 主存空间 作业A的地址空间 ●o●●● 100PuT1300 200 INPUT1,400 300135 4001357 00000 500 600 上一页 停止放映 作业的逻辑地址100处是一个输入语句,从逻辑地址300处,读1个 下一页记录。重定位到主存空间后,因为作业从物理地址100被装入, 输入语句的地址按序被定位在200处,被读记录在400处。 第13页
下一页 上一页 停止放映 第 13 页 静态重定位示意图 作业A的地址空间 主存空间 •••••• 0 100 300 500 100 200 400 600 •••••• INPUT 1,300 1 3 5 7 •••••• INPUT 1,400 1 3 5 7 •••••• 作业的逻辑地址100处是一个输入语句,从逻辑地址300处,读1个 记录。重定位到主存空间后,因为作业从物理地址100处被装入, 输入语句的地址按序被定位在200处,被读记录在400处
动态地址重定位 动态地址重定位是在程序执行过程中进行的重定 位,更确切地说是在每次访问内存单元前才进行地 址变换。它是通过硬件的地址变换机构实现的。 设置一个重定位寄存器(RR),用来存放装入主 存空间时的起始地址。 作业访问主存空间的地址是由有效地址加重定位 上一页 寄存器的地址来确定 停止放映 主存实际地址=有效地址+重定位寄存器内容 下一页 第14页
下一页 上一页 停止放映 第 14 页 动态地址重定位 动态地址重定位 是在程序执行过程中进行的重定 位,更确切地说是在每次访问内存单元前才进行地 址变换。它是通过硬件的地址变换机构实现的。 设置一个重定位寄存器(RR),用来存放装入主 存空间时的起始地址。 作业访问主存空间的地址是由有效地址加重定位 寄存器的地址来确定。 主存实际地址 = 有效地址 + 重定位寄存器内容
动态地址重定位示意图 0 100 I1,300 重定位寄存器 300 ●●●● 1357 1000 0 600 1100I1,300 作业A 有效地址 地址空间 300 气13001357 上一页 1600 停止放映 下一页 主存空间 第15页
下一页 上一页 停止放映 第 15 页 动态地址重定位示意图 300 1000 + 0 100 300 600 •••••• •••••• 0 1100 1300 1600 I 1,300 1 3 5 7 作业A 地址空间 有效地址 重定位寄存器 主存空间 I 1,300 1 3 5 7