3.2.2 地址定位方式和静态重定位 1.绝对定位方式 即在程序装入内存之前,程序指令中的地址就已经是绝对地址,已经正确地反映 了它将要进入的存储区位置。 。优点:程序中的逻辑地址与实际内存中的物理地址完全相同。因此在程序执行前 不需对程序指令中的地址再进行任何调整和修改,装入到指定内存位置就可运行。 ·缺点: (1)要求编程人员熟悉内存使用情况,程序设计时要极小心地对待指令中的地址, 不能够出现任何差错,否则后果不堪设想: (2)程序进入内存后,不能做任何移动,只能固定在这个存储区内: (3)对程序做任何微小修改,都可能会牵扯到程序整体的变动,费工耗时: (4)不适用于多道程序设计环境。 2.静态重定位方式 。在多道程序设计环境下,用户事先无法、也不愿意知道自己的程序会被装入到内 存的什么位置,他们只是向系统提供相对于“0”编址的程序。 。操作系统要有一个“重定位装入程序”,功能是:一根据当前内存使用情况,为 欲装入的二进制目标程序分配所需的存储区;二根据所分配的存储区,对程序中的指令 地址进行重新计算和修改:三将重定位后的二进制目标程序装入到指定的存储区中
要求编程人员熟悉内存使用情况,程序设计时要极小心地对待指令中的地址, 不能够出现任何差错,否则后果不堪设想; • 3.2.2 地址定位方式和静态重定位 1. 绝对定位方式 即在程序装入内存之前,程序指令中的地址就已经是绝对地址,已经正确地反映 了它将要进入的存储区位置。 . . 优点:程序中的逻辑地址与实际内存中的物理地址完全相同。因此在程序执行前 不需对程序指令中的地址再进行任何调整和修改,装入到指定内存位置就可运行。 . 不适用于多道程序设计环境。 缺点: (1) (2) (3) (4) 程序进入内存后,不能做任何移动,只能固定在这个存储区内; 对程序做任何微小修改,都可能会牵扯到程序整体的变动,费工耗时; 2. 静态重定位方式 . 在多道程序设计环境下,用户事先无法、也不愿意知道自己的程序会被装入到内 存的什么位置,他们只是向系统提供相对于“0”编址的程序。 . 操作系统要有一个“重定位装入程序”,功能是:一根据当前内存使用情况,为 欲装入的二进制目标程序分配所需的存储区;二根据所分配的存储区,对程序中的指令 地址进行重新计算和修改;三将重定位后的二进制目标程序装入到指定的存储区中
。采用这种重定位方式,用户向装入程序提供相对于“0”编址的二进制目标程序, 无需关注程序具体的装入位置。通过重定位装入程序的加工,目标程序进入分配给它的 物理地址空间,程序指令中的地址也都被修改为正确反映该空间的情形。因为这种地址 重定位是在程序执行前完成的,因此称为地址的“静态重定位” 。静态重定位的特点 ()静态重定位由软件(重定位装入程序)实现,无须硬件提供支持: (②)静态重定位是在程序运行之前完成地址重定位工作的: (③)地址重定位的工作是在程序装入时被一次集中完成的: (④物理地址空间里的目标程序与原逻辑地址空间里的目标程序面目已不相同,前 者是后者进行地址调整后的结果: (⑤)实施静态重定位后,位于物理地址空间里的用户程序不能在内存中移动,除非 再重新进行地址定位: (6适用于多道程序设计环境。 3.动态重定位方式 ·对用户程序实行地址的静态重定位后,定位后的程序就被“钉死”在了它的物理 地址空间里,不能做任何移动。 ,将地址定位的时间推迟到程序执行时再进行,这就是地址“动态重定位”方式。 在对程序实行动态重定位时需要硬件的支持
静态重定位由软件(重定位装入程序)实现,无须硬件提供支持; 静态重定位的特点 静态重定位是在程序运行之前完成地址重定位工作的; 地址重定位的工作是在程序装入时被一次集中完成的; 物理地址空间里的目标程序与原逻辑地址空间里的目标程序面目已不相同,前 者是后者进行地址调整后的结果 ; 实施静态重定位后,位于物理地址空间里的用户程序不能在内存中移动,除非 再重新进行地址定位 ; . 采用这种重定位方式,用户向装入程序提供相对于“0”编址的二进制目标程序, 无需关注程序具体的装入位置。通过重定位装入程序的加工,目标程序进入分配给它的 物理地址空间,程序指令中的地址也都被修改为正确反映该空间的情形。因为这种地址 重定位是在程序执行前完成的,因此称为地址的“静态重定位” 。 . (1) (2) (3) (4) (5) (6) 适用于多道程序设计环境。 3. 动态重定位方式 对用户程序实行地址的静态重定位后,定位后的程序就被“钉死”在了它的物理 地址空间里,不能做任何移动。 . . 将地址定位的时间推迟到程序执行时再进行,这就是地址“动态重定位”方式。 在对程序实行动态重定位时需要硬件的支持
。3.2.3单一连续分区存储管理 1. 单一连续分区存储管理的基本思想 总体上把内存储器分为两个分区:一个分区固定分配给操作系统使用:另一个分配 给用户使用,称为“用户区” 2.单一连续区存储管理的特点 ·系统总是把整个用户区分配给一个用户使用。 ·内存用户区又被分为“使用区”和“空闲区”两部分,分配给了用户、但又未使 用的区域称为“内部碎片”。内部碎片的存在是对内存资源的一种浪费。 ·这种系统只适用于单用户(或单道)的情况。 ·进入内存作业独享系统中的所有资源,包括内存的整个用户区。 。采用这种存储分配策略时,将对用户程序实行静态重定位。 ·为阻止用户程序指令中的地址 内存 内存 内存 0 0 闯入操作系统所占用的区域,在CPU 操作系统 操作系统 操作系统 界限寄存器 里设置一个用 9 a 于存储保护的 专用寄存器: 作业3 作业2 作业1 使用区 使用区 户 “界限寄存器” 用户区 空闲区 空闲区
为阻止用户程序指令中的地址 闯入操作系统所占用的区域,在CPU 里设置一个用 于存储保护的 专用寄存器: “界限寄存器”。 . 内存用户区又被分为“使用区”和“空闲区”两部分,分配给了用户、但又未使 用的区域称为“内部碎片”。内部碎片的存在是对内存资源的一种浪费。 • 3.2.3 单一连续分区存储管理 1. 2. 单一连续分区存储管理的基本思想 单一连续区存储管理的特点 总体上把内存储器分为两个分区:一个分区固定分配给操作系统使用;另一个分配 给用户使用,称为“用户区” 。 . . . . . 作业3 作业2 作业1 操作系统 用户区 内存 0 a b 操作系统 使用区 内存 0 a b 空闲区 用 户 区 c 操作系统 使用区 内存 0 a b 空闲区 c a 界限寄存器 系统总是把整个用户区分配给一个用户使用 。 这种系统只适用于单用户(或单道)的情况。 进入内存作业独享系统中的所有资源,包括内存的整个用户区。 采用这种存储分配策略时,将对用户程序实行静态重定位
3.单一连续分区管理的缺点 每次只能一个作业进入内存,故不适宜多道程序设计,系统的工作效率不高,资 源利用率低下。 。作业比用户区小时,就会形成碎片,造成内存储器资源的浪费。 ·若用户作业的相对地址空间比用户区大,该作业就无法运行 内存 4.覆盖技术 0 “覆盖”是早期为 MAIN(10KB) MAIN(10KB) A(50KB) 10KB -MAIN 程序设计人员提供的扩 连接装配 充内存的技术,中心思 A(50KB) B(30KB) B(30KB) 50KB A或B 想是允许作业的若干个 C(30KB) 程序段使用同一个存储 D(20KB) C(30KB) D(20KB) E(40KB) 区域,共用的存储区被 E(40KB) 40KB C或D或E 180KB 称为“覆盖区” 内存储器 5.对换技术 基本思想:将作业都存放在辅存。每次只让 操作系统 辅助存储器 其中的一个进入内存投入运行。当运行中提出输 换出 入输出请求或分配给的时间片用完时,就把这个 用户区 作业 程序从内存“换出”到辅存,把辅存里的另一个 作业2 换入 作业“换入”运行,产生出“多道”的效果。 作业3
. 作业比用户区小时,就会形成碎片,造成内存储器资源的浪费。 3. 单一连续分区管理的缺点 . . 4. 覆盖技术 每次只能一个作业进入内存,故不适宜多道程序设计,系统的工作效率不高,资 源利用率低下。 若用户作业的相对地址空间比用户区大,该作业就无法运行。 “覆盖”是早期为 程序设计人员提供的扩 充内存的技术,中心思 想是允许作业的若干个 程序段使用同一个存储 区域,共用的存储区被 称为“覆盖区”。 MAIN(10KB) A(50KB) B(30KB) C(30KB) D(20KB) E(40KB) MAIN(10KB) A(50KB) B(30KB) C(30KB) D(20KB) E(40KB) 0 180KB 连接装配 10KB 50KB 40KB 内存 MAIN A或B C或D或E 5. 对换技术 作业1 作业2 作业3 辅助存储器 内存储器 操作系统 用户区 换出 换入 基本思想:将作业都存放在辅存。每次只让 其中的一个进入内存投入运行。当运行中提出输 入输出请求或分配给的时间片用完时,就把这个 程序从内存“换出”到辅存,把辅存里的另一个 作业“换入”运行 ,产生出“多道”的效果
。3.2.4 固定分区存储管理 1. 基本思想 所谓“固定分区”存储管理,是指预先把内存的用户区划分成若干个连续的分区, 它们的尺寸可以相同,也可以不同。划分后,内存中分区的个数以及每个分区的尺寸保 持不变。每个分区里只允许装入一个作业运行。 2.对作业的组织 ·每个分区设置一个后备作业队列 ,多个分区只设置一个后备作业队列 个作业到达时,总是进入到“能 当某个分区空闲时,统一都到这一个 容纳该作业的最小分区”的那个后备作 队列里去挑选作业,装入运行。 业队列里去排队。 0 0 操作系统 操作系统 20KB 20KB 第I分区8KB) 第1分区(8KB) 第2分区32KB) 第2分区32KB) FHEHDCHBHA 第3分区(64KB) 第3分区64KB) E→第4分区(I32KB) 第4分区132KB) 256KB 256KB
• 3.2.4 固定分区存储管理 1. 基本思想 所谓“固定分区”存储管理,是指预先把内存的用户区划分成若干个连续的分区, 它们的尺寸可以相同,也可以不同。划分后,内存中分区的个数以及每个分区的尺寸保 持不变。每个分区里只允许装入一个作业运行。 2. 对作业的组织 操作系统 第1分区(8KB) 第2分区(32KB) 第3分区(64KB) 第4分区(132KB) 0 256KB 20KB C B A D F E 操作系统 第1分区(8KB) 第2分区(32KB) 第3分区(64KB) 第4分区(132KB) 0 256KB 20KB F E D C B A . 每个分区设置一个后备作业队列 . 多个分区只设置一个后备作业队列 一个作业到达时,总是进入到“能 容纳该作业的最小分区”的那个后备作 业队列里去排队。 当某个分区空闲时,统一都到这一个 队列里去挑选作业,装入运行