第4章 存储管理

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统
大连理工大学出版社
第4章 存储管理
教学目标
本章了解计算机系统的分级存储体系、 地址映射的基本概念与实现方法、分区存 储管理的有关概念与实现方法,重点掌握 分页式存储管理、请求页式存储管理以及 分段式、段页式存储管理的基本原理和相 关技术。
操作系统
大连理工大学出版社
4.1 存储管理概述
4.1.1 计算机存储系统分层结构
存储系统: 分层结构模式 特点: 速度(高速→低速) 容量(高价→低价) 价格(小容量→大容量)
CPU (寄存器)
高速
高速缓存
小容量
主存储器 磁盘缓存 磁 盘 可移动存储介质 低速 大容量
图 4-1 计算机存储系统的分层结构
操作系统
大连理工大学出版社
4.1 存储管理概述
4.1.2 用户程序的处理过程
4.3 覆盖与交换
3. 可变分区分配算法 • 首次适应算法(First fit)
– 缺点
• 每次分配都需要从链首也就是低地址开始查找 • 低地址容易形成多个过小分区成为外部碎片 • 大分区逐渐分割成许多小分区,对大作业不利 • 小分区增加了查寻时的判断时间,降低了分配的效率
操作系统
大连理工大学出版社
4.2 分区存储管理
+
500 1234 „ 600 作业地址空间 1600 1000+500 1500 1234 „
存储空间
操作系统
大连理工大学出版社
4.1 存储管理概述
4.1.2 存储管理的基本概念 4.存储器共享
• • • • 允许多个进程共享主存中的同一个区域 共享区域可以是数据、程序代码等 共享的程序必须是可重入程序(纯代码 ) 存储器共享目的: – 节省内存空间,提高内存利用率 – 通过数据共享实现进程通信
部分按调用关系分段,形成一个或多个覆盖,每个覆盖是一 个相对独立的程序单位 • 采用覆盖技术后,作业可以分为常驻内存部分和覆盖部分
– 常驻内存部分:作业处理过程中始终需要的程序段 – 覆盖部分:作业处理过程中动态调入内存的程序段
• 处理过程:
– 先把常驻内存部分调入 – 存放在辅存的覆盖部分陆续调入
4.2.3 可变式分区存储管理
3. 可变分区分配算法 • 最佳适应算法(Best fit)
– 优点
• 查找次数少,为分区数的一半 • 可避免把大的空闲分区分割成小的空闲分区
– 缺点
• 每次分配一个分区会造成一个无法再利用的小空闲区
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
大连理工大学出版社
第 4章
存储管理
操作系统
大连理工大学出版社
第4章 存储管理
内容提要
本章学习计算机存储系统的层次结构、存 储管理的基本概念、分区存储管理方案;重点 学习分页式与请求页式存储管理方案、分段与 段页式存储管理技术以及虚拟存储管理技术的 具体实现方法;简单了解Linux操作系统的存 储管理技术。
作业 2(10KB)
(a)
(b)
(c)
(d)
(e)
(f)
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
主存的分配与回收
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
外部碎片
• 可变分区随着作业对存储区域的不断申请与释放,将使分区的 数目逐渐增加,每个分区的长度会逐步减小,同时也导致空闲 分区越来越小,使得空闲分区满足作业存储要求的能力下降, 甚至有可能分配不出去
操作系统
大连理工大学出版社
4.3 覆盖与交换
4.3.1 覆盖(Overlay)
覆盖的优缺点:
• 优点
– 可以在小内存中运行大作业
• 缺点
– 用户难以预知程序的覆盖情况
– 用户只能有效地利用自己程序所占用的内存,而不能对整个内存加 以有效利用
– 各进程占用的分区仍会存在碎片
操作系统
大连理工大学出版社
操作系统
大连理工大学出版社
4.1 存储管理概述
4.1.2 存储管理的基本概念 4.存储器保护
• 防止地址越界 – 进程运行时所产生的所有访问地址都必须被检 查,以确保只访问为该进程分配的存储空间 • 正确存取内存 – 进程访问公共区域时,检查进程对内存的操作 方式,防止由于误动作而破坏被存储的内容
操作系统
大连理工大学出版社
4.1 存储管理概述
4.1.2 存储管理的基本概念 2. 存储空间与物理地址
• 存储空间:主存中全部物理单元的集合 • 物理地址:存储器里以字节为单位存储信息, 每一 个字节单元所给予的一个惟一的编号 – 由于它并不和任何相对地址相关,又被称为绝对 地址
操作系统
大连理工大学出版社
操作系统区(20K) 用户分区 1(8K) 用户分区 2(16K) 用户分区 3(32K) 用户分区 4(64K)
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.2 固定分区存储管理 2. 分配与回收
• 系统设置 “主存分配表”,记录各分区的信息及当前 使用情况
分区号 1 2 3 4 起始地址 20K 28K 44K 76K 长度 8K 16K 32K 64K 状态 0 作业1 0 作业2
• 缺点
– “内部碎片”降低了内存的利用率
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
也称为动态分区分配,根据作业的实际需求动态地划分内存的分 区
1. 分配与回收
• 作业进入主存执行之前并不建立分区,当要装入一个 作业时,根据作业需要的主存量查看主存中是否有足 够的空间,若有,则按需要量分割一个分区分配给该 作业;若无,则令该作业等待主存空间
4.2.3 可变式分区存储管理
3. 可变分区分配算法 • 最坏适应算法(Worst fit)
– 优点:
• 查找速度快
• 分区碎片少
– 缺点:
• 会缺失大分区
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
First fit
内存 8KB 24KB 16KB
Best fit
空闲分区 2
可变分区存储管理的地址映射和存储保护
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.4 可变式分区存储管理
1. 内存碎片与移动
• 存储移动(存储紧缩):将内 存中使用的区域经过移动 集中到内存的某一个区域, 使碎片集中到一个区域形 成较大的可使用空闲空间 • 移动技术可以消除碎片, 但增加了系统的开销
可变分区分配算法示例
分配申请
9KB 16KB
8KB
Worst fit
32KB
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
4. 地址映射与存储保护
限长寄存器 限长 基址寄存器 基址 操作系统 空闲分区 1
CPU 相对地址
< 否 越界中断 图 4-15
是 绝对地址
用户作业 1
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.1 单一连续区存储管理 1.内存分配
• 整个内存划分为两个区: – 系统区:分配给操作系 统专用的一个固定分区 – 用户区:剩余的其它内 存区域
系统区
内存 操作系统
作业空间
用户作业 用户区 空闲区
用户作业
操作系统
图 4-5 单一连续区内存分配
大连理工大学出版社
操作系统区 下限寄存器 B 越界中断 CPU 逻辑地址 La 绝对地址 Pa N B≤Pa<B+L2 Y 用户分区 1 用户分区 2 用户分区 3 用户分区 4 B+L2
上限寄存器
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.2 固定分区存储管理 固定分区存储管理的优缺点 • 优点
– 技术简单,需要的硬件支持少 – 支持多道程序工作
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
可变式存储管理的工作原理
操作系统 操作系统 作业 1(16KB) 操作系统 作业 1(16KB) 作业 2(10KB) 空闲区 空闲区 空闲区 作业 3(45KB) 作业 3(45KB) 作业 3(45KB) 操作系统 作业 1(16KB) 作业 2(10KB) 操作系统 空闲区(16KB) 作业 2(10KB) 操作系统 作业 4(10KB)
操作系统 作业 1 操作系统 作业 1 作业 2 作业 2 作业 3 作业 3 作业 3 作业 4 操作系统 作业 1 作业 2
a. 移动前
b. 移动后
c. 装入作业 4
操作系统
大连理工大学出版社
4.3 覆盖与交换
4.3.1 覆盖(Overlay)
覆盖:将程序进行分割,将经常活跃的部分常驻内存,其余
3. 可变分区分配算法 • 最佳适应算法(Best fit)
– 从所有能够满足作业要求的空闲分区中找到一个最 小的分区分配给申请作业
– 要求分区链按照分区容量从小到大递增的顺序形成 空闲分区链
– 分配时从链首开始查找,找到第一个大小作业申请 空间大小最接近的分区予以分配
操作系统
大连理工大学出版社
4.2 分区存储管理
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.2 固定分区存储管理 3. 地址映射 • 一般采用静态重定位
– 分配某一个分区时,将该作业程序指令中的相对地 址与该分区的起始地址相加,得到相应的绝对地址
• 也可采用动态重定位
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.2 固定分区存储管理 固定分区存储管理动态重定位
• 编译:将用户源代码编译成若干个目标模块 • 链接:将目标代码及其库函数链接成装入模块 • 装入:将装入模块装入内存
操作系统
大连理工大学出版社
4.1 存储管理概述
4.1.2 存储管理的基本概念 1. 地址空间与逻辑地址
• 名字空间:存放源程序的空间 • 地址空间:目标程序所占有的地址范围 • 逻辑地址:各个地址以“0” 为参考地址顺序编址 (相对于0的地址,故又称为相对地址 )
4.2.3 可变式分区存储管理
3. 可变分区分配算法 • 首次适应算法(First fit)
– 把最先找到的能满足作业存储要求的那个空闲分区 分配给作业
– 要求空闲分区链以地址递增的顺序链接 – 分配方法:链首 →第一个大小满足的空闲分区→分 配
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
4.2.3 可变式分区存储管理
3. 可变分区分配算法 • 循环首次适应算法(Next fit) – 增加一个起始查寻指针,不再每次都从链首开始查

– 找到适当分区后,按首次适应算法的分配方式进行 分区划分
– 优缺点:减少了查寻次数,但缺失大空闲分区
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理
• 外部碎片(外零头):无法分配给用户使用的空闲分区 • 内部碎片(内零头):分配给了用户而未被用户完全利用 的空闲部分 • 空闲分区的合并是解决外部碎片的有效途径
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.3 可变式分区存储管理 2. 空闲分区的合并
操作系统
大连理工大学出版社
4.2 分区存储管理
1500
1234 …
600 作业地址空间 1600
存储空间
大连理工大学出版社
wk.baidu.com4.1 存储管理概述
4.1.2 存储管理的基本概念
3. 地址重定位
• 动态重定位:在程 序执行过程中动态 地进行地址转换的 方式
重定位寄存器 0 100 MOV AL,[500] „ RR 逻辑地址 500 1100 MOV AL,[500] 1000 0 1000 „
3. 可变分区分配算法 • 最坏适应算法(Worst fit)
– 从所有能够满足作业要求的空闲分区中找到一个最 大的分区分配给申请作业
– 需要将空闲分区链按照分区容量从大到小递减的顺 序排列
– 分配时从链首开始,若链首分区大小不满足,则可 以肯定不存在能够满足要求的分区
操作系统
大连理工大学出版社
4.2 分区存储管理
4.1 存储管理概述
4.1.2 存储管理的基本概念 3. 地址重定位
• 静态重定位:在用 户程序运行之前, 由装入程序把用户 程序中的相对地址 全部转换为存储空 间的绝对地址
操作系统
0 0 100 … MOV AL,[500] 装入程序 1000 1100 … MOV AL,[1500]
500
1234 …
4.2 分区存储管理
4.2.1 单一连续区存储管理 2.地址映射
• 采用静态重定位
3. 存储保护
• 使用界限寄存器保护法
操作系统
大连理工大学出版社
4.2 分区存储管理
4.2.2 固定分区存储管理 1. 划分方法
• 预先把可分配的主存空间分割成若 干个连续的区域,每个区域的大小 可以相同,也可以不同 • 每个用户进程装入连续的存储区域
相关文档
最新文档