计算机操作系统第四章-存储器管理
- 格式:doc
- 大小:1.18 MB
- 文档页数:31
注意:1)“本章要点”部分,用红字标注的不是期末考试出题范围。
2)“习题部分”用蓝字标注的是重点习题,期末考试50%的题目是这些习题的原题。
红字标注的习题期末考试不考,仅供考研的同学参考。
3)大部分习题答案只给出要点,同学们可以自行适当补充,但一定要简明扼要。
4)如“本章要点”部分用红字标注的非考试内容,在“习题”部分有相关的重点习题,则对该部分内容只需做该习题即可。
------------------------------------------------------------第四章存储器管理要点4.1 存储器的层次结构理解P116图4-1的存储器层次结构,知道这种结构从经济上考虑,具有好的性能/价格比。
了解P117-118高速缓存CACHE和磁盘缓存,知道它们使用的淘汰算法与虚拟内存的页面置换算法是基本相同的。
4.2 程序的装入和链接这一小节的内容是一些重要的专业常识。
应了解本小节介绍的各种装入和链接方法,要求结合Windows操作系统及C 语言的实际去理解上述装入和链接方法(联系实际部分可上网查询)。
4.3 连续分配方式通用操作系统大都不用连续分配方式,有些嵌入式OS可能使用这种分配方式。
这一小节只需阅读P121-124即可。
4.4 基本分页存储管理方式这是本章最重要的一小节,要求全读。
重点理解页面、物理块、页表、页表的访存、物理地址、逻辑地址、快表(TLB)等概念及相互关系。
4.5 基本分段存储管理方式阅读4.5.1,知道为什么要分段。
阅读4.5.2 知道分段的原理。
考研的同学要知道段表、地址变换,知道分段和分页的主要区别。
阅读4.5.3 知道分段有利于信息共享,知道“纯代码”的概念。
阅读4.5.4 知道什么是段页式存储。
需要补充说明的是:教材说过,分段方便编程,主要是指方便汇编语言程序员,和设计高级语言编译器的程序员。
对使用高级语言进行应用编程的程序员来说,段是透明的,一般不能用高级语言代码去操作段。
第四章存储器管理第一部分教材习题(P159)15、在具有快表的段页式存储管理方式中,如何实现地址变换?答:在段页式系统中,为了便于实现地址变换,须配置一个段表寄存器,其中存放段表始址和段长TL。
进行地址变换时,首先利用段号S,将它与段长TL进行比较。
若S<TL,表示未越界,利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得到该段的页表始址,并利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再利用块号b和页内地址来构成物理地址。
在段页式系统中,为了获得一条指令或数据,须三次访问内存。
第一次访问内存中的段表,从中取得页表始址;第二次访问内存中的页表,从中取出该页所在的物理块号,并将该块号与页内地址一起形成指令或数据的物理地址;第三次访问才是真正从第二次访问所得的地址中,取出指令或数据。
显然,这使访问内存的次数增加了近两倍。
为了提高执行速度,在地址变换机构中增设一个高速缓冲寄存器。
每次访问它时,都须同时利用段号和页号去检索高速缓存,若找到匹配的表项,便可从中得到相应页的物理块号,用来与页内地址一起形成物理地址;若未找到匹配表项,则仍须再三次访问内存。
19、虚拟存储器有哪些特征?其中最本质的特征是什么?答:虚拟存储器有以下特征:多次性:一个作业被分成多次调入内存运行,亦即在作业运行时没有必要将其全部装入,只需将当前要运行的那部分程序和数据装入内存即可;以后每当要运行到尚未调入的那部分程序时,再将它调入。
多次性是虚拟存储器最重要的特征,任何其他的存储器管理方式都不具有这一特征。
因此,认为虚拟存储器是具有多次性特征的存储器系统。
对换性:允许在作业的运行过程中进行换进、换出,也即,在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外存的对换区(换出),待以后需要时再将它们从外存调至内存(换进);甚至还允许将暂不运行的进程调至外存,待它们重又具备运行条件时再调入内存。
第四章存储器管理第0节存储管理概述一、存储器的层次结构1、在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。
但是,在现有技术条件下,任何一种存储装置,都无法从速度、容量、是否需要电源维持等多方面,同时满足用户的需求。
实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。
2、各种存储器•寄存器、高速缓存Cache:少量的、非常快速、昂贵、需要电源维持、CPU可直接访问;•内存RAM:若干(千)兆字节、中等速度、中等价格、需要电源维持、CPU可直接访问;•磁盘高速缓存:存在于主存中;•磁盘:数千兆或数万兆字节、低速、价廉、不需要电源维持、CPU 不可直接访问;由操作系统协调这些存储器的使用。
二、存储管理的目的1、尽可能地方便用户;提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。
(注意cpu和主存储器,这两类资源管理的区别)2、存储管理的主要功能:•地址重定位•主存空间的分配与回收•主存空间的保护和共享•主存空间的扩充三、逻辑地址与物理地址1、逻辑地址(相对地址,虚地址):用户源程序经过编译/汇编、链接后,程序内每条指令、每个数据等信息,都会生成自己的地址。
●一个用户程序的所有逻辑地址组成这个程序的逻辑地址空间(也称地址空间)。
这个空间是以0为基址、线性或多维编址的。
2、物理地址(绝对地址,实地址):是一个实际内存单元(字节)的地址。
●计算机内所有内存单元的物理地址组成系统的物理地址空间,它是从0开始的、是一维的;●将用户程序被装进内存,一个程序所占有的所有内存单元的物理地址组成该程序的物理地址空间(也称存储空间)。
四、地址映射(变换、重定位)当程序被装进内存时,通常每个信息的逻辑地址和它的物理地址是不一致的,需要把逻辑地址转换为对应的物理地址----地址映射;地址映射分静态和动态两种方式。
1、静态地址重定位是程序装入时集中一次进行的地址变换计算。
物理地址= 重定位的首地址+ 逻辑地址•优点:简单,不需要硬件支持;•缺点:一个作业必须占据连续的存储空间;装入内存的作业一般不再移动;不能实现虚拟存储。
第四章存储器管理一、单项选择题1、存储管理的目的是(C )。
A.方便用户B.提高内存利用率C.方便用户和提高内存利用率D.增加内存实际容量2、在( A)中,不可能产生系统抖动的现象。
A.固定分区管理B.请求页式管理C.段式管理D.机器中不存在病毒时3、当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为(B )。
A.源程序B.目标程序C.可执行程序D.非执行程序4、可由CPU调用执行的程序所对应的地址空间为(D )。
A.符号名空间B.虚拟地址空间C.相对地址空间D.物理地址空间5、存储分配解决多道作业[1C]划分问题。
为了实现静态和动态存储分配,需采用地址重定位,即把[2C]变成[3D],静态重定位由[4D]实现,动态重定位由[5A]实现。
供选择的答案:[1]:A 地址空间 B 符号名空间 C 主存空间 D 虚存空间[2]、[3]: A 页面地址 B 段地址 C 逻辑地址 D 物理地址 E 外存地址 F 设备地址[4]、[5]: A 硬件地址变换机构 B 执行程序 C 汇编程序D 连接装入程序E 调试程序F 编译程序G 解释程序6、分区管理要求对每一个作业都分配(A )的内存单元。
A.地址连续B.若干地址不连续C.若干连续的帧D.若干不连续的帧7、(C )存储管理支持多道程序设计,算法简单,但存储碎片多。
A.段式B.页式C.固定分区D.段页式8、处理器有32位地址,则它的虚拟地址空间为( B)字节。
A.2GBB.4GBC.100KBD.640KB9、虚拟存储技术是( A)。
A.补充内存物理空间的技术B.补充相对地址空间的技术C.扩充外存空间的技术D.扩充输入输出缓冲区的技术10、虚拟内存的容量只受( D)的限制。
A.物理内存的大小B.磁盘空间的大小C.数据存放的实际地址D.计算机地址字长11、虚拟存储技术与(A )不能配合使用。
A.分区管理B.动态分页管理C.段式管理D.段页式管理12、(B )是指将作业不需要或暂时不需要的部分移到外存,让出内存空间以调入其他所需数据。
第四章存储管理1. C存储管理支持多道程序设计,算法简单,但存储碎片多。
A. 段式B. 页式C. 固定分区D. 段页式2.虚拟存储技术是 B 。
A. 补充内存物理空间的技术B. 补充相对地址空间的技术C. 扩充外存空间的技术D. 扩充输入输出缓冲区的技术3.虚拟内存的容量只受 D 的限制。
A. 物理内存的大小B. 磁盘空间的大小C. 数据存放的实际地址D. 计算机地址位数4.动态页式管理中的 C 是:当内存中没有空闲页时,如何将已占据的页释放。
A. 调入策略B. 地址变换C. 替换策略D. 调度算法5.多重分区管理要求对每一个作业都分配 B 的内存单元。
A. 地址连续B. 若干地址不连续C. 若干连续的帧D. 若干不连续的帧6.段页式管理每取一数据,要访问 C 次内存。
A. 1B. 2C. 3D. 47.分段管理提供 B 维的地址结构。
A. 1B. 2C. 3D. 48.系统抖动是指 B。
A. 使用计算机时,屏幕闪烁的现象B. 刚被调出内存的页又立刻被调入所形成的频繁调入调出的现象C. 系统盘不干净,操作系统不稳定的现象D. 由于内存分配不当,造成内存不够的现象9.在 A中,不可能产生系统抖动现象。
A. 静态分区管理B. 请求分页式管理C. 段式存储管理D. 段页式存储管理10.在分段管理中 A 。
A. 以段为单元分配,每段是一个连续存储区B. 段与段之间必定不连续C. 段与段之间必定连续D. 每段是等长的11.请求分页式管理常用的替换策略之一有 A 。
A. LRUB. BFC. SCBFD. FPF12.可由CPU调用执行的程序所对应的地址空间为 D 。
A. 名称空间B. 虚拟地址空间C. 相对地址空间D. 物理地址空间13. C 存储管理方式提供二维地址结构。
A. 固定分区B. 分页C. 分段D. 物理地址空间14.当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为B 。
A. 源程序B. 目标程序C. 可执行程序D. 非执行程序15.目录程序指令的顺序都以0作为一个参考地址,这些地址被称为 A 。
一、单项选择题1.在存储管理方案中,可与覆盖技术配合。
A. 页式管理B.段式管理C.段页式管理D.可变分区管理2.在存储管理中,采用覆盖与交换技术的目的是。
A. 节省主存空间B.物理上扩充主存容量C. 提高CPU效率D.实现主存共享3.动态重定位技术依赖于。
A. 重定位装入程序B.重定位寄存器C. 地址机构D.目标程序4. 虚拟存储器的最大容量。
A. 为内外存容量之和B.由计算机的地址结构决定C.是任意的 D. 由作业的地址空间决定5.在虚拟存储系统中,若进程在内存中占3块(开始时为空),采用先进先出页面淘汰算法,当执行访问页号序列为1、2、3、4、l、2、5、1、2、3、4、5、6时,将产生次缺页中断。
A.7 B.8 C.9 D.106.很好地解决了“零头”问题的存储管理方法是。
A. 页式存储管理B.段式存储管理C. 多重分区管理D.可变式分区管理7.系统“抖动”现象的发生是由引起的。
A. 置换算法选择不当B.交换的信息量过大C. 内存容量不足D. 请求页式管理方案8.分区管理中采用“最佳适应”分配算法时,宜把空闲区按次序登记在空闲区表中。
A. 长度递增B.长度递减C. 地址递增D. 地址递减9.在固定分区分配中,每个分区的大小是。
A. 相同B.随作业长度变化C. 可以不同但预先固定D.可以不同但根据作业长度固定10.实现虚拟存储器的目的是。
A. 实现存储保护D.实现程序浮动C.扩充辅存容量D.扩充主存容量11.采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是。
A.224B.216C.28D.23212.作业在执行中发生了缺页中断,经操作系统处理后,应让其执行指令。
A. 被中断的前一条B.被中断的C.被中断的后一条D.启动时的第一条13.把作业地址空间中使用的逻辑地址变成内存中物理地址的过程称为。
A. 重定位B.物理化C.逻辑化D.加载14.首次适应算法的空闲区是。
《操作系统》2个教案《操作系统》教案章节名称:第四章存储器管理第1节程序的装⼊与链接第2节连续分配⽅式任课教师:(计算机科学系)张雪亚教材:《计算机操作系统》(汤⼦瀛编)(西安电⼦科技⼤学出版社)⼀、教学⽬的和要求1.回忆存储器的相关知识,为后⾯的学习打好基础.2.了解程序装⼊与链接的⼏种不同⽅法.3.熟悉连续的内存分配⽅式4.掌握动态分区分配的实现⽅法⼆、教学重点及难点1. 重点:动态分区分配,可重定位分区分配.2. 难点:重定位的基本概念:①为何引⼊?②如何实现?动态分区分配:①数据结构②分配算法③分配过程三、学时分配第⼀课时:引⾔,程序的装⼊⽅法,程序的连接⽅法.第⼆课时:连续分配的四种⽅式,作业.四、教学⽅法1.课堂讲授。
2.课后实验。
五、教学⼿段课堂讲授为主,如果有投影设备,可以使⽤多媒体课件向学⽣演⽰。
六、教学过程引⾔从这节课开始,我们将进⼊存储器管理的学习。
存储器是计算机系统的重要组成部分,近年来,存储器的容量虽然⼀直在不断的扩⼤,但仍然不能满⾜现代软件发展的需要,因此存储器仍然是⼀种宝贵⼜紧俏的资源。
所以如何对它加以有效的管理不仅直接影响到存储器的利⽤率,还对系统的性能有很⼤影响。
存储器的功能结构如下图所⽰,在本章中我们的主要研究对象是内存。
第⼀课时程序的装⼊和链接在多道程序环境下,程序要运⾏必须为之创建进程,⽽创建进程的第⼀件事,就是要将程序和数据装⼊内存。
如何将⼀个⽤户源程序变为⼀个可在内存中执⾏的程序,通常要经过以下⼏步:(1)编译:由编译程序(Compiler )将⽤户源代码编译成若⼲个⽬标模块(ObjectModule )。
(2)链接:由链接程序(Linker)将编译后形成的⽬标模块以及它们所需要的库函数,链接在⼀起,形成⼀个装⼊模块(Laod Module );(3)装⼊:由装⼊程序(Loader )将装⼊模块装⼊内存。
⼀、程序的装⼊⽅法为了阐述上的⽅便,我们先介绍⼀个⽆须进⾏链接的单个⽬标模块的装⼊过程。
第四章存储器管理1. 为什么要配置层次式存储器?这是因为:a.设置多个存储器可以使存储器两端的硬件能并行工作。
b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。
c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。
增加CPU中寄存器的数量,也可大大缓解对存储器的压力。
2. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?将程序装入内存可采用的方式有:绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中。
3. 何为静态链接?何谓装入时动态链接和运行时动态链接?a.静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
b.装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。
c.运行时动态链接是将对某些模块的链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS 去找到该模块并将之装入内存,把它链接到调用者模块上。
4. 在进行程序链接时,应完成哪些工作?a.对相对地址进行修改b.变换外部调用符号6. 为什么要引入动态重定位?如何实现?a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。
引入重定位的目的就是为了满足程序的这种需要。
b.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。
程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
第4章存储器管理-题库及参考答案第4章存储器管理-选择题参考答案⼀、选择题1.【2011统考】在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是()A.编辑B.编译C.链接D.装载2.下⾯关于存储管理的叙述中,正确的是()A.存储保护的⽬的是限制内存的分配B.在内存为M、有N个⽤户的分时系统中,每个⽤户占M/N的内存空间C.在虚拟内存系统中,只要磁盘空间⽆限⼤,作业就能拥有任意⼤的编址空间D.实现虚拟内存管理必须有相应硬件的⽀持3.在使⽤交换技术时,若⼀个进程正在(),则不能交换出主存。
A.创建B.I/O操作C.处于临界段D.死锁4.在存储管理中,采⽤覆盖与交换技术的⽬的是()A.节省主存空间B.物理上扩充主存容量C.提⾼CPU效率D.实现主存共享5.【2009统考】分区分配内存管理⽅式的主要保护措施是()A.界地址保护B.程序代码保护C.数据保护D.保护6.【2010统考】某基于动态分区存储管理的计算机,其主存容量为.55MB(初始为空),采⽤最佳适配算法,分配和释放的顺序为;分配15MB,分配30MB,释放15MB,分配8MB,分配6MB,此时主存中最⼤空闲分区的⼤⼩是()A.7MBB.9MBC.10MBD.15MB7.段页式存储管理中,地址映射表是()A.每个进程⼀张段表,两张页表B.每个进程的每个段⼀张段表,⼀张页表C.每个进程⼀张段表,每个段⼀张页表D.每个进程⼀张页表,每个段⼀张段表8.内存保护需要由()完成,以保证进程空间不被⾮法访问A.操作系统B.硬件机构C.操作系统和硬件机构合作D.操作系统或者硬件机构独⽴完成9.存储管理⽅案中,()可采⽤覆盖技术A.单⼀连续存储管理B.可变分区存储管理C.段式存储管理D.段页式存储管理10.在可变分区分配⽅案中,某⼀进程完成后,系统回收其主存空间并与相邻空闲区合并,为此需修改空闲区表,造成空闲区数减1的情况是()A.⽆上邻空闲区也⽆下邻空闲区B.有上邻空闲区但⽆下邻空闲区C.有下邻空闲区但⽆上邻空闲区D.有上邻空闲区也有下邻空闲区 11.设内存的分配情况如图所⽰。
第四章 存储器管理1、对如图所示的内存分配情况(其中,阴影部分表示已占用块,空白部分表示空闲块),若要申请一块40KB 的内存,对于最佳适应算法,给出分配区域的首地址( )。
A 、100KBB 、190KBC 、330KBD 、410KB2、如右图所示中,若要申请一块40KB 的内存,使首地址最大的分配算法()。
A 、首次适应算法B 、最佳适应算法C 、最坏适应算法D 、循环首次适应算法3、下列算法中产生“抖动”现象的是( )。
A 、先进先出页面置换算法(FIFO)B 、最近最久未使用(LRU)置换算法C 、最不经常使用(LFU)置换算法D 、最佳(Optimal)置换算法4、存储管理是对内存中( )区域进行管理。
A 、整个内存B 、供用户使用的C 、供系统使用的D 、供程序使用的5、下面是关于存储器管理功能的论述,正确的论述是( )和( )。
A 、内存分配最基本的任务是为每道程序分配内存空间,其他追求的主要目标是提高存储空间的利用率。
B 、为了提高内存保护的灵活性,内存保护通常由软件实现。
C 、对换技术已不是现代操作系统中常用的一种技术。
D 、地址映射是指将程序空间中的逻辑地址变为内存空间的物理地址。
E 、虚拟存储器是在物理上扩充内存容量。
6、在下列存储管理方案中,不适用于多道程序的是( )。
A 、单一连续分配B 、固定分区分配C 、动态重定位分区分配D 、段页式存储分配7、在固定分区存储管理中,每个分区的大小是( )。
A 、相同的B 、可以不同但作业长度固定C 、可以不同但预先固定D 、根据用户要求而定0KB100KB 180KB 190KB 280KB 330KB 390KB410KB 512KB8、在固定分区管理中,为了提高内存的利用率,可采用如下技术()。
A、按经常出现的作业大小来划分分区B、划分分区都相同C、不同请求队列中的作业可以申请相同的分区D、大作业可以申请多个分区9、采用固定分区管理的最大缺点是()。
第四章存储器管理第0节存储管理概述一、存储器的层次结构1、在现代计算机系统中,存储器是信息处理的来源与归宿,占据重要位置。
但是,在现有技术条件下,任何一种存储装置,都无法从速度、容量、是否需要电源维持等多方面,同时满足用户的需求。
实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。
2、各种存储器•寄存器、高速缓存Cache:少量的、非常快速、昂贵、需要电源维持、CPU可直接访问;•内存RAM:若干(千)兆字节、中等速度、中等价格、需要电源维持、CPU可直接访问;•磁盘高速缓存:存在于主存中;•磁盘:数千兆或数万兆字节、低速、价廉、不需要电源维持、CPU 不可直接访问;由操作系统协调这些存储器的使用。
二、存储管理的目的1、尽可能地方便用户;提高主存储器的使用效率,使主存储器在成本、速度和规模之间获得较好的权衡。
(注意cpu和主存储器,这两类资源管理的区别)2、存储管理的主要功能:•地址重定位•主存空间的分配与回收•主存空间的保护和共享•主存空间的扩充三、逻辑地址与物理地址1、逻辑地址(相对地址,虚地址):用户源程序经过编译/汇编、链接后,程序内每条指令、每个数据等信息,都会生成自己的地址。
●一个用户程序的所有逻辑地址组成这个程序的逻辑地址空间(也称地址空间)。
这个空间是以0为基址、线性或多维编址的。
2、物理地址(绝对地址,实地址):是一个实际内存单元(字节)的地址。
●计算机内所有内存单元的物理地址组成系统的物理地址空间,它是从0开始的、是一维的;●将用户程序被装进内存,一个程序所占有的所有内存单元的物理地址组成该程序的物理地址空间(也称存储空间)。
四、地址映射(变换、重定位)当程序被装进内存时,通常每个信息的逻辑地址和它的物理地址是不一致的,需要把逻辑地址转换为对应的物理地址----地址映射;地址映射分静态和动态两种方式。
1、静态地址重定位是程序装入时集中一次进行的地址变换计算。
物理地址= 重定位的首地址+ 逻辑地址•优点:简单,不需要硬件支持;•缺点:一个作业必须占据连续的存储空间;装入内存的作业一般不再移动;不能实现虚拟存储。
2、动态地址重定位:在程序执行的过程中,每当Cpu访问一个内存地址之前对要访问的地址进行地址变换计算。
•优点:一个作业可以使用非连续存储空间;能实现虚拟存储;有利于程序段的共享。
•缺点:需要硬件支持。
五、存储分配与回收在程序运行开始时、运行过程中,OS根据一定的存储管理方法,在内存中为程序及其数据找到合适的位置,将它们装入内存;程序运行结束后,OS收回程序释放的内存资源,并进行适当的整理,以便再分配给其他的程序使用。
六、存储保护为多道并发程序共享内存提供保障,使在内存中的各道程序“各行其道”,只能访问属于自己的区域(自己的物理地址空间),避免各道程序间相互干扰,特别是当一道程序发生错误时,不致于影响其他程序的运行。
通常由硬件完成保护功能,由软件辅助实现。
存储保护可以实现:•保护系统程序区不被用户侵犯(有意或无意的);•不允许用户程序读写不属于自己地址空间的数据(系统区地址空间、其他用户程序的地址空间)。
存储保护的过程:每个进程都有自己独立的进程空间。
如果一个进程在运行时所产生的要访问的地址在其地址空间之外,称为发生了地址越界。
每当程序要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生地址越界中断,由操作系统进行相应处理。
七、存储共享•内存共享:多道环境中,两个或多个并发进程共用内存中相同区域。
•目的:节省内存空间,提高内存利用率,实现进程通信(数据共享)。
•共享内容:代码共享(要求代码为纯代码);数据共享。
八、存储“扩充”为了给大作业提供方便,由OS把内存和外存统一管理起来,实现自动覆盖。
当一个大作业在执行时,有一部分逻辑地址空间的内容在内存,另一部分在外存。
当要访问的信息不在内存时,由os(而不是程序员安排的I/O指令)自动把它们从外存调入内存。
从效果上看,这样的os好象为这个用户作业提供了一个容量比实际内存大的存储器,从而实现了存储“扩充”。
扩充后的存储器称为虚拟存储器。
九、存储管理方法1、连续分配方式(1) 单一连续存储区管理(单道环境下)(2) 分区式存储管理2、离散分配方式(1) 分页式存储管理(2) 分段式存储管理(3) 段页式存储管理3、实现虚拟存储的分配方式主要是一些请求式的分配方式,如请求分页式存储管理、请求分段式存储管理等。
对于以上每一种存储管理方法我们应该掌握:•基本原理(思想方法)•存储管理使用的数据结构•逻辑地址的格式•地址变换的方式•存储的分配和回收过程•特点(优、缺点)第一节程序的装入(和链接)一、程序的装入就是OS的装入程序(Loader)将用户程序的装入模块装入内存。
1、绝对装入方式编译时产生绝对地址的目标代码。
程序被装入内存后,逻辑地址与实际装入的内存地址完全相同,故执行过程中,不需对指令和数据进行地址变换。
程序中所使用的绝对地址,可在编译或汇编时给出,也可由程序员直接赋予。
但在由程序员直接给出绝对地址时,不仅要求程序员熟悉内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。
因此,通常是宁可在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换为绝对地址。
2、可重定位装入方式编译时产生相对地址的目标代码。
程序被装入内存时,进行地址变换,然后在访问时直接取指令和数据。
3、动态运行时装入方式编译时产生相对地址的目标代码。
程序被装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。
当要对一条指令或一个数据进行访问时,才对它的地址进行转换。
因此,装入内存后的所有地址都仍是相对地址。
第二节连续分配存储管理方式一、单一连续分配1、基本原理把内存分为系统区和用户区两部分,系统区提供给OS使用(通常是内存的低址部分);用户区(指除系统区以外的全部内存空间)提供给用户使用。
用户区是一个连续的存储区,每次装入一道用户作业,整个系统的用户空间被一道用户作业独占。
2、存储分配和回收过程如下图所示的主存分配与回收法。
并且由装入程序进行静态地址重定位,检查其绝对地址是否超越,即可达到保护系统的目的。
工作流程:3、特点:•存储管理简单,只适用于单道环境•内存利用率很低•程序的运行受主存容量限制•基本不需要管理的数据结构二、固定分区分配固定分区式存储管理是满足多道程序的最简单的存储管理方案。
它的基本思想是:将内存的用户区划分成若干个固定的空间,称为分区。
当程序到达时,由系统给它分配一个适当大小的分区,将程序和数据连续存入,使进程得以并发执行。
每个分区只能存储一个程序,而且程序也只能在它所驻留的分区中运行;作业的逻辑地址空间是线性的,物理地址空间是连续的;主要采用静态地址重定位方式进行地址变换。
1、基本原理系统生成时,把可分配的主存储器空间分割成若干个区域,每个区域称为一个分区(每个分区的内部是连续的)。
每个分区的大小可以相同也可以不同,但分区大小固定不变,每个分区能装一个且只能装一个作业。
P27-282、管理使用的数据结构分区说明表:记录系统中的现有内存分区及其使用状态。
3、存储分配与回收过程当有一个用户作业要装入时,由OS检索分区说明表,从中找一个大小能满足要求的、空闲的分区,将用户作业装入,并在分区说明表中将该分区的状态置为“已分配”;若没有找到大小足够的分区,则拒绝为该程序分配内存。
当一个用户作业完成后,由OS将其占有的分区收回,将该分区的状态改为“未分配”。
4、特点•可以支持多道程序运行•程序的运行受主存容量和分区大小限制•内存利用率仍很低三、动态分区分配1、基本思想系统在启动时,除了OS常驻内存部分占用的内存空间外,系统中只有一个空闲分区;当有作业要装入内存时,检索空闲分区表,找一个能满足作业要求的空闲分区,从中划出一个大小正好满足要装入作业要求的存储区,分配给这一作业,剩下的部分被作为一个新的空闲分区记录在空闲分区表中。
2、存储管理的数据结构(二选一)(1) 空闲区表--记录目前系统中每个空闲区的起始地址和长度;(2) 空闲分区链--将目前系统中的空闲分区按一定的顺序链接起来。
在每个分区的头、尾设置指向前后分区的指针,并记录本分区的一些分配控制信息。
系统设立一个链首指针,指向第一个空闲块。
3、存储分配与回收过程(1) 分配(2) 回收----会出现四种情况•回收区与它前面的一个空闲区相邻(a)•回收区与它后面的一个空闲区相邻(b)•回收区与它前、后的两个空闲区相邻(c)•回收区前后都没有相邻的空闲区当某一块归还后,要根据不同的情况,前后空间合并,再分别处理存储管理的数据结构。
4、存储分配的算法----空闲分区表或空闲分区链中分区排列顺序的组织方法(1) 首次适应算法:按空闲区首地址从低到高来组织空闲分区表或空闲分区链;每次分区时,总是从表头或链首开始扫描,找到第一个足够大的空白区分配。
(2) 循环首次适应算法(下次适应算法):类似首次适应法的数据组织。
每次分区时,总是从上次查找结束的地方开始扫描,找到一个足够大的空白区分配,并循环查找。
(3) 最佳适应算法:按空闲区容量大小从小到大来组织组织空闲分区表或空闲分区链。
每次分区时,总是从表头或链首开始扫描。
所以,接到内存申请时,会在空闲区中找到一个满足要求的最小空闲区进行分配。
(4) 最坏适应算法:与最佳适应法相反,它在作业选择存储块时,总是寻找一个满足要求的最大的空闲分区。
讨论以上算法的优缺点….6、动态分区方式中的“碎片”问题经过一段时间的分配回收后,内存中会出现很多很小的空闲块。
它们每一块都较小,不足以满足一般作业的分配要求;但其容量总和却有着相当的规模。
这些空闲块被称为碎片。
碎片的存在造成了存储资源的浪费。
解决办法:碎片整理,通过在内存移动程序,将所有小的空闲区域合并为大的空闲区域。
问题:系统开销大(?)。
四、可重定位分区1、动态重定位引入的原因在动态分区分配中,“碎片”整理,是定时进行或在存储回收时进行的,所有用户程序的存储分区都要进行改动,并重新进行静态地址重定位。
这样的“碎片”整理工作将花费较多的系统开销。
2、动态重定位分区分配处理流程可重定位分区分配,与动态分区方法基本相同,但它的碎片拼接是在存储分配时进行的,以满足新作业需求为目的,并采用动态地址重定位。
五、对换(交换)技术“对换”引入的原因:P58所谓“对换”,是指系统允许在一个作业已经进入内存执行的过程中,仍能把它调出内存、再调入内存。
把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程或进程所需要的程序和数据,调入内存。