第四章存储管理

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 存储管理
教学内容:
1、程序的装入和链接 2、分区存储管理方式 3、虚拟存储器的基本概念 4、分页存储管理方式 5、页面置换算法 6、分段存储管理方式 7、段页存储管理方式
教学重点:
1、程序的装入(地址空间、名字空间、物理空间、地址重定位) 2、虚拟存储器的基本概念 3、分页存储管理方式 4、页面置换算法
序号F
1 2 3 4 5 …
大小
32K 300K — — — …
起址
60K 212K — — — …
状态
空闲 空闲 空表目 空表目 空表目 …
可变分区分配和释放算法
分配算法一般有:
①最佳适应(Best Fit)算法,它从全部空闲区中找出能 满足作业需求的容量最小的空闲区分配之,此法的着眼 点是使碎片尽量小。
物理(实际)地址=相对(逻辑)地址+定位地址
0: 0+1000 100: Load A,500 100+1000 ……… 500:
1000: 1100:
Load A,1500
1500:
12345
500+1000 800+1000
12345
800: 虚拟空间
1800:
内存空间
静态地址重定位 装入一个作业时,把作业中的指令地址全部转换为绝 对地址(地址转换工作在作业执行前集中一次完成)在作 业执行过程中无须再进行地址转换工作。 优点:加快作业的运行速度。 缺点:作业一旦被装入内存,不允许再移动;程序的存储 空间连续。
500: 600:
1500:
12345
12345
1600: 内存空间
Load A,1500
虚拟空间
优点: (1)目标模快不加修改而装入内存 (2)一个程序有若干个相对独立的目标组成时,各 目标模快装入内存的存储区不必相连
程序在其生命周期各阶段表现出的地址形式 (1)编译或汇编阶段

编译 两个转换: 将语句转换为机器指令 将符号转换为内存地址 注意: 1.转换出的地址可能是相对地址 2.可能不是所有符号都已转换为内存地址
限长寄存器2
作业1
五、覆盖技术
提出背景:
大程序、小空间 解决方法: 按需装入数据,不同时刻执行的代码或数据相互覆盖、 需要事先确定所有代码和数据的位置(相互覆盖位置)
覆盖技术举例
RAM A 20K
A 20K
覆盖区0
B 50K F 30K
C B
C 30K
E 40K
50K
覆盖区1 D 20K 40K
三、可变分区分配
分区的个数大小不是固定不变、分区根据装入的 作业动态划分
可 变 分 区 示 例
可变分区说明表
序号P
1 2 3 4 5 … 已分配分区说明 大小 起址 8K 32K — 120K — … 20K 28K — 92K — … 空闲分区说明表
状态
已分配 已分配 空表目 已分配 空表目 …
二、建立页表
wk.baidu.com、地址变换过程
有效(虚地址)
页表始址寄存器
页表长度 页表起始地址
15 页号
页内相对位移 452 物理地址
0
2
页号
特征
物理块号
8
452
作业2页表
操作系统
LOAD 1,2500
8644 外存 内存
思考1: 对指令LOAD A 5000进行地址重定位(页面长 1K;页表中页面对应关系为0-1、1-3、2-4、3-6 、4-7、5-8、6-9)。 思考2: 对指令LOAD A 5000进行地址重定位(页面长 2K;页表中页面对应关系为0-1、1-3、2-4、3-6 、4-7、5-8、6-9)。
教学难点:
1、地址重定位 2、分页存储管理方式 3.页面置换算法
§4.1 引言
内存管理的需求 内存管理使用的技术
+ + + + + + + + + 分区式管理:固定式、可变式分区、多重分区 页式管理、 段式管理 段页式管理 内存分配 存储保护 地址变换 存储共享 存储扩充
操作系统的存储管理机构必须解决以下问题
可变分区的分配算法
申请分配一个xk 大小的分区 置空闲区号F =1 F=F+1 是 F 已超出最大项号? 否 是 本次无法分配
F 的状态=空表目? = 否 否
LocF的起始地址 大于 F的大小 Xk=新空闲块大小 Loc+Xk=新起始地址

F的大小 Xk?
等于
置F的状态=空表目
在已分配表中找一个 = 状态=空表目的序号 P 置P的大小=Xk 置P置 的始址=Loc 置P置 的=已分配 返回序号P
程序的名字空间、地址空间及存储空间
符号 源程序 名字空间 *.C
: x=x+1 :
汇编 编译 连接
目标 代码 地址空间 *.OBJ
0 : : R=X R=R+1 K X=R
地址重定位
可执行 代码 存储空间 *.EXE

100
: 100+K

:
R=X R=R+1 X=R
:

:

地址重定位:
地址空间中使用的逻辑地址变换成主存空间中的物理地址 的过程。
2016/1/4
§4.4 分段存储管理
一、原因:
(1)分区容易出现碎片(固定、动态)
(2)分页是利用率不高
页式系统中一页或页号相连的几个逻辑页上存 放的内容一般不是一个逻辑意义完整的信息单位, 请调一页时可能只用到一部分内容。
预调:按照某种算法,预测不久将要用到的页面并 预先调入内存待用。 2、淘汰时机
设置空闲临界量
3、淘汰算法
抖动:频繁进行页面调度,造成系统效率下降。
页面淘汰算法 先进先出(FIFO) 最近最久未使用淘汰算法(LRU) 最近不频繁使用淘汰算法(LFU) 最优算法(OPT) 以上几种淘汰算法中,FIFO算法最简单,但效率 不高,有异常现象。LRU的近似算法和LFU是较为实 用的算法,效果较好,实现也不难。OPT算法是一种 最佳算法,但并不实用,因为要跟踪各页面方可预测 未来。而这种预测往往是很困难的。 目的:减少页面交换次数,节约处理机时间
回收示意图
空闲区F1 回收区R 程序区
空闲区F1 回收区R 空闲区F2 程序区
程序区 程序 回收区R 空闲区F2 程序区 程序
程序区 回收区R 程序区
可变分区的回收算法
请求回收分区R
Size分区R的大小 Loc分区的起始地址
已分配区说明表中 置R的状态 = 空表目 否 否 分区R与F2邻接? 是 是 是 SizeSize+ F2的大小 分区R与F1邻接? 否
动态地址重定位: 动态地址重地位是在程序执行过程中,在cpu访问内存 之前,将要访问的程序或数据地址转换成内存地址. 动态重 定位依靠硬件地址变换机构完成。
0: 100: Load A,500 VR 500 实际地址-相对地 址:1000-0
BR
1000: 1100: Load A,500
1000 +
缺页中断处理过程
页表
相对页号 物理块号 特征位
外存地址
0 1
2 3 m-1 存放位置、页表始址寄存器(当前运行用户程序的页表始址)
快表
序号 0 1 相对页号 物理块号 访问过 特征位
2 3
m-1
快表地址映象
3580
5628
快表的地址映象操作
五、页面交换
1、调页方式
请调:动态地址变换机构产生一个缺页中断信号, OS接到信号后调用缺页中断处理程序。
分区R与F1邻接?
在空闲分区表中 找一个空闲表目
置新空闲分区的 大小=Size 始址=Loc 状态=空闲
在空闲分区表中置F2为空闲表目 F2 置空闲分区F 1的大小 =Size+ F1的大小 置空闲分区 F2的 = 大小=Size 始址=Loc
返回
四、多重分区
OS
基址寄存器1
限长寄存器1
作业1
基址寄存器2
F
D
E
对覆盖的认识
(1)覆盖由操作系统自动化完成,但要求作业各模块间有 明确的调用结构,程序员必须正确设计覆盖结构和编程, 任务繁重 (2)额外的I/O操作 覆盖通常限于用在微机和其他内存容量有限的或缺乏对更 先进技术的硬件支持的系统中
六、交换技术
交换(swap)技术:发生进程切换时,总是把当前进程的 所有代码、数据、栈全部从内存复制至外存,再把新当前 进程的所有代码、数据、栈全部从外存复制至内存。
一、主存管理
操作系统内存管理功能的工作范围:
用户对内存的使用要求 硬件无关、应用相关
差距
硬件相关、应用无关 内存硬件的使用特性
二、存储层次、性能指标、主存作用
1、存储层次、性能指标(容量、速度、存取频度、成本)
小 高 高 高
寄存器
内存 外存
容量
速度
存取频度 成本
2、主存作用
辅存(外存)
存储器
主存(内存)
其他补救措施: 1、在内存中的页若未被修改则在被淘汰时不必写回外存
2、预淘汰方式,内存保留少量空页,减少延迟时间
3、优化访问磁盘次序
页式存储管理的保护措施:
1、程序隔离:页面映像方法
2、页面的存取控制:在页表中设置一个保护位
思考3: 采用先进先出页面淘汰算法的系统中, 一进程在内存占4块,页面访问序列为1、2、 3、4、1、2、5、1、2、3、4、5、6、。运行 时会产生( )次缺页中断。
§4.2 分区式存储管理
地址重定位 + 静态重定位 + 动态重定位 固定式分区 可变式分区 多重分区 覆盖与交换 可变分区分配和释放算法
为多个程序安排内存
PCB3 PCB2
程序3 程序2
分配内存
PCB1
OS
程序1 程序2
程序1
程序3
名字空间:程序中符号名的集合
地址空间:一个目标程序所限定的地址范围, 通常把编 译程序形成的从0开始编址的地址空间称为作业的地址 空间。每个可执行程序都有一个自己的地址空间。
②最先适应(First Fit)算法,它按序查找,把最先找到 的满足需求的空闲区分配之,此法的目的在于尽量减少 查找时间。 ③最坏适应(Worst Fit)算法,此法的目的在于使剩下的 空区最大,减少空区碎片机会。 ④下次适应算法(Next Fit),此法将空闲区链成环形链 ,每次分配从上次分配的位置开始查找合适的空闲区。
2016/1/4
请求分页页表
页号 特征 内存块号 外存块号 修改位 访问位
0
此 页 不 在 内 存
1
此 页 在 内 存
0
0
0
1 1
1
0 1
淘 汰 优 先 级
Linux页表项定义
四、缺页处理
产生原因: 当前要执行的页信息不在主存中 调用过程: 文件系统管理
设备管理
进程状态地转换
缺 页 中 断 处 理
系统区(OS标准子程序)
用户区(用户程序、数据)
中 级
主存技术的实际发展由于技 术原因和经济原因,速度赶 不上CPU速度
对主存的性能要求: (1)主存速度要快到与CPU执行指令的速度相匹配
(2)主存容量要大到能装下当前运行的程序与数据 (3)开机上电时主存能一 直正常工作保持稳定可靠
容量赶不上或勉强赶上 应用程序长增长
二、固定分区分配
运行其间不再划分。内存利用率不高
0 20K 区号 1 2 3 4 起始地址 标志 20K 已分配 已分配 36K 68K 已分配 132K 未分配 (a) 分区说明表 大小 16K 32K 64K 124K 36K 68K 操作系统 作业A 作业C
第1分区
第2分区
作业B
第3分区
132K 第4分区 (未分配) (b) 内存分配 图
实存管理
+ 分页原理 + 页表 + 地址变换机构
虚存管理
+ 页表的扩充 + 缺页中断处理 + 页面淘汰算法 + 快表 + 页面共享
一、分页原理
1、等分内存
物理块号
2、等分地址空间
3、地址形式
页号
4、页面尺寸:512-8KB
相对页号P 页内地值D
0 0 0 0 01
页号
0000000000
页内地址
盘交换区:在外存中用于存放所有换出进程的代码、 数据、栈。
交换技术中的五个问题:
1.将哪个进程换出(入)内存? 2.何时应发生交换? 3.交换时需要做那些工作? 4.换回位置的确定原则 5.交换所需时间导致对时间片的影响、对程序长度保存 使用要求、动态扩充时要及时登记的管理要求
§4.3
分页式存储管理
存储空间:是指主存中一系列存储信 息的物理单元的集合。这些单元的编 号称为物理地址或绝对地址、内存地 址。存储空间的大小是由主存的实际 容量决定的。存储空间按字节编址, 从0开始,扩展到系统配置可用的最 大数量。32位计算机的内存空间最大 值?
地址空间是逻辑地址的集合。存储空间是物理地址的集合 一个是虚的概念,一个是实的物体。
(2)连接阶段(可执行目标程序) a.统一各目标程序中的相对地址为该程序的相对地址 b.符号地址 (3)装入阶段 可能需要重定位 (4)执行阶段 可能需要重定位 内存地址(相对地址)
(5)释放空间
以二进制文件驻流在硬盘上
一、分区式存储管理
将内存划分成若干个连续的区域,每个分区只能存储一 个程序。 缺点:内存不能充分利用、内存不能扩充
相关文档
最新文档