实际操作系统chapter存储器管理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2) 便于实现对目标模块的共享。
实际操作系统chapter存储器管理
3. 运行时动态链接(Run-time Dynamic Linking)
近几年流行起来的运行时动态链接方式,是对上述在 装入时链接方式的一种改进。这种链接方式是将对某些模 块的链接推迟到执行时才执行,亦即,在执行过程中,当 发现一个被调用模块尚未装入内存时,立即由OS去找到该 模块并将之装入内存, 把它链接到调用者模块上。凡在执 行过程中未被用到的目标模块,都不会被调入内存和被链 接到装入模块上,这样不仅可加快程序的装入过程,而且 可节省大量的内存空间。
3. 动态运行时装入方式(Denamle Run-time Loading) 动态运行时的装入程序,在把装入模块装入内存后, 并不立即把装入模块中的相对地址转换为绝对地址,而 是把这种地址转换推迟到程序真正要执行时才进行。因 此, 装入内存后的所有地址都仍是相对地址。
实际操作系统chapter存储器管理
实际操作系统chapter存储器管理
4.2.2 固定分区分配
1. 划分分区的方法 (1) 分区大小相等, 即使所有的内存分区大小相等。 (2) 分区大小不等。
实际操作系统chapter存储器管理
2. 内存分配
图 4-5 固定分区使用表
实际操作系统chapter存储器管理
4.2.3 动态分区分配
4.1.2 程序的链接
1. 静态链接方式(Static Linking)
0 模块 A
0
CALL B;
L- 1 Retu rn;
L- 1
模块 A
JSR“ L” Retu rn;
0 模块 B
L 模块 B
CALL C;
JSR “ L+ M”
M- 1 Retu rn;
L+ M- 1 Retu rn;
0 模块 C
实际操作系统chapter存储器管理
4.3.4 可重定位分区分配
1. 动态重定位的引入
操作系统 用户程序1
10 KB 用户程序3
30 KB 用户程序6
14 KB 用户程序9
26 KB
操作系统 用户程序1 用户程序3 用户程序6 用户程序9
80 KB
(a) 紧凑前
(b) 紧凑后
图实际操4作-8系统紧cha凑pter存的储器示管理意
实际操作系统chapter存储器管理
2. 可重定位装入方式(Relocation Loading Mode)
0
100 0 LOAD 1,2500
250 0 365
500 0 作业 地址 空间
100 00 11000 LOAD 1,2500
125 00
365
150 00
内存 空间
图实际4操-2作系作统c业hapt装er存储入器管内理存时的情况
请 求分 配 u.size分 区
检 索空 闲分 区 链(表 )
无 法分 配

返回
空 闲分 区 总 和 ≥u.size?
是 进 行紧 凑形 成 连续 空闲 区
修 改有 关的 数 据结 构

找 到 大 于u.size
的 可用 区否 ?
按 动态 分区 方 式 进 行分 配
修 改有 关的 数 据结 构
返 回分 区号 及 首批
1. 分区分配中的数据结构
(1) 空闲分区表。
(2) 空闲分区链。








N
N个 字 节 可 用
N


ቤተ መጻሕፍቲ ባይዱ
2
2
0
0
实际操作系统cha图pter存4储-器6管空理 闲链结构
-
3. 分区分配操作
1) 分配内存
图 4 7 内 存 分 配 流 程
从头 开始 查表
检索 完否 ?
Y
返回
N m .s iz e > u . s i ze ?
实际操作系统chapter存储器管理
4.2 连续分配方式
4.2.1 单一连续分配
这是最简单的一种存储管理方式,但只能用于单用户、 单任务的操作系统中。采用这种存储管理方式时,可把内 存分为系统区和用户区两部分,系统区仅提供给OS使用, 通常是放在内存的低址部分;用户区是指除系统区以外的 全部内存空间, 提供给用户使用。
L+ M 模块 C
N- 1 Retu rn;
L+ M+ N- 1 Retu rn;
(a) 目标模块 图实际操4作-3系统程cha序pter存链储器接管理示意图 (b) 装入模块
静态链接将目标模块装配成一个装入模块时,须解 决以下两个问题:
(1) 对相对地址进行修改。 (2) 变换外部调用符号。
2. 装入时动态链接(Load time Dynamic Linking) 优点:(1)便于修改和更新。
内存

编 译程 序产 生 的目 标模 块
链接 程序
装 入模 块
装入 程序

第 一步
第 二步
第 三步
图 4-1 对用户程序的处理步骤 实际操作系统chapter存储器管理
4.1.1 程序的装入
1. 绝对装入方式(Absolute Loading Mode)
程序中所使用的绝对地址,既可在编译或汇编时给出, 也可由程序员直接赋予。 但在由程序员直接给出绝对地址 时, 不仅要求程序员熟悉内存的使用情况,而且一旦程序 或数据被修改后,可能要改变程序中的所有地址。因此, 通常是宁可在程序中采用符号地址,然后在编译或汇编时, 再将这些符号地址转换为绝对地址。
第四章 存储器管理
4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式 4.5 基本分段存储管理方式 4.6 虚拟存储器的基本概念 4.7 请求分页存储管理方式 4.8 页面置换算法 4.9 请求分段存储管理方式
实际操作系统chapter存储器管理
4.1 程序的装入和链接
2. 动态重定位的实现
0 100
LOAD1,2500
2500 365
相对地址 2500
重定位寄存器 10000
10000 10100
LOAD1,2500

12500
365
5000
作业J
15000
处理机一侧 存储器一侧
图 4-10 动态重定位示意图 实际操作系统chapter存储器管理
主存
3. 动态重定位分区分配算法
N
继续 检索 下一 个表 项
Y
m .s iz e - u . s i ze ≤ s i z e ?
N 从该 分区 中划 出 u.siz e 大 小 的 分 区
Y 将该 分区 从链 中移 出
将该 分区 分配 给请 求者 修 改有 关数 据结 构
实际操作返系回统chapter存储器管理
2) 回收内存
图 4-7 内存回收时的情况
相关文档
最新文档