操作系统复习-存储管理
操作系统-存储管理(4)段页式虚拟存储
操作系统-存储管理(4)段页式虚拟存储物理地址:⼜称绝对地址,即程序执⾏所使⽤的地址空间(处理器执⾏指令时按照物理地址进⾏)逻辑地址:⼜称相对地址,即⽤户编程所使⽤的地址空间,从0开始编号,有两种形式:⼀维逻辑地址(地址)⼆维逻辑地址(段号:段内地址)主存储器空间的分配与去配:分配:进程装⼊主存时,存储管理软件进⾏具体的主存分配操作,并设置⼀个表格记录主存空间的分配情况去配:当某个进程撤离或主动归还主存资源时,存储管理软件要收回它所占⽤的全部或者部分存储空间,调整主存分配表信息主存储器空间的共享:多个进程共享主存储器资源:多道程序设计技术使若⼲个程序同时进⼊主存储器,各⾃占⽤⼀定数量的存储空间,共同使⽤⼀个主存储器多个进程共享主存储器的某些区域:若⼲个协作进程有共同的主存程序块或者主存数据块多道程序设计需要复⽤主存:按照分区复⽤:主存划分为多个固定/可变尺⼨的分区,⼀个程序/程序段占⽤⼀个分区按照页架复⽤:主存划分成多个固定⼤⼩的页架,⼀个程序/程序段占⽤多个页架装载程序/加载器(loader)把可执⾏程序装⼊内存的⽅式有:绝对装载可重定位装载动态运⾏时装载地址转换:⼜称重定位,即把可执⾏程序逻辑地址转换成绝对地址,可分为:静态地址重定位:由装载程序实现装载代码模块的加载和地址转换(⽆需硬件⽀持),把它装⼊分配给进程的内存指定区域,其中所有指令代码和数据的逻辑地址在执⾏前⼀次全部修改为内存物理地址。
早期单任务单⽤户OS使⽤。
动态地址重地位:由装载程序实现装载代码模块的加载,把它装⼊进程的内存在指定区域,但对链接程序处理过的应⽤程序逻辑地址不做修改,程序内存起始地址被置⼊重定位寄存器(基址寄存器)。
程序执⾏过程中每当CPU访问程序和数据引⽤内存地址时,由硬件地址转换机构截取此逻辑地址并加上重定位寄存器的值。
运⾏时链接地址重定位存储保护:为避免主存中的多个进程相互⼲扰,必须对主存中的程序和数据进⾏保护。
计算机操作系统第四章存储器管理复习资料
第四章存储器管理第一部分教材习题(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、静态地址重定位是程序装入时集中一次进行的地址变换计算。
物理地址= 重定位的首地址+ 逻辑地址•优点:简单,不需要硬件支持;•缺点:一个作业必须占据连续的存储空间;装入内存的作业一般不再移动;不能实现虚拟存储。
操作系统复习存储器管理
第一章 存储器管理4.1 存储器的层次结构—存储器应容量大,便宜,速度跟上处理器4.1.1 多级存储器结构通常有三层,细分为六层,如图4-1, 越往上,速度越快,容量越小,价格越贵; 寄存器和主存又称可执行存储器,进程可直接用指令访问,辅存只能用I/O 访问;4.1.2 主存储器与寄存器1.主存储器---内存,保存进程运行时的程序和数据;CPU与外围设备交换的信息一般也依托于主存储器地址空间;为缓和访存速度远低于CPU 执行指令的速度,在计算机系统中引入了寄存器和高速缓存;2.寄存器---与CPU 协调工作,用于加速存储器的访问速度,如用寄存器存放操作数,或用地址寄存器加快地址转换速度等;4.1.3 高速缓存和磁盘缓存1.高速缓存---根据程序执行的局部性原理将主存中一些经常访问的信息程序、数据、指令等存放在高速缓存中,减少访问主存储器的次数,可大幅度提高程序执行速度;2.磁盘缓存---将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中,可减少访问磁盘的次数;它依托于固定磁盘,提供对主存储器存储空间的扩充,即利用主存中的存储空间,来暂存从磁盘中读/写入的信息;4.2 程序的装入和链接多道程序运行,需先创建进程;而创建进程第一步是将程序和数据装入内存;将源程序变为可在内存中执行的程序,通常都要经过以下几个步骤:编译---若干个目标模块;链接---链接目标模块和库函数,形成装入模块;装入---图 4-2 对用户程序的处理步骤寄存器高速缓存主存磁盘缓存磁盘可移动存储介质CPU 寄存器主存辅存第一步第二步第三步内存4.2.1 程序的装入——无需连接的单目标模块装入理解装入方式1. 绝对装入方式Absolute Loading Mode ---只适用单道程序环境如果知道程序的内存位置,编译将产生绝对地址的目标代码,按照绝对地址将程序和数据装入内存;由于程序的逻辑地址与实际内存地址完全相同,故不须对程序和数据的地址进行修改;绝对地址:可在编译时给出或由程序员直接赋予;若由程序员直接给出,不利于程序或数据修改,因此,通常是在程序中采用符号地址,然后在编译或汇编时转换为绝对地址;2. 可重定位装入方式Relocation Loading Mode ---适于多道程序环境多道程序环境下,编译程序不能预知目标模块在内存的位置;目标模块的起始地址是0,其它地址也都是相对于0计算的;此时应采用可重定位装入方式,根据内存情况,将模块装入到内存的适当位置,如图4-3 作业装入内存时的情况 ;3.动态运行时装入方式Dynamic Run-time Loading ---适于多道程序环境可重定位装入方式并不允许程序运行时在内存中移动位置;但是,在运行过程中它在内存中的位置可能经常要改变,此时就应采用动态运行时装入方式;动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正执行时才进行;因此,装入内存后的所有地址都仍是相对地址;问题:程序装入内存后修改地址的时机是什么4.3 连续分配方式4.3.3 动态分区分配——根据进程需要动态分配内存1. 分区分配中的数据结构1 空闲分区表—用若干表目记录每个空闲分区的分区序号、分区始址及分区的大小等数据项;2 空闲分区链--为实现对空闲分区的分配和链接,在每分区起始部分,设置前向指针,尾部则设置一后向指针;为检索方便,在分区前、后向指针中,重复设置状态位和分区大小表目;当分0内存空间区被分配后,把状态位由“0”改为“1”时,前、后向指针失去意义;图 4-5 空闲链结构2. 分区分配算法P1231首次适应算法first-fit —空闲分区链以地址递增次序链接 每次按分区链的次序从头查找,找到符合要求的第一个分区;2 循环首次适应算法—FF 算法的变种从上次找到的空闲分区位置开始循环查找,找到后,修改起始查找指针; 3 最佳适应算法—空闲分区按容量从小到大排序 把能满足要求的、最小的空闲分区分配给作业 4 最坏适应算法——空闲分区按容量从大到小排序 挑选最大的空闲区分给作业使用;5) 快速适应算法—根据容量大小设立多个空闲分区链表3. 分区分配操作1.分配内存请求分区u.size; 空闲分区m.size; m.size-u.size ≤size,说明多余部分太小, 不再切割,将整个分区分配给请求者;否则从该分区中划分一块请求大小的内存空间,余下部分仍留在空闲分区链;如图4-6 内存分配流程;2.回收内存1 回收区与插入点的前一空闲分区F1相邻:合并,修改F1大小;2 回收区与后一空闲分区F2相邻:合并,修改首地址和大小;3 回收区同时与前、后两个分区邻接:合并,修改F1大小,取消F2;4 回收区不邻接:新建表项,填写首地址和大小,并插入链表;如图前向指针N +20N 个字节可用后向指针N +2图 4-6 内存分配流程4.3.6 可重定位分区分配1.动态重定位的引入例:在内存中有四个互不邻接的小分区,容量分别为10KB 、30KB 、14KB 和26KB;若现有一作业要获得40KB 的内存空间,因连续空间不足作业无法装入;可采用的一种解决方法是:通过移动内存中作业的位置,以把原来多个分散的小分区拼接成一个大分区的方法,称为“拼接”或“紧凑;由于用户程序在内存中位置的变化,在每次“紧凑”后,都必须对移动了的程序或数据进行重定位;图 4-8 紧凑的示意4.3.7 对换即中级调度1. 对换Swapping 的引入(a ) 紧凑前(b ) 紧凑后“活动阻塞”进程占用内存空间;外存上的就绪作业不能进入内存运行;所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间;再把已具备运行条件的进程或所需要的程序和数据,调入内存;对换是提高内存利用率的有效措施;根据对换单位可分为:进程对换、页面对换和分段对换;为了能实现对换,系统应具备以下三方面功能:对换空间的管理、进程的换出与换入2. 进程的换出与换入1进程的换出选择阻塞且优先级最低的进程,将它的程序和数据传送到磁盘对换区上;回收该进程所占用的内存空间,并对该进程的进程控制块做相应的修改;2进程的换入找出“就绪” 但已换出到磁盘上时间最久的进程作为换入进程,将之换入,直至已无可换入的进程;4.4 基本分页存储管理方式前面的连续分配方案会形成许多“碎片”,“紧凑”方法可以解决碎片但开销大;是否允许进程离散装入 离散单位不同,称分页式存储和分段式存储;不具备对换功能称为“基本分页式”,支持虚拟存储器功能称为“请求基本分页式”;4.4.1 页面与页表1. 页面1 页面和物理块---将进程的逻辑地址空间分成若干个大小相等的片,称为页面,并为各页编号;相应地把内存空间分成与页面相同大小的若干个存储块,称为物理块,也同样编号;分配时,将进程中的页装入到物理块中,最后一页经常装不满一块而形成 “页内碎片”;2 页面大小---页面的大小应选择适中;页面太小,内存碎片减小,利用率高;但页表过长,占大量内存;页面较大,页表长度小;但页内碎片大;因此,页面的大小应选择得适中,且页面大小应是2的幂,通常为512 B~8 KB;2. 地址结构分页地址中的地址结构如下:31 12 11 0它含有两部分:页号P12~31位,最多有1M 页和页内位移量W0~11位,每页的大小4KB ; 对某特定机器,其地址结构是一定的;若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P 和页内地址d 可按下式求得:MODL A d L A INT P ][=⎥⎦⎤⎢⎣⎡=3. 页表---实现从页号到物理块号的地址映射用户程序0 页1 页2 页3 页4 页5 页…n 页页表内存4.4.2 地址变换机构任务:将逻辑地址转换为物理地址;页内地址变换:因页内地址与物理地址一一对应, 可直接转换;页号变换:页表可实现从逻辑地址中页号到内存中物理块号的变换; 1.基本的地址变换机构a. 页表功能可由一组专门的寄存器实现原理;b. 页表大多驻留内存,系统中只设置一页表寄存器来存放页表在内存的始址和页表长度实际操作;c. 进程未执行时,页表始址和长度存放在PCB 中;执行时才将这两个数据装入页表寄存器中过程;图 4-12 分页系统的地址变换机构2. 具有快表的地址变换机构a. 仅用页表寄存器时,CPU 每存取一数据要两次访问内存页表-地址变换-数据;b. 为提高地址变换速度,可在地址变换机构中增设一具有并行查寻能力的特殊高速缓冲寄存器用以存放当前访问的那些页表项,称为“快表”;c. ->在CPU 给出逻辑地址,将页号P 送入快表 ->页号匹配,读物理块号后送物理地址寄存器->无匹配页号,再访问内存中页表,把从页表项中读出的物理块号送地址寄存器;同时,再将此页表项存入到快表中;->如快表已满,则OS 须找到一换出页表项换出; 为什么增加“快表”为了提高地址变换速度,可在地址变换机构中增设一个具有并行查寻能力的特殊高速缓冲寄存器,又称为“联想寄存器”Associative Memory,或称为“快表 “快表”有何缺点越界中断图 4-13 具有快表的地址变换机构4.5 基本分段存储管理方式4.5.1 分段存储管理方式的引入为什么引入推动内存从固定分配到动态分配直到分页存储,主要动力是内存利用率,而引入分段存储管理方式,主要是为了满足用户和程序员的下述一系列需要:1方便编程---把作业按逻辑关系划分为若干段,每段有自己的名字和长度,并从0开始编址;LOAD 1,A|<D>; STORE 1,B|<C>2 信息共享---段是信息的逻辑单位;为实现共享,存储管理应与用户程序分段的组织方式相适应;3 信息保护---对信息的逻辑单位进行保护,应分段管理;4 动态增长---分段存储能解决数据段使用过程中动态增长;5 动态链接---运行过程中动态调入以段为单位的目标程序;4.5.2 分段系统的基本原理1. 分段作业划分为若干段,如图4-16,每个段用段号来代替段名,地址空间连续;段的长度由逻辑信息长度决定,因而各段长度不等;其逻辑地址由段号段名和段内地址所组成,结构如下: 31 16 15 0该地址结构中,允许一个作业最多有64K 个段,每个段的最大长度为64KB;编译程序能自页表寄存器逻辑地址L 物理地址动根据源程序产生若干个段;2.段表,其中每段占一个表项,中;图4-16 利用段表实现地址映射3.分页和分段的主要区别1 页是信息的物理单位,分页是为提高内存的利用率,是为满足系统管理的需要;段则是信息的逻辑单位,分段是为了能更好地满足用户的需要;2 页的大小固定且分页由系统硬件实现;而段的长度不固定,通常由编译程序根据信息的性质来划分;3 分页的作业地址空间是一维的,程序只需一个地址记忆符;而分段的作业地址空间是二维的,程序员既需给出段名,又需给出段内地址;4.5.3 信息共享可重入代码纯代码:允许多个进程同时访问的代码;绝对不允许可重入代码在执行中改变,因此,不允许任何进程修改它;4.5.4 段页式存储管理方式1.基本原理---,,,4KB;作业空间内存空间子程序段数据段(a)段号(S)段内页号(P)页内地址(W)(b)主程序段图4-21 利用段表和页表实现地址映射4.6 虚拟存储器的基本概念前面各种存储器管理方式共同点:它们要求将一个作业全部装入内存后方能运行,于是出现了下面这样两种情况:1 有的作业很大,其所要求的内存空间超过了内存总容量,作业不能全部被装入内存,致使该作业无法运行;2 有大量作业要求运行,但由于内存容量不足以容纳所有这些作业,只能将少数作业装入内存让它们先运行,而将其它大量的作业留在外存上等待;4.5.1 虚拟存储器的引入1.常规存储器管理方式的特征1 一次性;将作业全部装入内存后方能运行,此外有许多作业在每次运行时,并非其全部程序和数据都要用到;一次性装入,造成了对内存空间的浪费;2 驻留性;作业装入内存后一直驻留,直至运行结束;尽管因故等待或很少运行,都仍将继续占用宝贵的内存资源;现在要研究的问题是:一次性及驻留性在程序运行时是否必需;2.局部性原理早在1968年, Denning.P就曾指出:1 程序执行时,除了少部分的转移和过程调用指令外,在大多数情况下仍是顺序执行的;2 过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但经研究看出,过程调用的深度在大多数情况下都不超过5;3 程序中存在许多循环结构,这些虽然只由少数指令构成, 但是它们将多次执行;4 程序中还包括许多对数据结构的处理, 如对数组进行操作,它们往往都局限于很小的范围内;局限性主要表现在下述两个方面:1 时间局限性-由于循环操作的存在;如果程序中的指令或数据一旦执行,则不久以后可能再次访问;2 空间局限性-由于程序的顺序执行;程序在一段时间内所访问的地址,可能集中在一定的范围之内;3. 虚拟存储器定义---基于局部性原理程序运行前,仅须将要运行的少数页面或段装入内存便可启动,运行时,如果需要访问的页段尚未调入内存缺页或缺段,用OS提供请求调页段功能调入;如果此时内存已满,则还须再利用页段的置换功能,将内存中暂时不用的页段调至外存,腾出足够的内存空间后,再将要访问的页段调入;所谓虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上扩充内存容量的一种存储器系统;其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存,成本接近于外存;4.6.3 虚拟存储器的特征1)多次性---一个作业被分成多次调入内存运行,最初装入部分程序和数据,运行中需要时,再将其它部分调入;2)对换性---允许在作业的运行过程中进行换进、换出;换进和换出能有效地提高内存利用率;3)虚拟性---从逻辑上扩充内存容量,使用户所看到远大于实际内存容量;这是虚拟存储器最重要的特征和最重要的目标;4)离散性---是以上三个特性的基础,在内存分配时采用离散分配的方式;备注:虚拟性是以多次性和对换性为基础的,而多次性和对换性又必须建立在离散分配的基础上;4.7 请求分页存储管理方式4.6.1 请求分页中的硬件支持---页表、缺页中断和地址变换请求分页系统是在分页的基础上,增加了“请求调页”和“页面置换”功能,每次调入和换出基本单位都是长度固定的页,实现比请求分段简单;1.页表机制---将用户地址空间中的逻辑地址变换为内存空间中的物理地址,因只将部分调入内存,需增设若干项;在请求分页系统中的每个页表项如下所示:1 状态位P:该页是否已调入内存,供访问时参考;2 访问字段A:记录一段时间内本页被访问的频率,供选择换出页时参考;3 修改位M:页在调入内存后是否被修改过,供置换页面时参考;4 外存地址:指出该页在外存上的地址,即物理块号,供调入该页时参考;4.7.2 内存分配策略和分配算法1.最小物理块数的确定是指能保证进程正常运行所需的最小物理块数,当系统为进程分配的物理块数少于此值时,进程将无法运行;进程应获得的最少物理块数与计算机的硬件结构有关;对于某些简单的机器,所需的最少物理块数为2,分别用于存放指令和数据,间接寻址时至少要有三块;对于某些功能较强的机器,因其指令本身、源地址和目标地址都可能跨两个页面,至少要为每个进程分配6个物理块,以装入这些页面;2. 物理块的分配策略请求分页系统的两种内存分配策略:即固定和可变分配策略;两种置换策略:即全局置换和局部置换;可组合出以下三种策略;1 固定分配局部置换Fixed Allocation, Local Replacement--每进程分配一定数目的物理块,在整个运行期间都不再改变,换入换出都限于这些物理块;每个进程物理块难以确定,太多太少都不好2 可变分配全局置换Variable Allocation, Global Replacement --每进程分配一定数目的物理块,OS 保持一空闲物理块队列;进程缺页时,摘下一空闲块,并将该页装入;3 可变分配局部置换Variable Allocation, Local Replacemen --每进程分配一定数目的物理块;进程缺页时,只允许从该进程内存页中选出一页换出;若缺页中断频繁,再为该进程分配若干物理块,直至缺页率减少;若缺页率特低,则减少该进程的物理块数,应保证缺页率无明显增加;3. 物理块分配算法1 平均分配算法--将所有可供分配的物理块,平均分配给各个进程; 例如,有100个物理块,5个进程,每进程可分20个物理块;未考虑到各进程本身的大小;2 按比例分配算法--根据进程的大小按比例分配物理块;共n 个进程,每进程页面数为si,则页面数的总和为:设可用的物理块为m,每进程分到的物理块数为bi,有:3 考虑优先权的分配算法--为了照顾重要、紧迫的作业尽快完成,为它分配较多的空间;通常采取:把可供分配的物理块分成两部分:一部分按比例分给各进程;另一部分根据优先权分给各进程;有的系统是完全按优先权来分配;4.7.3 调页策略1. 何时调入页面1 预调页策略缺页前 :页面存放连续,用预测法一次调入多个相邻页,预测成功率仅为50%;2 请求调页策略缺页时:运行中,发现不在内存,立即请求,由OS 调入;2. 从何处调入页面请求分页系统中外存分为两部分:文件区和对换区;这样,当发生缺页请求时,系统应从何处将缺页调入内存:1 系统拥有足够的对换区,可以全部从对换区调入所需页面;在进程运行前,须将有关的文件拷贝到对换区;2 系统缺少足够的对换区,这时凡是不会被修改的文件,都直接从文件区调入,由于它们未被修改而不必换出;但对于可能被修改的部分,换出时调到对换区,以后需要时,再从对换区调入;3 UNIX 方式;凡是未运行过的页面,都应从文件区调入;曾运行过但已换出的页面,放在∑==ni iS S 1m SS b ii ⨯=对换区,下次应从对换区调入;4.8 页面置换算法当进程运行时,所访问的页面不在内存而需要将他们调入内存,但内存无空闲时,需要选择一页面换出到对换区,选择算法即页面置换算法;算法评价:页面置换频率低,调出页面将不会或很少访问;4.8.1 最佳置换算法和先进先出置换算法1. 最佳Optimal 置换算法由Belady 于1966年提出的一种理论上的算法;原理:其所选择的被淘汰页面,将是以后永不使用的, 或是在最长未来时间内不再被访问的页面;特点:通常可获得最低的缺页率,但由于进程运行不可预知而无法实现,用来评价其他算法;假定系统为某进程分配了三个物理块,并考虑有以下的页面号引用串:7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1进程运行时,先将7,0,1三页装入内存;当进程要访问页面2时,将会产生缺页中断,此时OS 根据最佳置换算法,将选择页面7予以淘汰;共发生6次页面置换;图 4-25 利用最佳页面置换算法时的置换图 2. 先进先出FIFO 页面置换算法---总是置换最先进入内存的页面;用FIFO 算法共发生12次页面置换;该算法与进程的实际运行规律不相符,有些页面经常被访问全局变量,常用函数;图 4-26 利用FIFO 置换算法时的置换图4.8.2 最近最久未使用Least Recently Used LRU 置换算法1. LRU置换算法 ---在无法预测各页面将来使用情况下,利用“最近过去”作为“最近将来”的近似选择最近最久未使用的页面予以淘汰;用LRU 算法共发生9次页面置换;引用率70770170122010320304243230321201201770101页框(物理块)203图 4-27 LRU 页面置换算法2. LRU 置换算法的硬件支持LRU 算法比较好,但为了快速知道哪一页是最近最久未使用的页面,需要硬件支持:寄存器或栈;1 寄存器为了记录某进程在内存中各页的使用情况,须为每个页面配置一个移位寄存器,可表示为:原理:进程访问某物理块时,先将寄存器的Rn-1位设成1;此时,定时信号将每隔一定时间将寄存器右移一位;若将n 位寄存器的数看做是一整数,那么,具有最小数值的寄存器所对应的页面,就是最近最久未使用的页面;例:某进程在内存中有8个页面,为每页面配置一8位寄存器时的LRU 访问情况,如图4-28图 4-28 某进程具有8个页面时的LRU 访问情况2 栈--利用栈来保存当前使用的各页面的页面号;原理:每当进程访问某页面时,便将该页面的页面号从栈中移出,将它压入栈顶;因此,栈顶始终是最新被访问页面的编号,而栈底则是最近最久未使用页面的页面号;假定现有一进程所访问的页面的页面号序列为:4,7,0,7,1,0,1,2,1,2,6随着进程的访问,栈中页面号的变化情况如图4-29所示;在访问页面6时发生了缺页,此时页面4是最近最久未被访问的页,应将它置换出去;LRU 算法较好,但要求较多硬件支持, 实际使用接近LRU算法-Clock 算法;图引用率70770170122010323104430230321013201770201页框2304204230230127127011474074704170401741074210741207421074621074-29 用栈保存当前使用页面时栈的变化情况。
操作系统第四章复习
页框号为21。 因为起始驻留集为空, 而0页对应的ห้องสมุดไป่ตู้框为空闲链表中的第三个空闲页框,其对应的页框号为21。
页框号为32。 因为11 > 10故发生第三轮扫描,页号为1的页框在第二轮已经处于空闲页框链表中,此刻该页又被重新访问,因此应被重新放回到驻留集中,其页框号为32。
页框号为41。 因为第2页从来没有被访问过,不在驻留集中。因此从空闲链表中取出链表头的页框,页框号为41。
4. 在虚拟内存管理中,地址变换机构将逻辑地址转换为物理地址,形成该逻辑地址的阶段是( )。 ① 编辑 ② 编译 ③ 链接 ④ 装载 5. 采用段式存储管理的系统中,若地址用24位表示,其中8位表示段号,则允许每段的最大长度是_______ A)224 B)28 C) 216 D) 232 6. 作业在执行中发生了缺页中断,经操作系统处理后,应让其执行______指令。 A)被中断的前一条 B)被中断的后一条 C)被中断的 D) 启动时的第一条
7、某基于动态分区存储管理的计算机,其主存容量为55MB(初始为空),采用最佳适配(Best fit)算法,分配和释放的顺序为:分配15MB,分配30MB,释放15MB,分配6MB,此时主存中最大空闲分区的大小是( ) A:7MB B:9MB C:10MB D:15MB
当该进程执行到时刻260时,要访问逻辑地址为17CAH的数据,请问答下列问题: (1)该逻辑地址对应的页号是多少? (2)若采用先进先出置换算法,该逻辑地址对应的物理地址是多少?要求给出计算过程。 (3)若采用时钟置换算法,该逻辑地址对应的物理地址是多少?(设搜索下一页的指针沿顺时针方向移动,且当前指向2号页框)
页号
存储块号
0 1 2 3
5 10 4 7
考研操作系统-存储管理(二)
考研操作系统-存储管理(二)(总分:108.00,做题时间:90分钟)一、单项选择题(总题数:34,分数:68.00)1.对主存储器的访问,是( )。
A.以页(块)或段为单位B.以字节或字为单位C.随存储器的管理方案不同而异D.以用户的逻辑记录为单位A.B. √C.D.本题考查对主存的访问,不是对主存的分配。
主存的编址以字节为单位,对主存的访问也是以字节为单位。
因此本题选择B。
2.在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是( )。
A.编辑 B.编译 C.链接 D.装载A.B. √C.D.编译过程指编译程序将用护源代码编译成目标模块。
源地址编译成目标程序时,会形成逻辑地址。
因此本题选择B。
3.把作业空间中使用的逻辑地址变换为内存中的物理地址的过程称为( )。
A.加载 B.重定位 C.物理化 D.逻辑化A.B. √C.D.本题考查重定位的概念。
由于作业装入内存时分配的内存空间与作业的地址空间是不一致的。
因此在作业装入或执行时,不对有关逻辑地址部分进行相应的修改,会导致错误的结果。
这种将作业的逻辑地址变换为物理地址的过程称为“地址重定位”。
因此本题选择B。
4.为了保证一个程序中主存中改变了存放位置之后仍能正常执行,则对主存空间应采用( )技术。
A.静态重定位 B.动态重定位 C.动态分配 D.静态分配A.B. √C.D.本题考查重定位的相关概念,而不是内存分配方式,所以首先排除C和D选项。
静态重定位中,地址变换通常是在装入时一次性完成,之后地址都不再改变,称为静态重定位。
动态重定位采用动态运行时装入方式,可以保证一个程序在主存中改变了存放位置后仍然能正确执行。
因此本题选择B。
5.在存储管理中采用交换与覆盖技术,其目的是( )。
A.从物理上扩充内存 B.实现主存共享C.节省存储空间 D.提高内存利用率A.B.C.D. √本题考查交换与覆盖技术的基本概念。
采用交换与覆盖技术不会扩充物理内存,可以提高内存利用率。
操作系统-存储管理
操作系统-存储管理操作系统-存储管理一、引言存储管理是操作系统中重要的组成部分,它负责管理计算机系统中的存储器资源。
存储管理的任务包括内存分配、内存保护、内存回收等,通过有效的存储管理可以充分利用系统的存储资源,提高系统的运行效率和性能。
二、内存层次结构1、主存储器主存储器是计算机系统中最主要的存储器,它用于存放正在运行的程序和数据,是CPU直接访问的存储器。
主存储器一般被划分为若干个固定大小的块,每个块被称为一页,每一页可以存放一个进程的一部分或全部。
2、辅助存储器辅助存储器是主存储器的扩展,主要用于存储大容量的数据和程序。
辅助存储器包括硬盘、磁带等设备,其访问速度比主存储器慢,但容量较大。
三、内存管理1、内存分配方式a:静态分配静态分配是指在程序运行之前,就确定了程序在内存中的位置。
静态分配的优点是简单高效,但是会浪费存储资源。
b:动态分配动态分配是指程序在运行时,根据需要动态分配内存。
动态分配的优点是灵活高效,但是需要额外的内存管理开销。
2、内存管理算法a:首次适应算法首次适应算法是按照内存块的起始地质逐一查找,找到第一个大小大于等于要求的空闲的内存块进行分配。
b:最佳适应算法最佳适应算法是在所有满足要求的内存块中选择大小最小的内存块进行分配。
c:最差适应算法最差适应算法是在所有满足要求的内存块中选择大小最大的内存块进行分配。
3、内存保护内存保护是指通过访问权限控制,确保每个进程只能访问自己分配的内存空间,防止进程之间的干扰。
4、内存回收内存回收是指当进程不再使用某些内存空间时,将其释放给系统以便后续的内存分配。
内存回收可以通过标记清除算法、引用计数算法等方式实现。
四、虚拟内存管理1、虚拟内存机制虚拟内存是一种扩展的内存管理技术,它通过将部分程序或数据装入主存储器,并实现从辅助存储器到主存储器的动态迁移,提高了计算机系统的运行性能。
2、页面置换算法页面置换算法是指当主存储器已满时,需要置换出某些页面到辅助存储器中,以便为新的页面腾出空间。
[操作系统]第3章 存储管理
3.3.2 可变分区管理
1. 可变分区概念 可变分区/动态分区,与固定分区有三点不同: 1)分区的建立时刻 可变分区:在系统运行过程中,在作业装入时动态建立 固定分区:系统初启时建立。 2)分区的大小 可变分区:根据作业对内存的需求量而分配。 固定分区:事先设定,固定不变。 3)分区的个数 可变分区:变化不定。 固定分区:固定不变。
第3章 存储管理 章
本章研究的主要目的: 第一、要使主存得到充分、有效的利用; 第二、为用户提供方便的使用环境。
第3章 存储管理 章
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 概述 地址映射 分区管理 覆盖与交换 分页管理 分段管理 段页式管理 虚拟存储器管理
3.1 概述
存储器分类
作业调度时,根据内存需求,按一定的分区分 配算法,在PDT中查找空闲区,若满足,则进 行分配,并置该分区状态为1,表明已被占用。 作业执行完,回收内存时,回收的分区状态置 0,等待重新分配。
固定分区存在问题
简单易行但存在下列问题: 碎片 可接纳的作业大小受分区大小的限制 一般用在作业大小预先知道的专用系统中。
空白区表中的空白区按其容量以递减的次序排 列。查找分区说明表,找到第一个满足申请长 度的空闲区,分配并分割。剩余部分插入适当 位置。 最差适应算法:分割大空闲区后,还可以产生 较大的空闲区,空闲区均匀地减小,以避免碎 片。
④ 唯一最佳适应算法(single best fit) 分区按大小顺序分级(8KB、16KB、32 KB、…… ) 作业按请求容量也分成相应的存储级,仅当 PDT中相应级的分区为空闲时,才进行内存 分配,即使有更大的分区空闲也不予以分配。
分配策略/算法
① 首次/最先适应First fit:
操作系统 第4章 存储管理习题
1、某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB. 假定某时刻为用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚拟地址0A5C和093C变换为物理地址.a.将0A5C变换为2进制为: 0000,1010,0101,1100,由于页面大小为1KB约为2的10次方,所以0A5C的页号为2,对应的物理块号为:4,所以虚拟地址0A5C的物理地址为125C; b.将093C变换为2进制为: 0000,1001,0011,1100,页号也为2,对应的物理块号也为4,此时虚拟地址093C的物理地址为113C.2、在一个请求分页系统中,采用LRU页面置换算法时,假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,当分配给该作业的物理块数M分别为3和4时,试计算访问过程中所发生的缺页次数和缺页率?比较所得结果?答案:a.当分配给该作业的物理块数M为3时,所发生的缺页率为7,缺页率为: 7/12=0.583;b. 当分配给该作业的物理块数M为4时,所发生的缺页率为4,缺页率为: 4/12=0.333.3、什么是抖动? 产生抖动的原因是什么?a. 抖动(Thrashing)就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页调出,而此时被换出的页很快又要被访问,因而又需将它调入,如此频繁更换页面,以致花费大量的时间,我们称这种现象为"抖动";b. 产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为了提高CPU利用率,可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致CPU的利用率下降,而系统的调度程序又会为了提高CPU利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于"抖动"状态.【例1】可变分区存储管理系统中,若采用最佳适应分配算法,“空闲区表”中的空闲区可按(A )顺序排列A、长度递增B、长度递减C、地址递增D、地址递减分析:最佳适应算法要求每次都分配给用户进程能够满足其要求的空闲区中最小的空闲区,所以为了提高算法效率,我们把所有的空闲区,按其大小以递增的顺序形成一空闲分区链这样,第一个找到的满足要求的空闲区,必然是符合要求中最小的所以本题的答案是A【例2】虚拟存储技术是(B )A、扩充主存物理空间技术B、扩充主存逻辑地址空间技术C、扩充外存空间的技术D、扩充输入/输出缓冲区技术分析:所谓虚拟存储器,是指仅把作业的一部分装入内存便可运行作业的存储器系统具体地说,所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统实际上,用户所看到的大容量只是一种感觉,是虚的,故称之为虚拟存储器虚拟存储技术是一种性能非常优越的存储器管理技术、故被广泛地应用于大、中、小型机器和微型机中所以本题的答案是B【例3】很好地解决了“零头”问题的存储管理方法是(A )A、分页存储管理方式B、分段存储管理方式C、多重分区管理D、可变式分区管理分析:“零头”也就是内存碎片,是指内存中无法被利用的小空闲区在有些内存管理方式下,系统运行一段时间后,内存的碎片会占据相当的数量的空间分段存储管理方式、多重分区管理、可变式分区管理都会因为内存分配回收产生“零头”,而分页存储管理方式,按事先划分好的内存块为单位分配回收内存,所以不会产生“零头”所以本题的答案是A【例4】系统“抖动”现象的发生是由(B )引起的A、交换的信息量过大B、置换算法选择不当C、内存容量不足D、请求分页管理方案分析:“抖动”现象是指刚被换出的页很快又要被访问,为此,又要换出其他页,而该页又很快被访问,如此频繁地置换页面,以致大部分时间都花在页面置换上交换的信息量过大,内存容量不足都不是引起系统“抖动”现象的原因,而选择的置换算法不当才是引起“抖动”现象的根本原因,例如,先进先出算法就可能产生“抖动”现象所以本题的答案是B【例5】虚拟存储管理系统的基础是程序的(C)理论A、全局性B、虚拟性C、局部性D、动态性分析:虚拟存储技术是基于程序的局部性原理的,程序的局部性原理体现在两个方面:时间局部性和空间局部性时间局部性是指一条指令被执行后,那么它可能很快会再次被执行,空间局部性是指若某一存储单元被访问,那么与该存储单元相邻的单元可能也会很快被访问所以本题的答案是C【例6】简述页和段的区别答:分页和分段有许多相似之处,但是在概念上两者完全不通,主要表现在:①页是信息的物理单位,分页是为了系统管理内存的方便而进行的,故对用户而言,分页是不可见的,是透明的;段是信息的逻辑单位,分段是作业逻辑上的要求,对用户而言,分段是可见的②页的大小是固定的,由系统决定;段的大小是不固定的,由用户作业本身决定③从用户角度看,分页的地址空间是一维的,而段的地址空间是二维的【例7】内存保护是否可以完全由软件来实现?为什么?答:内存保护的主要任务是确保每道程序都只在自己的内存内运行这就要求系统能对每条指令所访问的地址进行越界检查若发生越界,系统应能立即发现,并发出越界中断请求,以终止该指令若每次检查完全用软件来实现,则每执行一条指令,都要增加若干条指令去执行越界的检查功能,这无疑将降低程序的执行速度,因此,越界检查通常由硬件实现,并使指令的执行与越界检查功能并行执行,从而不使程序的运行速度降低当然,对发现有越界后的处理需要与软件配合来完成因此说内存保护功能是由硬件和软件共同完成的【例8】用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小为32K,10K,5K,228K,100K现有五个作业J1,J2,J3,J4和J5它们各需主存11K,10K,108K,28K,115K若采用首次适应分配算法能把这五个作业按J1~J5的次序全部装入主存吗?你认为按怎样的次序装入这五个作业可时主存空间的利用率最高?答:最先适应分配算法能把这五个作业按J1~J5的次序全部装入主存时,J1、J2分割第一个空闲区,剩11K;J3、J4分割第四个空闲区,剩92K;J5无法装入,所以用最先适应分配算法不能把这五个作业按J1~J5的次序全部装入主存如果先装入J3,装入第四个空闲区,剩余空间120K;再装入J5,装入第四个空闲区,剩余空间5K;再装入J4,装入第一个空闲区,剩余4K;再装入J1,J1装入第五个空闲区,剩余空间104K;再装入J2,装入第二个空闲区,这样效率最好【例9】简述什么是覆盖?什么是交换?覆盖和交换的区别是什么?答:所谓覆盖,是指同一主存区可以被不同的程序段重复使用通常一个作业由若干个功能上相互独立的程序段组成,作业在一次运行时,也只用到其中的几段,利用这样一个事实,我们就可以让那些不会同时执行的程序段共用同一个主存区所谓交换,就是系统根据需要把主存中暂时不运行的某个(或某些)作业部分或全部移到外存,而把外存中的某个(或某些)作业移到相应的主存区,并使其投入运行覆盖技术要求程序员必须把一个程序划分成不同的程序段,并规定好它们的执行和覆盖顺序,操作系统根据程序员提供的覆盖结构来完成程序之间的覆盖覆盖主要在同一个作业或同一个进程内进行;而交换主要是在进程或作业之间进行另外,覆盖只能覆盖那些与覆盖程序段无关的程序段【例10】对一个将页表放在内存中的分页系统:(1)如果访问内存需要0.2μs,有效访问时间为多少?(2)如果增加一个快表,且假定在快表中找到页表项的几率高达90%,则有效访问时间又是多少(假定查找快报需花的时间为0)?分析:每次访问数据时,若不使用快表,则需要两次访问内存,即先从内存的页表中读出页对应的块号,然后再根据形成的物理地址去存取数据;使用快表时,若能从快表中直接找到对应的页表项,则可立即形成物理地址去访问相应的数据,否则,仍需两次访问内存答:(1)有效访问时间为:2×0.2=0.4μs(2)有效访问时间为:0.9×0.2+(1-0.9)×2×0.2=0.22μs【例11】某系统采用分页存储管理方式,拥有逻辑空间32页,每页2K,拥有物理空间1M(1)写出逻辑地址的格式(2)若不考虑访问权限等,进程的页表项有多少项?每项至少有多少位?(3)如果物理空间减少一半,页表结构应相应作怎样的改变?答:该系统拥有逻辑空间32页,故逻辑地址中页号必须用5位来描述;而每页为2k,因此,页内地址必须用11位来描述,这样可得到它的逻辑地址格式如下:15 11 10 0(2)每个进程最多有32个页面,因此,进程的页表项最多为32项;若不考虑访问权限等,则页表项中只需给出页所对应的物理块号,1M的物理空间可分成29个物理块,故每个页表项至少有9位(3)如果物理空间减少一半,则页表中页表项数仍不变,但每项的长度可减少1位【例12】在分页存储管理系统中,逻辑地址的长度为16位,页面大小为4096字节,现有一逻辑地址为2F6AH,且第0、1、2页依次存放在物理块5、10、11中,问相应的物理地址是多少?分析:在分页存储管理系统中进行地址转换时,地址变换机构将自动把逻辑地址转化为页号和页内地址,如果页号不小于页表长度,则产生越界中断;否则便以页号为索引去检索页表,从中得到对应的块号,并把块号和页内位移分别送入物理地址寄存器的块号和块内位移字段中,形成物理地址答:由题目所给条件可知,分页存储管理系统的逻辑地址结构为: 15 12 11 0页号页内位移逻辑地址2F6AH的二进制表示如下: 0010 111101101010 页号页内位移由此可知逻辑地址2F6AH的页号为2,小于页表长度3,没有越界,该页存放在第11个物理块中,用十六进制表示块号为B,所以物理地址为BF6AH【例13】什么是虚拟存储器?如何实现分页虚拟存储管理系统?答:所谓虚拟存储器,是指仅把作业的一部分装入内存便可运行作业的存储器系统具体地说,所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统要实现分页虚拟存储管理系统,首先要扩充页表,扩充后的页表是在原来页表的基础上发展起来的,包括以下内容:页号、物理块号、状态位、访问位、修改位、外存地址其中状态位表示该页是否已经调入内存;访问位表示该页在内存期间是否被访问过;修改位表示该页在内存中是否被修改过,若未被修改,则在置换该页时就不需将该页写回到外存,以减少系统的开销和启动磁盘的次数;若已被修改,则在置换该页时必须把该页写回到外存,以保证外存中所保留的始终是最新副本;外存地址用于指出该页在外存上的地址,通常是物理块号,供调入该页时使用另外,还要使用两项关键技术:请求调页技术和页面置换技术【例14】在分页虚拟存储管理系统中,为什么说一条指令执行期间可能产生多次缺页中断?答:因分页虚拟管理方式中,只要作业的部分页在内存,该作业就能执行,而在执行过程中发现所要访问的指令或者数据不在内存时,则产生缺页中断,将所需的页面调入内存在分页虚拟存储管理系统中,一条指令(如Copy A to B )可能跨了两个页,而其中要访问的操作数可能也跨了两个页当要执行这类指令,而相应的页都不在内存时,就将产生多次缺页中断(如Copy A to B可能产生6次缺页中断)【例15】在分页虚拟存储管理系统中,假定系统为某进程分配了四个主存块(将开始4页先装入主存),页的引用顺序为:7,1,2,0,3,0,4,2,3,0,3,2,7,0,1,若采用FIFO调度算法、LRU调度算法时分别产生多少次缺页中断?依次淘汰的页分是什么?答:按照先进先出算法的原则:当发生缺页中断时,将淘汰最先调入主存的页面:页号 7 1 2 0 3 0 4 2 3 0 3 2 7 0 主存块的情况 7 7 7 7 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 4 4 4 4 4 4 4 4 2 2 2 2 2 2 2 2 2 2 2 2 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 淘汰页 7 1 2 共发生了3次缺页中断,依次淘汰的页位7、1、2按照最近最少用算法的原则:当发生缺页中断时,后者则淘汰最近一段时面内最久没有被访问的页面页号 7 1 2 0 3 0 4 2 3 0 3 2 7 0 主存块的情况 7 1 2 0 3 0 4 2 3 0 3 2 7 0 1 7 1 2 0 3 0 4 2 3 0 3 2 7 2 2 7 1 2 2 3 0 4 2 2 0 3 2 0 0 0 7 1 1 2 3 0 4 4 4 0 3 淘汰页 7 1 4 发生了3次缺页中断,依次淘汰的页位7、1、4【例16】现有一分页虚拟存取管理系统,其页表保存在寄存器中若有一个可用的空页或被替换的页未被修改,则它处理一个缺页中断需要8ms如果被替换的页已被修改,则处理一个缺页中断需要20ms内存存取时间为1μs假定70%被替换的页被修改过,为保证有效存取时间不超过2μs,可接受的最大缺页率是多少?分析:因为页表放在寄存器里,所以访问页表的时间可以忽略不计则存取时间就包括内存存取时间和处理缺页中断的时间答:如果用P表示缺页率,则有效访问时间不超过2μs可表示为:(1-p)×1μs+p×(0.7×20ms+0.3×8ms+1μs)≤2μs因此可计算出:p≤1/16400≈0.000062.下列(A )存储方式不能实现虚拟存储器A、分区B、页式C、段式D、段页式3.操作系统处理缺页中断时,选择一种好的调度算法对主存和辅存中的信息进行高效调度尽可能地避免(D )A、碎片B、CPU空闲C、多重中断D、抖动4.分页式存储管理的主要特点是(C )A、要求处理缺页中断B、要求扩充主存容量C、不要求作业装入到主存的连续区域D、不要求作业全部同时装人主存5.LRU页面调度算法淘汰(B )的页A、最近最少使用B、最近最久未使用C、最先进入主存D、将来最久使用6.虚拟存储器实际容量受(B )限制A、物理主存的大小B、计算机的地址结构C、磁盘容量D、数据存放的绝对地址7.分区管理要求对每一个作业都分配(A)的主存单元A、地址连续B、若干地址不连续的C、若干连续的页D、若干不连续的帧8.页面置换算法中(A )不是基于程序执行的局部性理论A、先进先出调度算法B、LRUC、LFUD、最近最不常用调度算法9.在存储管理中,采用覆盖与交换技术的目的是(A)A、节省主存空间B、物理上扩充主存容量C、提高CPU的效率D、实现主存共享10.分页虚拟存储管理中,缺页中断时,欲调度一页进入主存中,内存己无空闲块,如何决定淘汰已在主存的块时,(B )的选择是很重要的A、地址变换B、页面调度算法C、对换方式D、覆盖技术11.动态重定位技术依赖于(B )A、重定位装入程序B、重定位寄存器C、地址结构D、目标程序12.(D)存储管理兼顾了段式在逻辑上清晰和页式在存储管理上方便的优点A、分段B、分页C、可变分区方式D、段页式13.在可变分区存储管理中,某作业完成后要收回其主存空间,该空间可能与相邻空闲区合并,修改空闲区表使空闲区始址改变但空闲区数不变的是(C )情况A、有上邻空闲区也有下邻空闲区B、有上邻空闲区但无下邻空闲区C、无上邻空闲区但有下邻空闲区D、无上邻空闲区且也无下邻空闲区14.可变分区管理中,首次适应分配算法可将空闲区表中的空闲区栏目按(A )顺序排列A、地址递增B、长度递增C、地址递减D、长度递减15.在固定分区分配中,每个分区的大小是(C )A、随作业长度变化B、相同C、可以不同但预先固定D、可以不同但根据作业长度固定16.存储管理主要管理的是( C )A、外存存储器用户区B、外存存储器系统区C、主存储器用户区D、主存储器系统区17.下述(B )页面置换算法会产生Belady现象A、最佳置换算法B、先进先出算法C、LRU算法D、Clock算法18.作业执行中发生了缺页中断,经操作系统处理后,应让其执行(C )指令A、被中断的前一条B、被中断的后一条C、被中断的D、启动时的第一条19可变分区方式常用的主存分配算法中,(A)总是找到能满足作业要求的最小空闲区分配A、最佳适应算法B、首次适应算法C、最坏适应算法D、循环首次适应算法20可变分区方式常用的主存分配算法中,(C)总是找到能满足作业要求的最大空闲区分配A、最佳适应算法B、首次适应算法C、最坏适应算法D、循环首次适应算法二、多项选择题1.不需硬件地址转换机构支撑的存储管理方式是(AD )A、单用户连续方式B、可变分区方式C、页式和段式D、固定分区方式E、段页式2.可用上下界限寄存器实现存储保护的是(ACE )存储管理A、分段B、段页式C、可变分区D、分页E、固定分区3.在下列存储器管理方案中,能实现虚拟存储的是(CD )A、分区管理B、分页存储管理C、请求分页存储管理D、请求分段存储管理E、段页式存储管理4.在下列算法中,可用于页面置换算法的是(ABE ) A、先进先出算法 B、LRU算法C、优先级高者优先算法 D、时间片轮转法E、Clock算法三、填空题1.在存储器管理中,页是信息的物理单位,段是信息的逻辑单位页面大小由系统确定,段的大小由_用户作业本身确定2.将作业地址空间中的逻辑地址转换为主存中的物理地址的过程称为地址转换3.为了解决碎片问题,可采用一种方法,将内存中的所有作业进行移动,使原来分散的多个小分区拼接成一个大分区,这种方法称为紧凑4.覆盖技术的关键是提供正确的覆盖结构5.页表的作用是实现从页号到物理块号的映射6.程序执行的局部性原理体现在时间局部性和空间局部性两个方面7.在分页虚拟存储管理方式中,常采用的页面置换算法有:最佳置换算法,淘汰不再使用或最远的将来才使用的页;先进先出算法,选择淘汰在主存驻留时间最长的页;最近最少使用算法,选择淘汰离当前时刻最近的一段时间内使用得最少的页8.所谓虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统9、可变分区中为提高主存利用率,采用紧凑技术,但这样做花费处理器时间,增加系统开销11.段页式存储管理兼顾了段式在逻辑上清晰和页式存储管理上方便的优点.12.页面调度算法的选择是很重要的,如果选用了一个不合适调度算法就会出现这样的现象,刚被淘汰的页面又立即要用,把它调入,不久又被调出,调出不久又再次调入,如此反复,使调度时间非常频繁,以致大部分时间都花费在来回调度上,这种现象叫做抖动,又称颠簸13.页式存储管理中,进行存储分配时,以块为单位进行分配,采用不连续的分配办法,作业信息可以按页分散在主存不连续的主存块中。
操作系统-分页存储管理方式
操作系统-分页存储管理方式操作系统分页存储管理方式在计算机操作系统中,分页存储管理方式是一种重要的内存管理技术。
它的出现和应用,极大地提高了计算机系统的内存使用效率和性能。
我们先来想象一下,如果没有分页存储管理方式,计算机在处理程序和数据时会面临怎样的情况。
假设我们的计算机内存就像一个大的房间,而程序和数据就像各种大小不一的家具。
如果没有一种有效的规划和安排方式,这些家具可能会随意摆放,导致空间浪费,甚至可能出现有些家具无法放进房间的情况。
这就是没有良好内存管理时可能出现的混乱局面。
那么,分页存储管理方式是如何解决这个问题的呢?简单来说,它就像是把这个大房间划分成了一个个大小相同的小格子。
在分页存储管理中,将内存空间划分为若干个固定大小的页框,同时将进程的逻辑地址空间也划分为同样大小的页。
页框和页的大小通常是相等的,比如常见的 4KB 大小。
这样一来,当程序要运行时,操作系统会将程序的页加载到内存的页框中。
比如说,一个程序有 100KB 的大小,按照 4KB 一页来划分,就可以分成 25 页。
当程序运行时,可能并不是所有的 25 页都需要同时加载到内存中,而是根据程序运行的实际情况,逐步加载需要的页。
这就大大提高了内存的利用率,因为不需要一次性为整个程序分配大量的连续内存空间。
分页存储管理方式还有一个重要的优点,那就是实现了虚拟内存。
虚拟内存使得计算机能够运行比实际物理内存更大的程序。
这是怎么做到的呢?当程序需要访问的页不在内存中时,操作系统会通过一定的机制,将需要的页从外存(如硬盘)加载到内存中,同时将暂时不用的页换出到外存。
这种页的换入换出是由操作系统自动完成的,对于用户程序来说是透明的。
用户感觉好像自己的程序拥有了无限大的内存空间,但实际上只是操作系统在背后巧妙地进行着内存的调度和管理。
为了有效地管理页的换入换出,操作系统通常会使用页表。
页表记录了每个页在内存中的位置信息。
当程序访问某个逻辑地址时,操作系统通过查询页表,将逻辑地址转换为物理地址,从而找到实际的数据所在的内存位置。
操作系统学习资料-第五章 存储管理习题
第五章存储管理一. 选择最合适的答案1.分页存储管理的存储保护是通过( )完成的.A.页表(页表寄存器)B.快表C.存储键D.索引动态重定2.把作业地址空间中使用的逻辑地址变成内存中物理地址称为()。
A、加载B、重定位C、物理化D、逻辑化3.在可变分区存储管理中的紧凑技术可以()。
A.集中空闲区B.增加主存容量C.缩短访问时间D.加速地址转换4.在存储管理中,采用覆盖与交换技术的目的是( )。
A.减少程序占用的主存空间B.物理上扩充主存容量C.提高CPU效率D.代码在主存中共享5.存储管理方法中,( )中用户可采用覆盖技术。
A.单一连续区 B. 可变分区存储管理C.段式存储管理 D. 段页式存储管理6.把逻辑地址转换成物理地址称为()。
A.地址分配B.地址映射C.地址保护D.地址越界7.在内存分配的“最佳适应法”中,空闲块是按()。
A.始地址从小到大排序B.始地址从大到小排序C.块的大小从小到大排序D.块的大小从大到小排序8.下面最有可能使得高地址空间成为大的空闲区的分配算法是()。
A.首次适应法B.最佳适应法C.最坏适应法D.循环首次适应法9.硬盘容量1G,内存容量为1024k,那么虚拟存储器最大实际容量可能是( ) 。
A.1024KB.1024MC.10GD.10G+1M10.用空白链记录内存空白块的主要缺点是()。
A.链指针占用了大量的空间B.分配空间时可能需要一定的拉链时间C.不好实现“首次适应法”D.不好实现“最佳适应法”11.一般而言计算机中()容量(个数)最多.A.ROMB.RAMC.CPUD.虚拟存储器12.分区管理和分页管理的主要区别是()。
A.分区管理中的块比分页管理中的页要小B.分页管理有地址映射而分区管理没有C.分页管理有存储保护而分区管理没有D.分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。
13.静态重定位的时机是()。
A.程序编译时B.程序链接时C.程序装入时D.程序运行时14.通常所说的“存储保护”的基本含义是()A.防止存储器硬件受损B.防止程序在内存丢失C.防止程序间相互越界访问D.防止程序被人偷看15.能够装入内存任何位置的代码程序必须是( )。
《操作系统》复习题目整理
操作系统复习题目整理一、选择题1.操作系统的主要功能是存储管理、设备管理、文件管理、用户接口和__A____A.进程管理B.用户管理C.信息管理D.操作系统管理2.操作系统的最基本的两个特征是资源共享和___B____A.多道程序设计B.程序的并发执行C.中断D.程序顺序执行3.操作系统是对_______进行管理的软件。
A.软件B.硬件C.计算机资源D.程序4.并发执行的程序具有___D____特征。
A.顺序性 B.封闭性 C.可再现行 D.间断性5.在进程状态转换图中,___C____是不可能的。
A.运行态---→就绪态B。
运行态----→等待态C.等待态---→运行态D。
等待态----→就绪态6.操作系统对进程进行管理与控制的基本数据结构是___B_____。
A.JCB B。
PCB C。
PMT D。
DCT7.进程和程序的本质区别是___A_____。
A.动态或静态B。
分时使用或独占计算机资源C.顺序或非顺序地执行其指令D。
存储在内存和外存8.进程和线程的区别是____C_____。
A.大小不同B。
独立调度的单位C.是否拥有资源D。
对应的分别是程序和过程9.下面对进程的描述,错误的是____D_____。
A.进程是一个动态的概念B。
进程的执行需要处理机C.进程是有生命期的D。
进程是指令的集合10.多道程序环境中,操作系统分配资源是以___C____为单位。
A.程序B。
指令C。
进程D。
作业11.进程的并发执行是指若干个进程_____B___。
A.同时执行B。
在执行时间上时重叠的C.在执行时间上是不重叠的D。
共享系统资源12.下面有关进程的描述,___A____是正确的。
A.进程执行的相对速度不能由进程自己控制B.进程呢个利用信号量的P、V操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作13.信号灯可以用来实现进程之间的__B____。
A.调度B。
操作系统-连续分配存储管理方式
操作系统-连续分配存储管理方式操作系统连续分配存储管理方式在计算机操作系统中,存储管理是一项至关重要的任务,它负责有效地管理计算机内存资源,以确保系统的高效运行和各种程序的正常执行。
连续分配存储管理方式是其中的一种常见方法,接下来让我们详细了解一下。
连续分配存储管理方式,顾名思义,就是为程序或进程分配连续的内存空间。
这种方式相对直观和简单,易于理解和实现。
首先,我们来谈谈单一连续分配。
在这种方式下,内存被分为系统区和用户区两部分。
系统区通常存放操作系统内核等关键系统程序,而用户区则只供一个用户程序使用。
这就好比一个房间被隔成了两个部分,一个部分是主人的私人空间,另一个部分则是留给客人的专属区域。
这种方式简单直接,但缺点也很明显,它只能用于单用户、单任务的操作系统,因为内存资源无法被多个程序共享,利用率较低。
接下来是固定分区分配。
这就像是把一个大房间提前划分成了几个固定大小的小房间。
每个小房间都有固定的大小,并且只能分配给大小合适的程序使用。
系统会预先将内存空间划分成若干个固定大小的分区,每个分区可以装入一个作业。
这种方式提高了内存的利用率,支持多道程序并发运行,但也存在一些问题。
比如,如果程序的大小小于分区的大小,就会造成内存空间的浪费,这就好比一个小个子住进了一个大房间,空间没有被充分利用。
而且,由于分区大小固定,缺乏灵活性,可能会出现大程序无法装入小分区的情况。
然后是动态分区分配。
这有点像一个灵活的仓库,根据货物的大小来随时调整存储空间。
在这种方式下,系统不会预先划分分区,而是在进程装入内存时,根据进程的实际需要,动态地划分出一块连续的内存空间分配给它。
当进程运行结束后,再将这块内存空间回收。
为了实现动态分区分配,系统通常需要使用一些数据结构来记录内存的使用情况,比如空闲分区表或者空闲分区链。
这种方式提高了内存的利用率,避免了固定分区分配中的一些浪费问题,但也带来了一些新的挑战。
比如说,随着进程的不断装入和退出,内存中会产生很多碎片,这些碎片可能很小,无法满足新进程的需求,从而导致内存的利用率降低。
考研操作系统-存储管理(二)
考研操作系统-存储管理(二)(总分:108.00,做题时间:90分钟)一、单项选择题(总题数:34,分数:68.00)1.对主存储器的访问,是( )。
A.以页(块)或段为单位B.以字节或字为单位C.随存储器的管理方案不同而异D.以用户的逻辑记录为单位(分数:2.00)A.B. √C.D.解析:[解析] 本题考查对主存的访问,不是对主存的分配。
主存的编址以字节为单位,对主存的访问也是以字节为单位。
因此本题选择B。
2.在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是( )。
A.编辑 B.编译 C.链接 D.装载(分数:2.00)A.B. √C.D.解析:[解析] 编译过程指编译程序将用护源代码编译成目标模块。
源地址编译成目标程序时,会形成逻辑地址。
因此本题选择B。
3.把作业空间中使用的逻辑地址变换为内存中的物理地址的过程称为( )。
A.加载 B.重定位 C.物理化 D.逻辑化(分数:2.00)A.B. √C.D.解析:[解析] 本题考查重定位的概念。
由于作业装入内存时分配的内存空间与作业的地址空间是不一致的。
因此在作业装入或执行时,不对有关逻辑地址部分进行相应的修改,会导致错误的结果。
这种将作业的逻辑地址变换为物理地址的过程称为“地址重定位”。
因此本题选择B。
4.为了保证一个程序中主存中改变了存放位置之后仍能正常执行,则对主存空间应采用( )技术。
A.静态重定位 B.动态重定位 C.动态分配 D.静态分配(分数:2.00)A.B. √C.D.解析:[解析] 本题考查重定位的相关概念,而不是内存分配方式,所以首先排除C和D选项。
静态重定位中,地址变换通常是在装入时一次性完成,之后地址都不再改变,称为静态重定位。
动态重定位采用动态运行时装入方式,可以保证一个程序在主存中改变了存放位置后仍然能正确执行。
因此本题选择B。
5.在存储管理中采用交换与覆盖技术,其目的是( )。
A.从物理上扩充内存 B.实现主存共享C.节省存储空间 D.提高内存利用率(分数:2.00)A.B.C.D. √解析:[解析] 本题考查交换与覆盖技术的基本概念。
操作系统复习资料(2)
第一章操作系统的定义:操作系统是管理系统资源、控制程序执行,改善人机界面,提供各种服务,合理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的最基本的一种系统软件。
操作系统的目标:(1)方便用户使用(2)扩充机器功能(3)管理系统资源(4)提高系统效率(5)构筑开放环境计算机系统由硬件和软件两部分组成。
硬件是软件运行的物质基础;软件能充分的发挥硬件的潜能并扩充硬件的功能,完成各种应用任务,两者互相促进,相辅相成,缺一不可。
硬件层:提供基本的可计算性资源,如处理器、寄存器、存储器及各种I/O设备。
操作系统的作用:对内是“管理员”,对外是“服务员”。
(1)OS作为用户接口和服务提供者(2)OS作为作为扩展机或虚拟机(3)OS作为资源管理者和控制者(4)OS作为程序执行控制者和协调者操作系统的功能:(1)处理机管理(2)存储管理(3)设备管理(4)文件管理(5)网络与通信管理(6)用户接口操作系统的主要特性:(1)并发性;(2)共享性;(3)异步性并发性---指两个或两个以上的事件或活动在同一时间间隔内发生。
共享性---指操作系统中的资源可被多个并发执行的进程所使用。
异步性---给系统带来潜在危险,有可能导致与时间有关的错误。
多道程序设计是指:允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。
三种基本的操作系统类型:(1)批处理操作系统 (2)分时操作系统 (3)实时操作系统分时系统的特征:(1)同时性 (2)独立性 (3)及时性 (4)交互性实时操作系统(Real Time OS) 处理流程:(1)数据采集 (2)加工处理 (3)操作控制 (4)反馈处理其他几种操作系统:(1)微机操作系统(2)网络操作系统(3)分布式操作系统(4)嵌入式操作系统第二章中断的定义:中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。
计算机操作系统第七章 - 存 储 管 理
分页系统中的地址映射
图5-16 分页系统的地址转换机构 每个进程平均有半个页面的内部碎 片
页面尺寸
设进程的平均大小为s字节,页面尺寸为p字节 ,每个页表项占e字节。那么,每个进程需要的 页数大约为s/p,占用 s . e /p 字节的页表空间。 每个进程的内部碎片平均为p/2。 因此,由页表和内部碎片带来的总开销是: s . e /p+p/2
• • •
虚拟存储器的特征
① ② ③ ④
虚拟扩充。 部分装入。 离散分配。 多次对换。
地址重定位( 地址重定位(地址映射)
• • • • • • • • • • • •
MOV AX,1234 ;立即数寻址 MOV [1000],AX 存储器直接寻址 MOV BX,1002 ;立即数寻址 MOV BYTE PTR[BX],20 ;基址寻址 MOV DL,39 ;立即数寻址 INC BX ;寄存器寻址 MOV [BX],DL ;基址寻址 DEC DL ;寄存器寻址 MOV SI,3 ;立即数寻址 MOV [BX+SI],DL ;基址加变址寻址 MOV [BX+SI+1],DL ;基址+变址+立即数寻址 ;基址+变址+ MOV WORD PTR[BX+SI+2],2846 ;基址+变址+立即数寻址 ;基址+变址+
页面置换算法
页面置换
1.页面置换过程
图5-35 页面置换
需要解决的问题
• 系统抖动 • 缺页中断
•
在学汇编时,很多初学者对PC的寻址方式和很 在学汇编时,很多初学者对PC的寻址方式和很 不理解,甚至是很难理解。的确,这方面的知识 是很抽象的,需要比较强的空间想象能力。尤其 是我们在输入字符串时,那这些字符是如何进行 排列的呢?对于,这个问题,我相信很多初学者 也是很难想象是如何排列。但是,我可以这样比 喻:内存就是有很多栋“楼房” 喻:内存就是有很多栋“楼房”,“楼房”又是 楼房” 由“单元号”,“门户号”组成,那“楼房”就 单元号” 门户号”组成,那“楼房” 相当于内存地址的段地址,“单元号” 相当于内存地址的段地址,“单元号”就相当于 内存的的 偏移地址,“门户号(家)”就相当于“变 偏移地址,“门户号( 就相当于“ 地址”,而每个单元有16个 门户号( )",又当我 地址”,而每个单元有16个"门户号(家)",又当我 们找到"门户号( )"后 走进这个"门户号( )"就会 们找到"门户号(家)"后,走进这个"门户号(家)"就会 见到里面会有" ",而我们所说的人就是寄存器所 见到里面会有"人",而我们所说的人就是寄存器所 指的"内容" 指的"内容"了,
操作系统概念复习资料【8-13章】
结果分析:多分配一个物理块可有效减少缺页次数。
(3)分配给该作业3个物理块时,采用最佳页面替换算法, 进程执行过程中页面臵换如下表:
1 4 3 5 4 3 4 4 3 3 1 5 缺页次数为7,缺页中断率为:7/12。 f(2) f(1)
4 4
3 4 3
2 4 3 2
2 2 3 5 f(4)
1 5 1 3 5 f(2)
(2)分配给该作业4个物理块时,采用FIFO页面替换算 法,进程执行过程中页面臵换如下表:
4 4 3 4 3 2 4 3 2 1 4 3 2 1 4 3 5 5 3 2 1 f(4) 4 5 4 2 1 f(3) 3 5 4 3 1 f(2) 2 5 4 3 2 f(1) 1 1 4 3 2 f(5) 5 1 5 3 2 f(4)
2.在采用页式存储管理的系统中,某作业J的逻 辑地址空间为4页(每页2KB),且已知该作业 的页面映像表(即页表)如下所示。
页号 0 1 2
块号 2 4 6
3
8
试借助地址变换图(即要求 画出地址变换图)求出有效 逻辑地址4865所对应的物理 地址。
解:在本题中,一页大小 为2KB,即2048字节,则 逻辑地址4865的页号及 页内位移为: 页号: 4865/2048=2 页内位移: 48652048*2=769 通过页表可知页面2存放 在物理块6中,将物理块 号与逻辑地址中的页内 位移进行拼接,形成物 理地址,即: 6*2048+769=13057
综合分析计算题
1.个请求分页系统中,采用FIFO、最近最久未使用、 最佳页面臵换算法时,假如一个作业的页面走向为4、 3、2、1、4、3、5、4、3、2、1、5,当分配给该作业 的物理块数M分别为3和4时,试计算在访问过程中所 发生的缺页次数和缺页率。并比较所得结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.1 内存管理基础内存管理的主要任务是:为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及从逻辑上扩充存储器。
内存管理包括:内存分配,内存保护,地址映射,内存扩充。
---------------------------------------------------------------------------------------------应用程序的处理一般过程:由相应的语言处理程序将源程序模块对应转换成目标模块->由链接程序将所有相关的目标模块链接到一起,整合成一个可执行程序->由装入程序将程序装入内存后予以执行。
重定位的概念:由于编译程序无法确定目标代码在执行时所对应的地址单元,故一般从0号单元开始为其编址。
这样的地址称为相对地址、程序地址或虚拟地址。
因此当装入程序将可执行代码装入内存时,必须通过地址转换将逻辑地址转换成内存地址,这个过程称为地址重定位。
重定位分为静态重定位和动态重定位两种,静态重定位在装入时将所有相对地址转换成绝对地址,这种装入方式要求作业在装入时就必须分配其要求的所有空间,整个运行过程中不能在内存中移动,也不能申请新空间;动态重定位是装入时不地址转换,在执行过程中由硬件的地址转换机构转换成绝对地址,这种装入方式可以将程序分配到不连续的存储区中,不必装入所有代码就可以运行,但是需要硬件支持。
在重定位中通常设置一个重定位寄存器,里面放的是程序的基址,物理地址=基址+相对地址程序链接的方式:静态链接:在运行前链接装入时动态链接:边装入边链接运行时动态链接:运行到需要处才链接,便于修改和更新,便于实现共享程序装入的方式:绝对装入方式:在编译时就知道程序要驻留的内存地址(和静态重定位完全不是一回事)可重定位装入方式:有静态重定位和动态重定位两种其他方式:和分页和分段相结合---------------------------------------------------------------------------------------------交换和覆盖的目的都是扩充逻辑内存交换技术:把暂时不用的某个程序及数据部分(或全部)从内存中移到外存,或吧指定的程序或数据从外存读到内存。
交换技术打破了一个程序一旦进入主存便一直运行到结束的限制。
覆盖技术:(定义略)覆盖技术要求程序员实现把一个程序划分成不同的程序段,并规定好它们的覆盖结构。
打破了一个进程必须在全部信息都装入内存后才可运行的限制。
---------------------------------------------------------------------------------------------连续分配管理方式:(1)单一连续分配:把内存空间分为系统区和用户区,每次只装入运行一个程序,存储器利用率极低。
(2)固定分区分配:将内存用户空间划分为若干个固定大小的区域,每个分区只装一道作业,分区大小可以相等也可以不等优点:可用于多道程序系统最简单的存储分配缺点:空间利用率较低(3)动态内存分配:又称可变内存分配,其做法是在作业进入内存时,根据作业的大小动态的建立分区优点:实现了多道程序共享内存,管理方案相对简单,实现存储保护的手段相对简单缺点:系统中总有一部分空间得不到利用,无法实现多进程共享存储器的信息,无法实现主存的扩充动态内存分配算法首次适应算法:将空闲分区链以地址递增的次序连接,在分配内存时,从链首开始查找,知道找到一个大小合适的空间区间为止由于首次适应算法每次都从低址开始找,这样容易造成内存各部分使用不均,所以又有了循环首次适应算法循环首次适应算法:在分配内存空间时,从上次找到的空闲分区的下一个空闲分区开始查找循环首次适应算法可以减少查找开销,但可能导致较大的空闲分区最佳适应算法:空闲分区按容量从小到大排列,每次分配时都将能满足要求且最小的空闲分区分配给作业最佳适应算法产生的碎片小但却多,这是优点也是缺点最差适应算法:空闲分区按容量从大到小排列,每次分配时都将能满足要求且最大的空闲分区分配给作业最差适应算法能使每次留下的空闲区较大,便于下次使用,但是大的空间区不易保留分区的回收:作业执行结束后要回收使用完毕的分区,系统根据回收分区的大小及首地址,在空闲分区表中检查是否有相邻的空闲区,如有则合并成一个大的空闲区,合并时可能出现的情况有三种:上邻接,下邻接和上下都邻接。
拼接(紧凑)技术:解决碎片问题的一种方法是采用拼接技术,所谓拼接是指将移动寄存器中所有已分配内存移到内存的一段,是原本分散的空闲区连成一个大的空闲区。
拼接实际一般有两种:在某个分区回收时立刻拼接或在找不到合适的空闲区且空闲区的总容量可以满足作业要求时进行拼接。
存储保护:上下界寄存器法和基址限长寄存器法---------------------------------------------------------------------------------------------非连续内存分配管理方式根据分区的大小固定和不固定又分为分页存储管理方式和分段存储管理方式,分页管理方式又分成基本分页存储管理方式和请求分页存储管理方式基本分页存储管理方式:实现思想:将作业分成若干个大小相等的区域,称为页,将内存也分成与页相等的区域,称为块。
可以将作业中的任意一页放入内存中的任意一个空闲块中。
在调度作业运行时,必须将它的所有页面一次调入内存,若内存中没有足够的物理块,则作业等待。
逻辑地址结构:前一部分是页号P,后一部分是页内偏移量W,如果逻辑空间时2^m,页面大小为2^n,则逻辑地址的前m-n为时页号,后n位是页内偏移量。
为便于在内存中找到进程中每个页面对应的物理块,系统为每个进程建立了一张页面映射表,简称页表,记录页面在内存中对应的物理块号,页表一般放在内存中。
页表大小由机器的地址结构决定,一般在512B~8KB之间。
系统设置了一个页表寄存器(PTR),存放页表在内存中的起始地址F和页表的长度M,进程未执行时,页表的的起始地址和长度放在进程控制块中,当进程执行时,在将页表的起始地址和长度存入PTR中。
地址变换过程:假设页表起始地址为F,页表长度为M,页面大小为L,逻辑地址为A,要计算物理地址E:①计算页号P=(int)A/L,页内偏移量W=A%L。
②比较页号和页表长度M,若P>=M,则产生越界中断。
③在页表找到页号P对应的物理块号b=F[P]。
④E=b*L+W快表:由上面的地址变换过程可知,要想访问一个地址,只有要读取两次内存,这种方法比不用分页慢了一倍。
为了加快内存存取速度,可以在高速缓存存储器中增加一个快表,快表中登记了一部分页号和块号的对应关系。
根据程序执行局部性的特点,在一段时间内总是经常访问某些页,把这些页放入块表中可以有效提高执行速度有无页表访问时间比较:设访问内存一次需要时间为t,查找快表一次需要时间e,命中率为a。
如果没有快表,读取一个地址平均时间为2t,如果有快表,平均时间为ae+(a-1)(e+t)+t=2t+e-ta≈(2-a)t(一般e可忽略不计)多级页表:当页表所占内存很大,无法用一个物理块装下时,就需要将页表分级。
基本分段存储管理方式:在分页存储系统中,作业的地址空间是一维线性的,这破坏了程序内部天然的逻辑结构,造成共享、保护的困难。
引入分段存储管理方式,按逻辑地址将作业分段,每段都有自己的名字,可以根据段名来访问相应的程序段和数据段分段存储管理主要是为了满足用户和程序员的下述需要:1) 方便编程,2) 信息共享,3) 信息保护,4) 动态增长,5) 动态链接段的共享与保护:分段的共享是通过两个作业的段表中相应表项指向被共享分段的同一个物理副本来实现的。
在多道程序环境下,必须注意共享段的信息保护问题,当一个作业正从共享段读取数据时,必须防止另一个作业修改共享段的数据。
在大多数实现共享的系统中,程序被分成代码区和数据区。
不能修改的代码称为纯代码或可重入代码。
这样的代码和不能修改的数据时可以共享的,而可修改的代码和数据则不能共享。
分段管理优缺点:优点:便于动态申请内存,管理和使用统一化,便于共享,便于动态链接;缺点:产生碎片分页和分段的主要区别:(1) 页是信息的物理单位,段则是信息的逻辑单位; (2) 页的大小固定且由系统决定,而段的长度却不固定; (3) 分页的作业地址空间是一维的,即单一的线性地址空间,分段的作业地址空间则是二维的。
段页式存储管理:基本思想:将作业分段,再将段分页对主存储器的访问,是 B 。
A.随存储器的管理方案不同而异 B.以字节或字为单位B 存储管理方式提供一维地址结构。
A.分段 B.分页 C.段页式下列 C 存储管理方式能使存储碎片尽可能少,而且是内存利用率较高。
A.固定分区 B.可变分区 C.分页管理 D.段页式管理分页是由硬件完成的---------------------------------------------------------------------------------------------3.2 虚拟内存管理由于常规存储器管理具有一次性(要求将作业全部装入内存才能运行)和驻留性(作业装入内存后,便一直驻留在内存中)的特点,难以满足作业有很大和有大量作业要求运行的情况。
虚拟存储管理是一种借助于外存空间,从而允许一个进程在其运行过程中部分装入内存的技术。
程序执行的局部性原理:在一较短的时间内,程序的执行仅局限于某个部分,相应的,它所访问的内存空间也局限于某个区域,这就是程序执行的局部性原理,可以分成空间局部性和时间局部性。
虚拟存储器的实质是让程序所在的地址空间与运行时用于存放程序的存储空间区分开,程序员可以在地址空间内编写程序,而完全不用考虑实际内存的大小。
实现虚拟存储技术的硬件支持:相当数量的外存,一定数量的内存,地址变换机构。
常用虚拟存储技术:请求分页存储管理,请求分段时存储管理,请求段页式存储管理虚拟存储器特征:离散性,多次性,对换性,虚拟性请求分页存储管理:请求分页系统=基本分页系统+请求调页功能+页面置换功能实现思想:在请求分页存储管理中,作业运行之前,只要求将当前需要的一部分页面装入内存,便可启动作业运行。
在作业执行过程中,当所要访问的页面不在内存时在通过调页功能将其调入,同时还可以通过置换功能将暂时不用的页面换出到外存上,以便腾出内存空间。
因为在运行过程中必然出现要访问的页面不在内存中的情况,所以需要对页表项进行扩充。
扩充后的各字段如下:页号和物理块号:同基本分页管理状态位P(中断位):表示页面是否在内存中访问位A:用于记录页面在一段时间内被访问的次数,或最近已有多长时间未被访问,供置换算法参考修改位M:用于表示页面调入内存后是否修改过。