第九章存储管理 91概述 、存储器的层次:三级存储器结构 本章主要讨论几种常用的内存管理技术。 由硬件寄存器 构成,速度等 Cache 存取速度增加 同于电子线路 的开关速度 Cpu可以 直接访问 成本增加 内存 由顺序编制的 单元组成的 维数组 容量减少 只有通过 外存 内存的后备支 内存,cpu 持,如:磁盘 才能访问 、磁带 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 第九章 存储管理 9.1 概述 一、存储器的层次:三级存储器结构 本章主要讨论几种常用的内存管理技术。 Cache 内存 外存 由硬件寄存器 构成,速度等 同于电子线路 的开关速度 由顺序编制的 单元组成的一 维数组 内存的后备支 持,如:磁盘 、磁带 Cpu可以 直接访问 只有通过 内存,cpu 才能访问 存取速度增加 成本增加 容量减少
静态链接:进行事先链接,以后不 再拆开的链接方式 按模块中的地址 装入时动态链接:便于实现目标模 到内存对应位置 块的共享:实现多个模块共享一个模在装入程序时, 块、而不要每个程序都含有该模块的 际使用情况,重 运行时动态链接:在运行期间需要地方。,把程序装 拷贝 存位置 个模块才装载一个模块 编辑 编译 装) 连接 配 数学 源 目标 核型/用PL、程序/汇编个模块 模块执行 代码 符号、名字 浮动地址 相对地址 内存的 (以0为基地址)(同一的外部物理地址 访问地址) 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 二、用户程序的处理过程 执行 代码 数学 模型 源 程序 目标 模块 装配 模块 编辑 用PL 编译 连接 装配 符号、名字 浮动地址 (以0为基地址) 相对地址 (同一的外部 访问地址) 内存的 物理地址 汇编 9.1 概述 绝对装入方式:按模块中的地址, 将程序和数据装入到内存对应位置。 可重定位方式:在装入程序时, 根据当时内存的实际使用情况,重 新调整装入的内存位置,把程序装 入到内存的适当地方。 –静态链接:进行事先链接,以后不 再拆开的链接方式 –装入时动态链接:便于实现目标模 块的共享:实现多个模块共享一个模 块、而不要每个程序都含有该模块的 拷贝。 –运行时动态链接:在运行期间需要 一个模块才装载一个模块
9.1概迷 三、地址重定位(映射)-- Relacation 定义:把程序中的逻辑地址变成内存中的物理地址的过程 名字空间:编程人员采用相对地址来编程,其源程序存放的空间 地址空间:经汇编或编译后其目标程序占有的地址范围称为地址空间; 这些地址编号是相对于起始地址而定的,称为逻辑地址或相对地 址 存储空间:存储空间是目标程序装入内存后占用的一系列物理单元的 集合,这些单元编号称为物理地址或绝对地址。 2.三大地址空间的关系 编译 地址重定位 名字空间 地址空间 存储空间 连接 源程序 相对目标程序 (绝对地址.物理地址) (名字/符号) (相对地址.逻辑地址) 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 绝对目标程序 (绝对地址.物理地址) 名字空间 地址空间 存储空间 源程序 (名字/符号) 相对目标程序 (相对地址.逻辑地址) 编译 连接 地址重定位 三、地址重定位(映射)---Relacation 1. 定义:把程序中的逻辑地址变成内存中的物理地址的过程。 名字空间:编程人员采用相对地址来编程,其源程序存放的空间 地址空间:经汇编或编译后其目标程序占有的地址范围称为地址空间; 这些地址编号是相对于起始地址而定的,称为逻辑地址或相对地 址。 存储空间:存储空间是目标程序装入内存后占用的一系列物理单元的 集合,这些单元编号称为物理地址或绝对地址。 2. 三大地址空间的关系 9.1 概述
三、地址重定位(映射) 3.重定位的两种方式 ◆重定位:当用户程序调入内存时,需把相对地址转换为绝对地址, 同时要对程序中与地址相关的指令进行修改,这一过程称为重定位 (1)静态重定位 令在程序装入时进行,通过处理机中的一对界地址寄存器来实现;界 地址寄存器分为下界和上界地址寄存器,分别存放该作业在内存中 的起始和终止地址,程序中的逻辑地址与下界地址相加得到物理地 址,见图示。 D 物理地址 逻辑地址 下界地址一内存中的起始地址 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 3. 重定位的两种方式 ❖ 重定位:当用户程序调入内存时,需把相对地址转换为绝对地址, 同时要对程序中与地址相关的指令进行修改,这一过程称为重定位。 (1) 静态重定位 ❖ 在程序装入时进行,通过处理机中的一对界地址寄存器来实现;界 地址寄存器分为下界和上界地址寄存器,分别存放该作业在内存中 的起始和终止地址,程序中的逻辑地址与下界地址相加得到物理地 址,见图示。 三、地址重定位(映射) x ’ = x + D 物理地址 逻辑地址 下界地址—内存中的起始地址
三、地址量定位(噢射) 逻辑地址空间 物理地址空间 上界 界地址寄存器 下界 D 界地址寄存器 时机:在程序执行之前进行; 实现:由装配程序根据将要装入的内存起始位置直接修改装配模 块中的有关使用地址的指令。 特点:一次性全部完成,一旦装入内存,不能再移动 性能分析: 优点——实现简单,不需要硬件机构; 缺点-—程序重定位之后就不能在在内存中移动;要求程序的存储空 间是连续的,不能放在若干个不连续的区域内。 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 三、地址重定位(映射) • 时机:在程序执行之前进行; ▪ 实现:由装配程序根据将要装入的内存起始位置直接修改装配模 块中的有关使用地址的指令。 ▪ 特点:一次性全部完成,一旦装入内存,不能再移动。 ▪ 性能分析: 优点---实现简单,不需要硬件机构; 缺点---程序重定位之后就不能在在内存中移动;要求程序的存储空 间是连续的,不能放在若干个不连续的区域内。 逻辑地址空间 x L D 上界 下界 界地址寄存器 物理地址空间 L x ’ D 界地址寄存器
三、地址重定位(映射) (2)动态重定位 在程序执行过程中进行,当CPU访问内存指令时由动态变换机构自动 进行地址转换 时机:在程序执行过程中,cpu每次访问内存单元前才进行地址转换 实现:装配模块不加任何修改而转入内存,由定位寄存器和加法器硬 件完成。 特点:部分、动态地完成。 性能分析: 优点——程序裝入内存之后再搬迁也不会影响其正确执行;每个目标模 块装入的存储区不必顺序相邻,只需要各自对应的定位寄存器即可 缺点——需要硬件支持。 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 (2)动态重定位 ▪ 在程序执行过程中进行,当CPU访问内存指令时由动态变换机构自动 进行地址转换。 ▪ 时机:在程序执行过程中,cpu每次访问内存单元前才进行地址转换。 ▪ 实现:装配模块不加任何修改而转入内存,由定位寄存器和加法器硬 件完成。 ▪ 特点:部分、动态地完成。 ▪ 性能分析: 优点---程序装入内存之后再搬迁也不会影响其正确执行;每个目标模 块装入的存储区不必顺序相邻,只需要各自对应的定位寄存器即可。 缺点---需要硬件支持。 三、地址重定位(映射)
三、地址量定位(噢射) 例 内存 000 100L0AD1,1300 100LOAD1,300 3005678 13005678 400 1400 0 1000 1000 100LOAD1,300 1100LOAD1,300 3005678 400 13005678 1400 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 三、地址重定位(映射) ▪ 例: 0 100 300 400 LOAD 1,300 5678 LOAD 1,300 5678 0 100 300 400 1000 1100 1300 1400 LOAD 1,1300 5678 1000 1100 LOAD 1,300 1300 5678 1400 内存 1000 +
9.1概迷 四、存储管理的功能 1.多道并发环境中内存管理面临的问题: 防冲突;保护0S;合理分配;扩充;虚-实。 2.主要功能: 内存的分配与回收; 地址重定位; 内存信息的共享与保护:为了保护存储区内各类程序和信息不受某 些错误程序的破坏和干扰,须采取保护措施。 内存的扩充(满足用户对内存超容量要求):当作业的地址空间大 于分配到的存储空间时需采取内存扩充技术,将内外存联合起来扩 大存储空间,常采用的内存扩充技术有覆盖、交换和虚拟存储技术。 内、外存数据传输的控制。 目标:安全、高效、方便、最大限度地提高内存的利用率。 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 四、存储管理的功能 1. 多道并发环境中内存管理面临的问题: 防冲突; 保护OS; 合理分配; 扩充;虚---实。 2. 主要功能: ▪ 内存的分配与回收; ▪ 地址重定位; ▪ 内存信息的共享与保护:为了保护存储区内各类程序和信息不受某 些错误程序的破坏和干扰,须采取保护措施。 ▪ 内存的扩充(满足用户对内存超容量要求):当作业的地址空间大 于分配到的存储空间时需采取内存扩充技术,将内外存联合起来扩 大存储空间,常采用的内存扩充技术有覆盖、交换和虚拟存储技术。 ▪ 内、外存数据传输的控制。 目标:安全、高效、方便、最大限度地提高内存的利用率。 9.1 概述
9.2早期的存储管理技术 分区式分配方式 目的:为了满足多道程序设计思想 方法:将内存划分为若干个分区,每个分区分配给一个作业,用静态 重定位方式进行地址转换,提供必要的保护手段,保证各作业互 不干扰。在分区的划分方式上有固定分区和可变分区两种。 团定式分区(静态分区) 思想:存储器事先被划分为若干个大小不等的分区,系统为每个 分区设置一个目录,说明该分区的大小、起始位置、分配状况等 信息,所有分区目录构成一个分区说明表;用户为每个作业规定 所需的最大存储量,存储管理程序负责找出一个足够大的分区分 配给此作业。一旦划分好,在系统运行期间不再重新划分。 实施:通过分区说明表实行内存管理。 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 目的:为了满足多道程序设计思想。 方法:将内存划分为若干个分区,每个分区分配给一个作业,用静态 重定位方式进行地址转换,提供必要的保护手段,保证各作业互 不干扰。在分区的划分方式上有固定分区和可变分区两种。 一、固定式分区(静态分区) ▪ 思想:存储器事先被划分为若干个大小不等的分区,系统为每个 分区设置一个目录,说明该分区的大小、起始位置、分配状况等 信息,所有分区目录构成一个分区说明表;用户为每个作业规定 所需的最大存储量,存储管理程序负责找出一个足够大的分区分 配给此作业。一旦划分好,在系统运行期间不再重新划分。 ▪ 实施:通过分区说明表实行内存管理。 9.2 早期的存储管理技术 ---分区式分配方式
固定式分区0 OS 区号大小起址标志 JobA(k)}第一分区 8K 20K 已分 28k 32K28K 已分 JobB(25k)}第二分区 234 60k 64K60K 已分 Job C(40k) 第三分区 132K124K未分 124k (a)分区说明表 132K 第四分区 A(6 6k)B(25k)c(40k)D(150k) 256K (c)后备队列作业 (b)内存分配图 性能:分区大小固定,状态表的结构可以是顺序表也可以是链表;实现了 多个作业共享内存;分区的分配和回收算法简单;缺点是内存利用不充 足,有“碎片”,即作业所需空间和分区大小不一定恰好相等。 计算机软件技术基础 存储管理
计算机软件技术基础 存储管理 性能:分区大小固定,状态表的结构可以是顺序表也可以是链表;实现了 多个作业共享内存;分区的分配和回收算法简单;缺点是内存利用不充 足,有“碎片” ,即作业所需空间和分区大小不一定恰好相等。 区号 大小 起址 标志 1 8K 20K 已分 2 32K 28K 已分 3 64K 60K 已分 4 132K 124K 未分 A(6k) B(25k) C(40k) D(150k) (a)分区说明表 0 20k 28k 60k 124k OS Job A(6k) ………… Job B(25k) ………… Job C(40k) ………… 256K 第一分区 第二分区 第三分区 132K 第四分区 (c)后备队列作业 (b)内存分配图 一、固定式分区