首页 操作系统内存管理

操作系统内存管理

举报
开通vip

操作系统内存管理......操作系统内存管理内存管理方法内存管理主要包括虚地点、地点变换、内存分派和回收、内存扩大、内存共享和保护等功能。2.连续分派存储管理方式连续分派是指为一个用户程序分派连续的内存空间。连续分派有单调连续存储管理和分区式储管理两种方式。2.1单调连续存储管理在这种管理方式中,内存被分为两个地区:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,合用于单用户、单任务的操作系统。CP/M和DOS2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,比...

操作系统内存管理
......操作系统内存管理内存管理方法内存管理主要包括虚地点、地点变换、内存分派和回收、内存扩大、内存共享和保护等功能。2.连续分派存储管理方式连续分派是指为一个用户程序分派连续的内存空间。连续分派有单调连续存储管理和分区式储管理两种方式。2.1单调连续存储管理在这种管理方式中,内存被分为两个地区:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,合用于单用户、单任务的操作系统。CP/M和DOS2.0以下就是采用此种方式。这种方式的最大优点就是易于管理。但也存在着一些问题和不足之处,比如对要求内.专业.专注.......存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。2.2分区式存储管理为了支持多道程序系统和分时系统,支持多个程序并发履行,引入了分区式存储管理。分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。分区式存储管理虽然能够支持并发,但难以进行内存分区的共享。分区式存储管理引人了两个新的问题:内碎片和外碎片。内碎片是占用分区内未被利用的空间,外碎片是占用分区之间难以利用的安闲分区(往常是小安闲分区)。为实现分区式存储管理,操作系统应维护的数据构造为分区 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 或分区链表。表中各表项一般包括每个分区的开端地点、大小及状态(是否已分派)。.专业.专注.......分区式存储管理常采用的一项技术就是内存紧缩(compaction)。2.2.1固定分区(nxedpartitioning)。固定式分区的特点是把内存区分为若干个固定大小的连续分区。分区大小能够相等:这种作法只适合于多个相同程序的并发履行(办理多个种类相同的对象)。分区大小也能够不等:有多个小分区、适量的中平分区以及少量的大分区。根据程序的大小,分派目前安闲的、适合大小的分区。优点:易于实现,开销小。缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发履行的程序数目。2.2.2动向分区(dynamicpartitioning)。动向分区的特点是动向创立分区:在装入程序时按其初始要求分派,或在其履行过程中经过系统调用进行分派或改变分区大小。与固定分区相比较其优点是:没有.专业.专注.......内碎片。但它却引入了另一种碎片——外碎片。动向分区的分区分派就是寻找某个安闲分区,其大小需大于或等于程序的要求。假如大于要求,则将该分区切割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“安闲”。分区分派的先后序次往常是从内存低端到高端。动向分区的分区释放过程中有一个要注意的问题是,将相邻的安闲分区归并成一个大的安闲分区。下面列出了几种常用的分区分派算法:最先适配法(nrst-fit):按分区在内存的先后序次从头查找,找到切合要求的第一个分区进行分派。该算法的分派和释放的时间性能较好,较大的安闲分区能够被保存在内存高端。但随着低端分区不断区分会产生较多小分区,每次分派时查找时间开销便会增大。下次适配法(循环首次适应算法nextfit):按分区在内存的先后序次,从上次分派的分区起查找(到最后{区时再从头开始},找到切合要求的第一个分区进行分派。该算法的分派和释放的时间性能较好,使安闲分区散布得更平均,但较大安闲分区不易保存。.专业.专注.......最正确适配法(best-fit):按分区在内存的先后序次从头查找,找到其大小与要求相差最小的安闲分区进行分配。从个别来看,外碎片较小;但从整体来看,会形成较多外碎片优点是较大的安闲分区能够被保存。最坏适配法(worst-fit):按分区在内存的先后序次从头查找,找到最大的安闲分区进行分派。基本不留下小安闲分区,不易形成外碎片。但由于较大的安闲分区不被保存,当对内存需求较大的进度需要运行时,其要求不易被知足。2.3伙伴系统固定分区和动向分区方式都有不足之处。固定分区方式限制了活动进度的数目,当进度大小与安闲分区大小不匹配时,内存空间利用率很低。动向分区方式算法复杂,回收安闲分区时需要进行分区归并等,系统开销较大。伙伴系统方式是对以上两种内存方式的一种折衷 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。伙伴系统规定,不论已分派分区或安闲分区,其.专业.专注.......大小均为2的k次幂,k为整数,l≤k≤m,其中:2^1表示分派的最小分区的大小,2^m表示分派的最大分区的大小,往常2^m是整个可分派内存的大小。假定系统的可利用空间容量为2^m个字,则系统开始运行时,整个内存区是一个大小为2^m的安闲分区。在系统运行过中,由于不断的区分,可能会形成若干个不连续的安闲分区,将这些安闲分区根据分区的大小进行分类,关于每一类拥有相同大小的所有安闲分区,独自建立一个安闲分区双向链表。这样,不同大小的安闲分区形成了k(0≤k≤m)个安闲分区链表。分派步骤:当需要为进度分派一个长度为n的存储空间时:首先计算一个i值,使2^(i-1)<n≤2^i,.专业.专注.......然后在安闲分区大小为2^i的安闲分区链表中查找。若找到,即把该安闲分区分派给进度。否则,表示长度为2^i的安闲分区已经耗尽,则在分区大小为2^(i+1)的安闲分区链表中寻找。若存在2^(i+1)的一个安闲分区,则把该安闲分区分为相等的两个分区,这两个分区称为一对伙伴,其中的一个分区用于配,而把另一个加入分区大小为2^i的安闲分区链表中。若大小为2^(i+1)的安闲分区也不存在,则需要查找大小为2^(i+2)的安闲分区,若找到则对其进行两次切割:第一次,将其切割为大小为2^(i+1)的两个分区,一个用于分派,一个加入到大小为2^(i+1)的空闲分区链表中;第二次,将第一次用于分派的安闲区切割.专业.专注.......为2^i的两个分区,一个用于分派,一个加入到大小为2^i的安闲分区链表中。若仍旧找不到,则持续查找大小为2^(i+3)的安闲分区,以此类推。由此可见,在最坏的情况下,可能需要对2^k的安闲分区进行k次切割才能获得所需分区。与一次分派可能要进行多次切割同样,一次回收也可能要进行多次归并,如回收大小为2^i的安闲分区时,若预先已存在2^i的安闲分区时,则应将其与伙伴分区归并为大小为2^i+1的安闲分区,若预先已存在2^i+1的安闲分区时,又应持续与其伙伴分区归并为大小为2^i+2的安闲分区,依此类推。在伙伴系统中,其分派和回收的时间性能取决于查找安闲分区的地点和切割、归并安闲分区所花费的时间。与前面所述的多种方法相比较,由于该算法在回收安闲分区时,需要对安闲分区进行归并,所以其时间性能比前面所述的分类搜寻算法差,但比次序搜寻算法好,而其空间性能则远优于前面所述的分类搜寻法,比次序搜寻法.专业.专注.......略差。需要指出的是,在目前的操作系统中,普遍采用的是下面将要叙述的鉴于分页和分段体制的虚构内存体制,该体制较伙伴算法更加合理和高效,但在多办理机系统中,伙伴系统仍不失为一种有效的内存分派和释放的方法,获得了大量的应用。2.4内存紧缩内存紧缩:将各个占用分区向内存一端移动,然后将各个安闲分区归并成为一个安闲分区。这种技术在提供了某种程度上的灵活性的同时,也存在着一些缺点,比如:对占用分区进行内存数据搬移占用CPU时间;如果对占用分区中的程序进行“浮动”,则其重定位需要硬件支持。紧缩时机:每个分区释放后,或内存分派找不到知足条件的安闲分区时。.专业.专注.......图8.12堆构造的存储管理的分派算法:在动向存储过程中,不论哪个时刻,可利用空间都是-一个地点连续的存储区,在编译程序中称之为"堆",每次分派都是从这个可利用空间中划出一块。其实现办法是:建立一个指針,称之为堆指针,始终指向堆的最低(或锻联)地点。当用户申请N个单位的存储块时,堆指针向高地点(或低地点)称动N个存储单位,而移动以前的堆指针的值就是分派给用户的占用块的初始地点。例如,某个串办理系统中有A、B、C、D这4个串,其串值长度分别為12,6,10和8.假定堆指针free的初值为零,则分派给这4个串值的存储空间的初始地点分别为0.12.18和28,如图8.12(a)和(b)所示,分派后的堆指针的值为36。因此,这种堆构造的存储管理的分派算法特别简单,释放内存空间履行内存紧缩:回收用户释放的安闲块就比较麻烦.由于系统的可利用空间始终是一个绝址连续的存储块,因此回收时必须将所.专业.专注.......释放的空间块归并到整个堆上去才能从头使用,这就是"存储策缩"的任务.往常,有两种做法:一种是一旦有用户释放存储块即进行回收紧缩,例始,图8.12(a)的堆,在c串释放存储块时即回收紧缩,例如图8.12(c)的堆,同时改正串的存储映像成图8.12(d)的状态;另一种是在程序履行过程中不回收用户随时释放的存储块,直到可利用空同不够分派或堆指针指向最高地点时才进行存储紧缩。此时紧缩的目的是将堆中所有的空间块连成一块,即将所有的占用块部集中到可利用空间的低地地域,而节余的高地点区成为一整个地继连续的安闲块,如图8.13所示,其中(a)为紧缩前的状态,(b)为紧缩后的状态·图8.13a紧缩前b紧缩后和无用单元收集近似,为实现存储紫编,首先要对占用块进行“标志”,标志算法和无用单元收集类同(存储块的.专业.专注.......构造可能不同),其次需进行下列4步雄作:(1)计算占用块的新地点。从最低地点开始巡査整个存储空间,对每一个占用块找到它在紧缩后的新地点。为此,需建立两个指针随巡逻向前移动,这两个指针分别指示占用块在紧缩以前和之后的原地点和新地点。因此,在每个占用块的第-·个存储单位中,除了建立长度域(存储该占用换的大小)和标志域(存储区别该存储块是占用块或安闲块的标志)之外,还需建立一个新地点城,以存储占用块在紧缩后应有的新地点,即成立一张新,旧地点的比较表m(2)改正用户触初始变量表,以便在存储紧缩后用户程序能持续正常运行*。(3)检查每个占用块中存储的数据,若有指向其他存储换的指针,则需作相应改正.(4)将所有占用块迁移到新地点走,这实质上是作传送数据的工作。至此,达成了存储紧缩的操作,最后,将堆指针赋以新值(即紧缩后的安闲存储区的最低地点)。.专业.专注.......可见,存储紧缩法比无用单元收集法更加复杂,前者不单要传送数据(进行占用块迁移),而且还有需要改正所有占用块中的指针值。因此,存储紧缩也是个系统操作,且非不得已就不用。覆盖和互换技术3.1覆盖技术引入覆盖(overlay)技术的目标是在较小的可用内存中运行较大的程序。这种技术常用于多道程序系统之中,与分区式存储管理配合使用。覆盖技术的原理:一个程序的几个代码段或数据段,按照时间先以后占用公共的内存空间。将程序必要部分(常用功能)的代码和数据常驻内存;可选部分(不常用功能)平时寄存在外存(覆盖文件)中,在需要时才装入内存。不存在调用关系的模块不必同时装入到内存,进而能够相互覆盖。.专业.专注.......在任何时候只在内存中保存所需的指令和数据;当需要其余指令时,它们会装入到刚才不再需要的指令所占用的内存空间;如在同一时刻,CPU只能履行B,C中某一条。B,C之间就能够做覆盖。覆盖技术的缺点是编程时必须区分程序模块和确定程序模块之间的覆盖关系,增加编程复杂度;从外存装入覆盖文件,以时间延伸换取空间节俭。覆盖的实现方式有两种:以函数库方式实现或操作系统支持。3.2互换技术互换(swapping)技术在多个程序并发履行时,能够将暂时不能履行的程序(进度)送到外存中,进而获得空.专业.专注.......闲内存空间来装入新程序(进度),或读人保存在外存中而处于就绪状态的程序。互换单位为整个进度的地点空间。互换技术常用于多道程序系统或小型分时系统中,因为这些系统大多采用分区存储管理方式。与分区式存储管理配合使用又称作“对调”或“滚进/滚出”(roll-in/roll-out)。原理:暂停履行内存中的进度,将整个进度的地点空间保存到外存的互换区中(换出swapout),而将外存中由阻塞变为就绪的进度的地点空间读入到内存中,并将该进度送到就绪行列(换入swapin)。互换技术优点之一是增加并发运行的程序数目,并给用户提供适合的响应时间;与覆盖技术相比互换技术另一个显著的优点是不影响程序构造。互换技术本身也存在着不足,比如:对调人和换出的控制增加办理器开销;程序整个地点空间都进行对调,没有考虑履行过程中地点接见的统计特性。3.3覆盖与互换比较1)与覆盖技术相比,互换不要求程序员给出程序.专业.专注.......段之间的覆盖构造。2)互换主假如在进度与作业之间进行,而覆盖则主要在同一作业或进度内进行。此外覆盖只能覆盖那些与覆盖程序段无关的程序段。4.页式和段式存储管理在前面的几种存储管理方法中,为进度分派的空间是连续的,使用的地点都是物理地点。如果允许将一个进度分别到很多不连续的空间,就能够防止内存紧缩,减少碎片。鉴于这一思想,经过引入进度的逻辑地点,把进度地点空间与实际存储空间分别,增加存储管理的灵活性。地点空间和存储空间两个基本观点的定义如下:地点空间:将源程序经过编译后获得的目标程序,存在于它所限定的地点范围内,这个范围称为地点空间。地点空间是逻辑地点的会合。存储空间:指主存中一系列存储信息的物理单元的会合,这些单元的编号称为物理地点存储空间是物理地点的集合。.专业.专注.......根据分派时所采用的基本单位不同,可将离散分派的管理方式分为以下三种:页式存储管理、段式存储管理和段页式存储管理。其中段页式存储管理是前两种联合的产物。页式存储管理4.1基来源理将程序的逻辑地点空间区分为固定大小的页(page),而物理内存区分为同样大小的页框(pageframe)。程序加载时,可将随意一页放人内存中随意一个页框,这些页框不必连续,进而实现了离散分派。该方法需要CPU的硬件支持,来实现逻辑地点和物理地点之间的映射。在页式存储管理方式中地点构造由两部组成,前一部分是页号,后一部分为页内地点w(位移量),如图4所示:.专业.专注.......页式管理方式的优点是:1)没有外碎片,每个内碎片不超过页大比前面所议论的几种管理方式的最大进步是,2)一个程序不必连续寄存。3)便于改变程序占用空间的大小(主要指随着程序运行,动向生成的数据增多,所要求的地点空间相应增长)。缺点是:要求程序全部装入内存,没有足够的内存,程序就不能履行。4.2页式管理的数据构造在页式系统中进度成即刻,操作系统为进度中所有的页分派页框。当进度撤除时收回所有分派给它的页框。在程序的运行期间,如果允许进度动向地申请空间,操作系统还要为进度申请的空间分派物理页框。操作系统为了达成这些功能,必须记录系统内存中实际的页框使用情况。操作系统还要在进度切换时,正确地切换两个不同.专业.专注.......的进度地点空间到物理内存空间的映射。这就要求操作系统要记录每个进度页表的有关信息。为了达成上述的功能,—个页式系统中,一般要采用如下的数据构造。进度页表:达成逻辑页号(本进度的地点空间)到物理页面号(实际内存空间,也叫块号)的映射。每个进度有一个页表,描绘该进度占用的物理页面及逻辑排列次序,如图:图4-1页表物理页面表:整个系统有一个物理页面表,描绘物理内存空间的分派使用状况,其数据构造可采用位示图和安闲页链表。关于位示图法,即如果该页面已被分派,则对应比特地点1,否置0..专业.专注.......图4-2页面表恳求表:整个系统有一个恳求表,描绘系统内各个进度页表的地点和大小,用于地点变换也能够联合到各进度的PCB(进度控制块)里。如图:图4-3恳求表4.3页式管理地点变换在页式系统中,指令所给出的地点分为两部分:逻辑页号和页内地点。原理:CPU中的内存管理单元(MMU)按逻辑页号经过查进度页表获得物理页框号,将物理页框号与页内地点相加形成物理地点(见图4-4)。逻辑页号,页内偏移地点->查进度页表,得物理页号->物理地点:.专业.专注.......图4-4页式管理的地点变换上述过程往常由办理器的硬件直接达成,不需要软件参与。往常,操作系统只要在进度切换时,把进度页表的首地点装入办理器特定的寄存器中即可。一般来说,页表存储在主存之中。这样办理器每接见一个在内存中的操作数,就要接见两次内存:第一次用来查找页表将操作数的逻辑地点变换为物理地点;第二次达成真实的读写操作。这样做时间上耗资严重。为缩短查找时间,能够将页表从内存装入CPU内部的关系存储器(比如,快表)中,实现按内容查找。此时的地点变换过程是:在CPU给出有效地点后,由地点变换机构自动将页号送人快表,并将此页号与快表中的所有页号进行比较,而且这种比较是同时.专业.专注.......进行的。若其中有与此相匹配的页号,表示要接见的页的页表项在快表中。于是可直接读出该页所对应的物理页号,这样就无需接见内存中的页表。由于关系存储器的接见速度比内存的接见速度快得多。段式存储管理5.1基来源理在段式存储管理中,将程序的地点空间区分为若干个段(segment),这样每个进度有一个二维的地点空间。在前面所介绍的动向分区分派方式中,系统为整个进度分派一个连续的内存空间。而在段式存储管理系统中,则为每个段分派一个连续的分区,而进度中的各个段能够不连续地寄存在内存的不同分区中。程序加载时,操作系统为所有段分派其所需内存,这些段不必连续,物理内存的管理采用动向分区的管理方法。在为某个段分派物理内存时,能够采用首先适配法、下次适配法、最正确适配法等方法。.专业.专注.......在回收某个段所占用的空间时,要注意将收回的空间与其相邻的空间归并。段式存储管理也需要硬件支持,实现逻辑地点到物理地点的映射。程序经过分段区分为多个模块,如代码段、数据段、共享段:–能够分别编写和编译–能够针对不同种类的段采取不同的保护–能够按段为单位来进行共享,包括经过动向链接进行代码共享这样做的优点是:能够分别编写和编译源程序的一个文件,并且能够针对不同种类的段采取不同的保护,也能够按段为单位来进行共享。总的来说,段式存储管理的优点是:没有内碎片,外碎片能够经过内存紧缩来除去;便于实现内存共享。缺.专业.专注.......点与页式存储管理的缺点相同,进度必须全部装入内存。5.2段式管理的数据构造为了实现段式管理,操作系统需要如下的数据结构来实现进度的地点空间到物理内存空间的映射,并追踪物理内存的使用情况,以便在装入新的段的时候,合理地分派内存空间。·进度段表:描绘组成进度地点空间的各段,能够是指向系统段表中表项的索引。每段有段基址(baseaddress),即段内地点。在系统中为每个进度成立一张段映射表,如图:·系统段表:系统所有占用段(已经分派的段)。·安闲段表:内存中所有安闲段,能够联合到系统段.专业.专注.......表中。5.3段式管理的地点变换图4—5段式管理的地点变换在段式管理系统中,整个进度的地点空间是二维的,即其逻辑地点由段号和段内地点两部分组成。为了达成进度逻辑地点到物理地点的映射,办理器会查找内存中的段表,由段号获得段的首地点,加上段内地点,获得实际的物理地点(见图4—5)。这个过程也是由办理器的硬件直接达成的,操作系统只要在进度切换时,将进度段表的首地点装入办理器的特定寄存器中间。这个寄存器一般被称作段表地点寄存器。页式和段式管理的区别页式和段式系统有很多相像之处。比方,两者都采用.专业.专注.......离散分派方式,且都经过地点映射机构来实现地点变换。但观点上两者也有好多区别,主要表现在:1)、需求:是信息的物理单位,分页是为了实现离散分派方式,以减少内存的碎片,提高内存的利用率。或许说,分页只是是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了更好地知足用户的需要。一条指令或一个操作数可能会跨越两个页的分界处,而不会跨越两个段的分界处。2)、大小:页大小固定且由系统决定,把逻辑地点区分为页号和页内地点两部分,是由机器硬件实现的。段的长度不固定,且决定于用户所编写的程序,往常由编译系统在对源程序进行编译时根据信息的性质来区分。3)、逻辑地点表示:页式系统地点空间是一维的,即单调的线性地点空间,程序员只要利用一个表记符,即可表示一个地点。分段的作业地点空间是二维的,程序员在表记一个地点时,既需给出段名,又需给出段内地点。.专业.专注.......4)、比页大,因而段表比页表短,能够缩短查找时间,提高接见速度。.专业.专注.
本文档为【操作系统内存管理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
宁静的小村落
暂无简介~
格式:doc
大小:45KB
软件:Word
页数:27
分类:
上传时间:2022-11-02
浏览量:0