大工21春《操作系统概论》复习资料十
《操作系统概论》辅导资料十主题:第4章存储管理(第1—2节)学习时间:2020年6月1日--6月7日“不忘初心、牢记使命”主题理论学习:
“我们既要绿水青山,也要金山银山。宁要绿水青山,不要金山银山,而且绿水青山就是金山银山。”要按照绿色发展理念,树立大局观、长远观、整体观,坚持保护优先,坚持节约资源和保护环境的基本国策,把生态文明建设融入经济建设、政治建设、文化建设、社会建设各方面和全过程,建设美丽中国,努力开创社会主义生态文明新时代。
摘选自《习近平总书记系列重要讲话读本》内容:
第4章存储管理
这周我们将学习课件第4章中的第1—2节,下面整理出的理念框架供同学们学习。
本篇的基本要求:
1.逻辑地址、物理地址和虚拟地址
2.掌握分区式存储管理
重点掌握内容:
1. 逻辑地址和物理地址,静态重定位和动态重定位4.1 程序的链接和装入
源程序转变为可执行程序,首先由编译程序把源程序编译成若干个目标模块,在通过链接程序把所有目标模块和它们需要的库函数链接在一起,形成可装入模块。通过装入程序把可装入模块装入内存而运行。
一、逻辑地址、物理地址和虚拟地址
(1)逻辑地址
用户源程序经编译、链接后得到可装入程序。由于无法预知程序装入内存的具体位置,因此不可能在程序中直接使用内存地址,只能规定程序的起始地址为0,而程序中指令和数据的地址都是相对0起始地址进行计算。按照这种方法确定的地址称为逻辑地址或相对地址。一般情况下,目标模块(程序)和装入模块(程序)中的地址都是逻辑地址。
(2)逻辑地址空间
一个目标模块(程序)或装入模块(程序)的所有逻辑地址的集合,称为逻辑地址空间或相对地址空间。
(3)物理地址
内存中实际存储单元的地址称为物理地址。物理地址也称为绝对地址,内存地址等。当程序被装入内存后,要使程序能够运行,必须将代码和数据的逻辑地址转换为物理地址,这个转换操作称为“地址变换”。
(4)物理地址空间
内存中全部存储单元的物理地址集合称为物理地址空间、绝对地址空间或内存地址空间。由于每个内存单元都有唯一的内存地址编号,因而物理地址空间是一个一维的线性空间。为了使程序在装入后能够正常运行,互不干扰,必须将不同程序装入到不同的内存空间位置。
(5)虚拟地址空间和虚拟地址
CPU支持的地址范围一般远大于机器实际主存的大小,对多出来的那部分地址,程序仍然可以使用,程序能使用的整个地址范围称为虚拟地址空间(虚空间),该空间中的某个地址称为虚拟地址。在大多数系统中,物理地址空间只是虚拟地址空间的一个子集。
二、程序链接
源程序经过编译后所得到的目标模块,必须由链接程序将其链接成一个完整的可装入模块后,方能装入内存运行。
三、程序装入
根据内存的当前情况,将装入模块装入到内存合适的物理位置。装入操作针对的是程序的整个逻辑地址空间,而对应的物理地址空间既可以是连续存放的,也可以是离散存放的。
模块装入后并不能立刻运行,因为模块中每个指令要访问的地址仍然是相对地址,并不是内存中的实际物理地址,无法直接进行访问。要使装入内存的程序能够运行,必须将程序中的逻辑地址转换为机器能直接寻址的物理地址,这种地址转换操作称为“地址映射”、“地址变换”或“重定位”。4.2分区式存储管理
分区式存储管理对内存采用连续分配方式,即根据用户程序的需求为之在内存中分配一段连续的存储空间,它属于最简单的内存管理方式,主要应用20世纪60~70年代的OS中,至今仍在内存分配方式中占有一席之地。
分区式存储管理可以进一步划分:
单一连续分区存储管理
固定分区存储管理
可变分区存储管理
一、固定分区存储管理
1.实现原理
固定分区存储管理方式是最简单的一种可运行多道程序的存储管理方式。将内存用户空间划分成若干个固定大小的区域,每个区域称为一个分区,可以装入一个用户程序运行,分区一旦划分完成,便在系统整个运行期间保持不变。
/
固定分区技术分给每个作业一块足够大(应大于、等于作业大小)的主存分区,不允许两个作业同时放在同一个分区中。
在多道固定分区情况下,操作系统的存储分配模块和存储释放模块都要用到关于主存分区情况的说明信息,以及这些存储区的使用状况信息(即存储管理的数据基),我们把以上这些信息统称为“存储分块表(MBT表)”。存储分块表通常包含三项信息:
(1)大小,指出该存储块的大小,以字节为单位。
(2)位置,指出该存储块在主存中的起始地址。
(3)状态,表明该存储块是否已被使用。二、可变分区存储管理
1.实现原理
该方式在程序运行前并不建立分区,内存分区在程序运行时根据程序对内存空间的需要而动态建立,分区的划分时间、大小及位置都是动态的,因此这种管理方式又称为“动态分区分配”。
分区的大小完全按照装入进程的实际大小确定,且分区的数目可变,这种分配方式能够有效减少固定分区方式中出现的内存空间浪费,进一步提高内存资源的利用率。
在实现可变分区分配时,将涉及到分区分配中所用的数据结构、分区分配算法和分区的分配和回收。
可变分区存储管理中各功能模块要用的数据基的几种组织方法:
(1) 存储分块表(MBT表)
可变分区技术仍然可以使用固定分区方法中所讲的存储分块表结构,但在可变分区技术中使用这种方法存在两个缺点:
① 由于分区个数是变化的,所以表长不好确定,造成表格管理上的困难.
② 分配主存时,为查找一块合适的空闲分区所需扫描的表目增加,因为整个表的长度增加了(其中分别包含很多已分分区和空闲分区),所以查找速度慢了.
(2) 分开设置两个存储管理表
/
这种组织方法可以减少存储分配和释放时查找表格的长度,从而提高查找速度.两个表格的形式如下图:
/
(3) 空闲存储块链(使用最广泛的数据基组织方法)
该数据基组织方法的具体实现方法如下:把每个空闲存储块起始的若干个字节分为两部分:前一部分作为链指针,它指向下一空闲存储块的起始地址,后一部分指出本空闲存储块的大小.系统中用一固定单元作为空闲存储链的头指针用以指出该链中的第一块空闲存储块的起始地址.最后一块空闲存储块的链指针中放着链尾标志(如0).
/
2.存储分配算法
可变分区的存储分配算法一般有以下三种:
(1) 最佳适应法
从所有未分配的分区中挑选一个最接近作业尺寸且大于或等于作业大小的分区分给要求的作业.从而使分区内未用部分浪费的最少.
优点:
最佳适应算法能尽量多地保留容量大的分区,使被选中的分区剩下尽可能小的未用碎片.
缺点:
系统中会产生许多小得无法再用的碎片.(2) 最先适应法
即按分区序号从存储分块表的第一个表目起查找该表,把最先找到的且大于或等于作业大小的未分配分区分给要求的作业.这种分配算法的着眼点在于缩短查找时间.
优点: 缩短存储分配时间
缺点: 主存空间分配不均匀,可能造成浪费(3) 最坏适应法
从所有未分配的分区中挑选最大的且大于或等于作业大小的分区分给要求的作业.
优点:与最佳适应法相比,分配后剩下的分区足够大,一般可以满足后续要求.
缺点:对于个别需要大空间的作业,可能无法满足.重要考点
一、选择题
1、在下列存储管理方案中,不适应于多道程序设计的是()。
A、单一连续区分配
B、固定式分区分配
C、可变式分区分配
D、段页式存储管理
答:A
解析:采用多道程序设计技术,就要在内存中同时存放多道程序,这就要求存储管理解决以下四个重要问题,以达到尽可能方便用户使用和充分利用内存以提高内存利用率的目的:
1.内存空间的分配和回收
2.内存空间的共享与存储保护
3.地址映射(地址重定位)
4.内存扩充
常见的存储管理方式:
1、连续分区存储管理2、固定分区存储管理3、可重定位分区存储管理4、非请求分页式存储管理5、请求分页式存储管理6、段页式存储管理
1、连续分区存储管理
这是一种最简单的存储管理方式,系统是将整个内存除了给操作系统划分出一块空间外,其余部分的空间都分配给一个作业使用。当作业被调度时,进程全部进入内存,一旦完成,所有主存恢复空闲。个人机可采用此种管理方法,它不适宜多道程序设计系统。
2.重定位分为静态重定位和动态重定位,其中动态重定位是指程序的重定位是在()进行的。
A.程序完成时
B.程序执行中
C.程序执行前
D.以上都不对
答:B
分析:注意分析静态重定位和动态重定位的区别。
3.设内存的分配情况如下图所示。若要申请一块40K字节的内存空间,若采用可变分区的存储分配算法中最佳适应算法,则所得到的分区首址为( )。
A.330K B.410K
C.190K D.100K
首地址
内存分配情况
0
占用
100k
180k
占用
190k
280k
占用
330k
390k
占用
410k
512k
答:A
分析:首先看算法选择哪个算法,题目要求是最佳适应算法。最佳适应法----按作业要求挑选一个
最小空闲区(空闲区表按长度从小到大登记)。其次再判断题目中所给出可以分配的内存。
(1)100k-180k(大小80k),分配完40k以后,空闲区域40k
(2)190k-280k(大小90k),分配完40k以后,空闲区域50k
(3)330k-390k(大小60k),分配完40k以后,空闲区域20k
(4)410k-512k(大小102k),分配完40k以后,空闲区域62k。
找出最小空闲区,应该是(3),首地址为330K二、名词解释
1.逻辑地址:规定程序的起始地址为0,而程序中指令和数据的地址都是相对0起始地址进行计算。按照这种方法确定的地址称为逻辑地址。
2.逻辑地址空间:一个目标模块(程序)或装入模块(程序)的所有逻辑地址的集合,称为逻辑地址空间。
3.物理地址:内存中实际存储单元的地址称为物理地址。
4.地址变换:将代码和数据的逻辑地址转换为物理地址,这个转换操作称为地址变换。
5.物理地址空间:内存中全部存储单元的物理地址集合称为物理地址空间。
6.虚拟地址空间:程序能使用的整个地址范围称为虚拟地址空间。南开答案可以联系QQ 761296021
页:
[1]