静态地址重定位 原理:是指在作业执行之前进行的重定位。 地址转换工作主要靠重定位装入程序来完成。 ●特点:简单、容易实现,无需硬件的支持, 是早期计算机采用的一种方式。 缺点: ●程序一经定位后就不能再在主存中移动,不 能重新分配内存,不利于内存的有效利用; 上贝●要求作业分配连续的主存空间,主存资源利 停止放映 用率低; 下一页 ●不同用户难于共享主存中的同一程序 第11页
下一页 上一页 停止放映 第 11 页 静态地址重定位 ⚫ 原理:是指在作业执行之前进行的重定位。 地址转换工作主要靠重定位装入程序来完成。 ⚫ 特点:简单、容易实现,无需硬件的支持, 是早期计算机采用的一种方式。 ⚫ 缺点: ⚫ 程序一经定位后就不能再在主存中移动,不 能重新分配内存,不利于内存的有效利用; ⚫ 要求作业分配连续的主存空间,主存资源利 用率低; ⚫ 不同用户难于共享主存中的同一程序
静态重定位示意图 从逻辑地址300处,读1个记录 主存空间 作业A的地址空间 ●o●●● 100PuT1300 200 INPUT 1. 400 300357 400 1357 500 600 上一页 ●●● 停止放映 作业的逻辑地址100处是一个输入语句从逻辑地址300处,读1个 下一页记录。重定位到主存空间后,因为作业从物理地址100处被装入, 输入语句的地址按序被定位在200处,被读记录在400处。 第12页
下一页 上一页 停止放映 第 12 页 静态重定位示意图 作业A的地址空间 主存空间 •••••• 0 100 300 500 100 200 400 600 •••••• INPUT 1,300 INPUT 1,400 1 3 5 7 •••••• 1 3 5 7 •••••• 作业的逻辑地址100处是一个输入语句,从逻辑地址300处,读1个 记录。重定位到主存空间后,因为作业从物理地址100处被装入, 输入语句的地址按序被定位在200处,被读记录在400处。 从逻辑地址300处,读1个记录
动态地址重定位 动态地址重定位是在程序执行过程中进行的 重定位,更确切地说是在每次访问内存单元 前才进行地址变换。它是通过硬件的地址变 换机构实现的。 设置一个重定位寄存器(RR),用来存放装 入主存空间时的起始地址。 作业访问主存空间的地址是由逻舞地址加重 上一页 定位寄存器的地址来确定 停止放映 主存实际地址=逻舞地址+重定位寄存器内容 下一页 第13页
下一页 上一页 停止放映 第 13 页 动态地址重定位 动态地址重定位 是在程序执行过程中进行的 重定位,更确切地说是在每次访问内存单元 前才进行地址变换。它是通过硬件的地址变 换机构实现的。 设置一个重定位寄存器(RR),用来存放装 入主存空间时的起始地址。 作业访问主存空间的地址是由逻辑地址加重 定位寄存器的地址来确定。 主存实际地址 = 逻辑地址 + 重定位寄存器内容
动态地址重定位示意图 0 100I1,300 重定位寄存器 3001357 1000 0 600 1100I1,300 作业A 有效地址 地址空间 300+13001357 上一页 1600 ●●●● 停止放映 从 主存空间 下一页 第14页
下一页 上一页 停止放映 第 14 页 动态地址重定位示意图 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 从
动态地址重定位的特点 ●目标模块装入主存后,还可以很容易地进 行移动。有利于解决内存管理出现的中碎 块问题; ●多个相对独立的目标模块,可以分别装入 互不相邻的内存区域。这样便于内存的充 分利用和资源的共享。 程序中不执行的程序,不做地址映射工作, 上一页 节省了cPU的时间。 停止放映∽需要附加硬件的支持,增加了系统的开销 下一页 (重定位寄存器,缺点)。 第15页
下一页 上一页 停止放映 第 15 页 动态地址重定位的特点 ⚫ 目标模块装入主存后,还可以很容易地进 行移动。有利于解决内存管理出现的中碎 块问题; ⚫多个相对独立的目标模块,可以分别装入 互不相邻的内存区域。这样便于内存的充 分利用和资源的共享。 ⚫程序中不执行的程序,不做地址映射工作, 节省了CPU的时间 。 ⚫需要附加硬件的支持,增加了系统的开销。 (重定位寄存器,缺点)