工程类存储器管理PPT优秀课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

装入 模块
装入 程序
4.1.1 程序的装入
1、绝对装入:
编译后,装入前已产生了绝对地址(内存地址),装入时 不再作地址重定位。
绝对地址的产生:(1)由编译器完成,(2)由程序员编 程完成。
对(1)而言,编程用符号地址。
2、可重定位装入:
静态重定位:装入时完成,主要工作是对相对地址中的指 令和数据地址的调整过程,例:图4-2
分区4 分区3
800k 700k
分区2
分区1 操作系统
400k
200k 100k 0
分区4 分区3
分区2 分区1 操作系统
4.2.3 动态分区分配(比固定式 分区有改善)
根据进程需要,动态地为之分配内存空间 一、数据结构
1.空闲分区表 2.空闲分区链
前向 指针 N+2
0
N个字节可用
后向 指针
位于ROM中 的设备驱动 程序
用户 程序
位于RAM中 的操作系统
0
4.2.2 固定分区
特点:内存划为n个分区,可同时装入n个作业/任务。
操作系统
一分、区分区大大小(小K:) 起址(K)状态
号a. 相等:缺乏灵活性
1 b. 1不2相等:利20用率更高已。分配
二2 、内存32分配:32
已分配
20K
作业A
4.2.1 单一连续分配
单用户单任务
系统区+用户区
大型机和小型存计贮保护掌上型计算机和
算机上,现一在般很不设置保护嵌入也式可系,统因中单任务。
少用
用户 程序
0xfff…
位于ROM中 的操作系统
位于RAM中 的操作系统
0
用户 程序
0
早期的PC中, BIOS (basic input
output system)
M1
0 模块C
RETURN N-1
(a)目标模块
0 Baidu Nhomakorabea块A JSR L; RETUR
L-1 N L
L+M -L1+ M
模块B JSR L+M; RETUR N模块C
L+M+N RETURN
-1
(b)装入模块
4.2 连续分配方式
单一连续分配
用于单用户,单任务中
分区式分配
固定式 动态式 动态重定位
程序运行之前,链接成完整的装入模块 a.对相对地址的修改 b.变换外部调用符号
2、装入时动态链接
目标模块在装入内存时,边装入边链接 a.便于修改和更新 b.便于实现对目标模块的共享
3、运行时动态链接
程序执行需要时,才将某些目标模块进行链接
0 模块A CALL B;
L-1 RETURN
0 模块B CALL C; RETURN
3.动态运行时装入
在执行时才完成相对—绝对地址的转换,且有硬件的支持, 能保证进程的可移动性。
0 1000
LOAD 1, 2500
2500 365
5000 作业地址空间 图4-2
10000 11000
LOAD 1, 2500
12500 365
15000
内存空间
4.1.2 程序的链接
1、静态链接
N+2
0
4.2.3 动态分区分配
二、分配算法
1.首次适应算法FF。
要求:分区按低址――高址链接 特点:找到第一个大小满足的分区,划分。有外零头,
低址内存使用频繁。
2.循环首次适应算法。
从1中上次找到的空闲分区的下一个开始查找。 特点:空闲分区分布均匀,提高了查找速度;缺乏大的
空闲分区。
F1 回收区
回收区 F2
F1 回收区
F2
内存回收时的情况
4.2.4 可重定位分区分配
1.动态重定位的引入
连续式分配中,总量大于作业大小的多个小分区 不能容纳作业。
紧凑 通过作业移动将原来分散的小分区拼接成一个 大分区。
紧凑
操作系统 用户程序1
用户10程KB序3 用户10程K序3
3B0KB
32K
作业B
I. 将分区按大小排序,建立分区使用6表4K,并将起始地址、大
3
6小4、分配标64识作记录已分配
4 II. 1检2索8 分区使12用8表找能已满分足配要求的尚未分配的分作区业C III. 放到能容纳作业的最小分区的队列中。
128K
分区说明表
~~
256K
~~ 分配情况
输入队列的组织
每个分区有独立输入队列:小分区的队列长,大分 区的队列空,浪费
3.最佳适应算法
分区按大小递增排序;分区释放时需插入到适当位置。
4.2.3 动态分区分配
三、分区分配
1.分配: 请求分区 u.size 空闲分区 m.size
2.回收: (1)上邻空闲区:合并,改大小 (2)下邻空闲区:合并,改大小,首址。 (3)上、下邻空闲区:合并,改大小。 (4)不邻接,则建立一新表项。
用户程序6 14KB
用户程序9 26KB
操作系统 用户程序1 用户程序3 用户程序6 用户程序9
80KB
必须对移动了的作业进行重定位。动态(因作业已经装入, 随着对指令或数据的访问自动进行)
2、动态重定位的实现
0
100 2500
load 1,2500
365
5000
相对地址 重定位寄存器
1000
2500
第四章 存储器管理
第四章 存储器管理
装入和链接 连续分配方式 基本分页存储管理方式 基本分段存储管理方式 虚拟存储器 请求分页存储管理方式 页面置换算法 请求分段存储管理方式
4.1 程序的装入和链接
编辑―――编译―――链接―――装入―――运行
内存

编译程 序产生 的目标
模块
链接 程序
只维护一个输入队列:
一旦有分区空闲,就把该分区能容纳的作业中最接近队 列前面的作业调入分区:小作业浪费大分区
对队列进行搜索,一旦有分区空闲,就取该分区所能容 纳的最大的一个作业运行:对小作业不利
至少保留一个小分区,允许小作业运行,而不至于为小 作业分配大分区
规定一个作业至多允许被跳过的次数,之后就不能被跳 过了
10000 0
10100 load 1,2500
1250 +0
365
15000
作业J
处理机一侧 存储器一侧
主存
动态分区分配算法流程图
请求分配u.size 检索空闲分区链(表)
无法分配, 否 返回
空闲分区总和 否 >=u.size?

紧凑形成连 续空闲区
找到大于u.size的可用 分区否?
按动态分区方式 进行分配
修改有关的 数据结构
修改有关的 数据结构
返回分区号 及首址
4.2.5 对换
1 对换的引入
将阻塞进程,暂时不用的程序,数据换出。 将具备运行条件的进程换入。 类型:
整体对换:进程对换,解决内存紧张 部分对换:页面对换/分段对换:提供虚存支

内存分配情况随着进程进出而变化
相关文档
最新文档