第四章 存储器管理小结
第4章存储器管理共115页文档

• 由存储单元(字节或字)组成的一维连续的地 址空间,简称内存空间。用来存放当前正在运 行程序的代码及数据,是程序中指令本身地址 所指的、亦即程序计数器所指的存储器
分为: • 系统区:用于存放操作系统 • 用户区:用于装入并存放用户程序和数据
第四章 存 储 器 管 理
存储管理的功能
=存储分配和回收:分配和回收算法及相应的数据结构。 =地址变换: v可执行文件生成中的链接技术 v程序加载(装入)时的重定位技术 v进程运行时硬件和软件的地址变换技术和机构 =存储共享和保护: v代码和数据共享 v地址空间访问权限(读、写、执行) =存储器扩充:存储器的逻辑组织和物理组织; v由应用程序控制:覆盖; v由OS控制:交换(整个进程空间),虚拟存储的请求调
0 M- 1
模块 B CALL C; Retu rn;
0 模块 C
L 模块 B
JSR “ L+ M” L+ M- 1 Retu rn;
L+ M 模块 C
N- 1 Retu rn;
L+ M+ N- 1 Retu rn;
(a) 目标模块 图 4-3 程序链接示意图 (b) 装入模块
第四章 存 储 器 管 理
第四章 存 储 器 管 理
4.2 连续分配方式
4.2.1 单一连续分配
内存分为两个区域:系统区,用户区。 应用程序装入到用户区,可使用用户区全部空间。 最简 单,适用于单用户、单任务的OS。 优点:易于管理。 缺点:对要求内存空间少的程序,造成内存浪费;程序全 部装入,很少使用的程序部分也占用内存。
第四章 存 储 器 管 理
3. 运行时动态链接(Run-time Dynamic,当发现一个被调用模块尚未装入内存时,立 即由OS去找到该模块并将之装入内存, 把它链接到调用者 模块上。凡在执行过程中未被用到的目标模块,都不会被 调入内存和被链接到装入模块上,这样不仅可加快程序的 装入过程,而且可节省大量的内存空间。
计算机操作系统第四章-存储器管理

第四章存储器管理第0节存储管理概述一、存储器的层次结构1、在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。
但是,在现有技术条件下,任何一种存储装置,都无法从速度、容量、是否需要电源维持等多方面,同时满足用户的需求。
实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。
2、各种存储器•寄存器、高速缓存Cache:少量的、非常快速、昂贵、需要电源维持、CPU可直接访问;•内存RAM:若干(千)兆字节、中等速度、中等价格、需要电源维持、CPU可直接访问;•磁盘高速缓存:存在于主存中;•磁盘:数千兆或数万兆字节、低速、价廉、不需要电源维持、CPU 不可直接访问;由操作系统协调这些存储器的使用。
二、存储管理的目的1、尽可能地方便用户;提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。
(注意cpu和主存储器,这两类资源管理的区别)2、存储管理的主要功能:•地址重定位•主存空间的分配与回收•主存空间的保护和共享•主存空间的扩充三、逻辑地址与物理地址1、逻辑地址(相对地址,虚地址):用户源程序经过编译/汇编、链接后,程序内每条指令、每个数据等信息,都会生成自己的地址。
●一个用户程序的所有逻辑地址组成这个程序的逻辑地址空间(也称地址空间)。
这个空间是以0为基址、线性或多维编址的。
2、物理地址(绝对地址,实地址):是一个实际内存单元(字节)的地址。
●计算机内所有内存单元的物理地址组成系统的物理地址空间,它是从0开始的、是一维的;●将用户程序被装进内存,一个程序所占有的所有内存单元的物理地址组成该程序的物理地址空间(也称存储空间)。
四、地址映射(变换、重定位)当程序被装进内存时,通常每个信息的逻辑地址和它的物理地址是不一致的,需要把逻辑地址转换为对应的物理地址----地址映射;地址映射分静态和动态两种方式。
1、静态地址重定位是程序装入时集中一次进行的地址变换计算。
物理地址= 重定位的首地址+ 逻辑地址•优点:简单,不需要硬件支持;•缺点:一个作业必须占据连续的存储空间;装入内存的作业一般不再移动;不能实现虚拟存储。
第04章存储器管理

第四章 存储器管理
4.3 连续分配方式
连续分配方式是指一个进程在内存中必须占 用连续的存储空间。典型的连续分配方式主要有: 单一连续分配、固定分区分配、动态分区分配、 动态重定位分区分配等。 4.3.1 单一连续分配 • 把内存分为系统区和用户区两部分,系统区仅提 供给OS使用;用户区是指除系统区以外的全部内 存空间,提供给用户使用。 • 优点:简单,易于管理 • 缺点:只能用于单用户单任务OS;内存利用率低, 毫无共享性可言。早已淘汰。
– (1) 静态链接。在程序运行之前,先将各目标模块及 它们所需的库函数,链接成一个完整的装配模块, 以后不再拆开。我们把这种事先进行链接的方式称 为静态链接方式。
– (2) 装入时动态链接。这是指将用户源程序编译后所 得到的一组目标模块,在装入内存时,采用边装入 边链接的链接方式。
– (3) 运行时动态链接。这是指对某些目标模块的链接, 是在程序执行中需要该(目标)模块时,才对它进行 的链接。
27
第四章 存储器管理
• 引入:分区存储管理原理
① 将内存分为一些大小相等或不等的分区 (Partition),每个进程可占用一个分区。
12500
365
15000
如果不进行地址变 换,那么这条指令 将无法取到正确的 数值“365”,所以 该指令中的地址应 该重定位为:
LOAD 1 , 12500
图4-3 装入内存时的情况
物理内存空间
静态地址重定位:
指令或数据的内存地址MA = 该指令或数据的虚拟地址VA + 该程序在内存中的首地址BA 22
3
第四章 存储器管理
➢容量越来越大,价格越来越低
– 以下是近年来关于硬盘价格的趣味数字
第四章 存储器管理(08)

K X=R
:
100
:
R=X
: R=R+1
100+K X=R
:
程序的名字空间、地址空间及存储空间
第一章 绪论
2021/6/30
6
4.2 程序的链接和装入
第一章 绪论
2021/6/30
7
1. 链接 静态链接示意图:
第一章 绪论
2021/6/30
8
2. 装入
三种装入方式:
绝对装入方式 (×,不适用于多道环境)
第一章 绪论
2021/6/30
17
例: 动态分区内存使用情况示意图
第一章 绪论
2021/6/30
18
为实现动态分区的管理,必须记录内存的 分配情况。为此,系统中有两种数据结构:
空闲分区表
用于记录每个空闲分区的情况。
空闲分区链
实现对空闲分区的分配和链接。
第一章 绪论
2021/6/30
19
例:
界限寄存器保护:
如果 60K > 访问地址 > =124K , 则产生访问地址界中断。
第一章 绪论
2021/6/30
36
4.3.5 覆盖与交换技术
在分区式管理中,可以使用覆盖或交换技 术来扩充内存。
覆盖技术主要用在早期的操作系统中. 交换技术在现代操作系统中仍具有较强的生
命力。
第一章 绪论
2021/6/30
下次适应法(循环首次适应法) 该作业。
最佳适应法 最坏适应法 快速适应法
优点:碎片少。 缺点:会造成缺少大分 区。
第一章 绪论
2021/6/30
27
装入到那些空闲块适合?
须按一定的算法。
计算机操作系统 第4章 存储器管理

F1 回收区 F2
4.2.3 分区分配算法
有五种分配算法 首次适应法 循环首次适应法 最佳适应法 最坏适应法 快速适应算法
首次适应法(First 首次适应法(First Fit) 要求空闲分区按地址递增次序排列 要求空闲分区按地址递增次序排列 地址递增 从头顺序搜索空闲分区表( 从头顺序搜索空闲分区表 ( 链 ) , 直至找到 第一个大小合适的分区为止 第一个大小合适的分区为止 进行分区分配 固定分区: 固定分区:将整个分区分配给请求进程 可变分区: 可变分区:根据需要划分适当分区 特点 地址低端利用充分, 地址低端利用充分,保留地址高端大空间 对固定分区容易形成内碎片 对固定分区容易形成内碎片 对可变分区容易形成外碎片 对可变分区容易形成外碎片
分区分配操作
从头开始查表 Y
检索完否? 检索完否?
返回 N
∑m.size≥u.size? ?N源自m.size>u.size?
Y Y
m.size-u.size≤size?
N
Y 实施拼接,形成大分区 实施拼接, 修改相应的数据结构 分配失败
N 分配m.size 分配m.size 大小分区 从该分区中划出 u.size大小的分区 u.size大小的分区 分配给请求者 修改相应数据结构 返回分区号及始址
3.内存容量的“扩充” 内存容量的“扩充”
内存容量的扩充是逻辑上的扩充 有三种技术可以扩充内存 覆盖技术:要求用户提供覆盖结构 覆盖技术: 交换技术: 交换技术:通过中级调度缓解内存压力 虚拟存储器技术:内存、 虚拟存储器技术:内存、外存结合 引入: 引入:请求调入功能 置换功能
4.地址映射 相关概念 符号空间(符号地址) 符号空间(符号地址) 进程空间(逻辑地址) 进程空间(逻辑地址) 存储空间(物理地址) 存储空间(物理地址) 符号空间 程序员定义的标识符 程序符号的集合 没有地址的概念
操作系统第四章-第四章存储器管理-精品

L+M-1 Return;
L+M
模块 C
L+M+N-1 Return;
内存
Operating System
2019/10/24
Page 25
程序的链接
运行时动态链接(Run-time Dynamic Linking) 应用程序在每次运行的模块可能不相同
运行时动态链接方式将对某些模块的链接 推迟到执行时才进行,即在执行过程中, 当发现一个被调用模块尚未装入内存时, 立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上
12500
365
5000 作业 地 址空
15000
间
缺点:不断的分配和回收,造成内存中小空闲块很多,总
空闲空间量够,但分配不了
内 存空 间
办法:紧凑(移作动)业,装但入该内装存入时方法的不情支况持
Operating System
2019/10/24
Page 16
程序的装入
0
1000 LOAD 1,2500
绝对地址的产生
程序员直接赋予。不仅要求程序员熟悉内存 使用情况,而且一旦程序或数据被修改后, 可能要改变程序中的所有地址。通常在程序 中采用符号地址,在编译或汇编时,再将符 号地址转换为绝对地址。
编译或汇编时产生
Operating System
2019/10/24
Page 14
程序的装入
2019/10/24
Page 9
程序的装入和链接
程序的装入 程序的链接
Operating System
2019/10/24
Page 10
程序的装入
多道程序环境下,程序要运行必须为之创建进程, 而创建进程的第一件事就是分配内存
心得体会 存储器管理,心得体会

存储器管理,心得体会存储器管理,心得体会目录1.相关知识................................................................................................................. .. (4)1.1空闲盘块的组织.................................................................................................................41.2空闲盘块的分配与回收.....................................................................................................52.系统设计................................................................................................................. .. (5)2.1算法及说明................................................................................................................. ........52.2算法流程图................................................................................................................. ........62.3数据结构及各子程序.........................................................................................................63.成果................................................................................................................. . (7)3.1磁盘存储空间的分配.........................................................................................................73.2磁盘存储空间的回收.........................................................................................................73.3结束................................................................................................................. ....................84.总结................................................................................................................. . (9)4.1个人总结赵勋................................................................................................................. .94.2个人总结史迎丰 (10)4.3个人总结齐泓洋 (11)4.4个人总结李霖................................................................................................................ 125.参考文献................................................................................................................. (12)《操作系统》课程设计任务书1.相关知识1.1空闲盘块的组织(1)空闲盘块好栈用来存放当前可用的一组空闲的盘块好(最多含100个号),以及栈中尚有的空闲盘块号数N。
第4章 存储器管理总结

2
1、从源程序到程序执行
③装入:由装入程序将装入模块复制到内存中。 ①编译:由编译程序将用户源代码编译成若干个 ②链接:由链接程序将编译后形成的一组目标模 目标模块。 块,以及它们所需要的库函数链接在一起,形成 装入模块。
库 主 主 装入程序 库 子1 子2
主
链接程序 汇编编译 子1 子2 目标模 块
9
1、单一连续分配
(1)基本思想 系统区:供OS使用,通常放在低址部分 内存 用户区:系统区以外的全部内存空间 (2)特点 只能用于单用户、单任务的OS中。 软件简单,硬件要求低(无需存储保护) (3)实例 CP/M,MS-DOS,RT-11
10
系统区
系统参数区
BDOS BIOS CCP
进程B
进程B 进程C
进程B 进程C 进程D
15
内存分配变化过程
OS
OS
A(8K)
OS
A(8K)
A(8K)
进程B(16K) 16K 空闲区 空闲区 16K 进程D(124K) 完成 E(50K) 空闲合并 空闲合并 124+14 124+14 =138K =138K D(124K) 8K空闲区
16
B(16K) 进程E(50K) B(16K) 进程F(16K) E(50K) 进入内存 C完成(64K) 14K空闲区 空闲区
01FFF 子2
相对地址 源程序/单个目标模块
物理地址 内存
4
3、程序的链接
0 链接:一组目标模块和库函数 ——装入模块 0 模块A 模块A Call B; 具体工作:对相对地址的修改;变换外部调用符号。 JSR”L”; Return; …; L-1 L-1 链接方式: L 模块B 0 ①静态链接 模块B JSR”L+M”; …; Call C; 链接 L+M-1 ②装入时动态链接:便于修改和更新;便于共享。 Return; L+M 模块C M-1 ③运行时动态链接:最小化快速装入,节省内存。 ……; 0 N-1 模块C ……; Return; L+M+N-1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章存储器管理小结
1.重定位的基本概念机及其应用
1)为什么要引入重定位,在装入作业时引入重定位有何
优点
2)在连续分配方式、分页系统、分段系统中分别是如何
实现动态重定位的
2.动态分区分配方式
1)如何提高内存利用率
2)分配算法
3)如何进行内存的分配与回收
3.基本分页和分段管理存储方式
1)分页存储管理方式
2)分页系统的地址转换
3)分段存储管理方式
4)信息的共享与保护
4.虚拟存储器的基本概念
1)为什么要引入虚拟存储器
2)虚拟存储器的定义
3)虚拟存储器具有哪些特征
4)实现虚拟存储器的关键技术是什么
5.请求分页系统的基本原理
1)页表机制
2)地址变换过程
3)页面置换算法。