操作系统原理-方敏-存储管理_第1页
操作系统原理-方敏-存储管理_第2页
操作系统原理-方敏-存储管理_第3页
操作系统原理-方敏-存储管理_第4页
操作系统原理-方敏-存储管理_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章存储管理操作系统课程组内容回顾死锁的检测永久性资源的死锁检测资源分配图死锁定理临时资源的死锁检测死锁的解除重新启动撤销进程剥夺资源进程回退2一、概述计算机的存储体系结构计算机为什么要使用存储器?

——冯•诺依曼原理为什么要进行存储管理?存储器一直以来都是较为珍贵的系统资源,需要合理使用。程序的逻辑空间和实际的物理空间不甚相同,需要进行映射。3一、概述存储结构层次访问速度频度成本容量4一、概述存储管理的目的使得用户和用户程序不涉及内存物理的细节。自动完成用户程序的装入。提高内存的利用率。解决内存速度与CPU速度不匹配的问题。实现内存共享。方便使用者,有效利用存储资源,提高系统工作效率。5一、概述存储管理的任务在现代操作系统中,存储管理的主要任务有以下几个方面:地址变换(地址再定位)存储资源的分配和回收存储共享和保护存储器扩充覆盖技术交换技术6二、地址重定位基本概念程序符号地址/名地址编译0101010010110101010101101010目标文件逻辑地址/相对地址虚拟地址/程序地址加载内存物理地址/绝对地址定义:当程序被装入内存时,程序的逻辑地址被转换成内存的物理地址,这一过程称为地址重定位(由内存管理单元(MMU)完成)。7二、地址重定位常见的地址重定位技术绝对装入(Absoluteloading)/固定地址再定位程序的地址再定位是在程序执行之前被确定的,也就是在编译连接时直接生成实际存储器地址(物理地址)。在此,程序地址空间和内存地址空间是一一对应的。优点:装入过程简单。缺点:与硬件的结构过于密切,缺乏灵活性。0101010010110101010101101010目标文件加载内存逻辑地址物理地址一一对应例如:单片机,MS-DOS中.com格式程序。8二、地址重定位可重定位装入(RelocatableLoading)即指程序装入内存时,由于程序的逻辑地址和物理地址不一致,由逻辑地址到物理地址的映射过程。分类静态再定位:指地址定位时修改程序的逻辑地址值,完成定位后,在程序的执行期间地址将不再发生变化。特点:在程序执行之前进行地址再定位。优点:无需硬件支持,容易实现。早期的操作系统中大多数都采用这种方法。缺点:必须分配连续的存储区域;执行期间不能扩充存储空间,也不能在内存中移动,内存利用率低,不便于共享。9二、地址重定位动态再定位:程序在装入内存时,不修改程序的逻辑地址值,程序在访问物理内存之前,再实时地将逻辑地址转换成物理地址。BR:基址寄存器,存放程序的起始地址VR:变址寄存器,存放需要变换的逻辑地址10二、地址重定位优点:程序在执行期间可以换入和换出内存,可以解决内存紧张状态;可以在内存中移动——把内存中的碎片集中起来,可以充分利用空间;不必给程序分配连续的内存空间,可以较好的利用较小的内存块;若干用户可以共享同一程序,实现共享。缺点:需要附加的硬件支持,实现存储管理的软件算法比较复杂。11三、分区存储管理方案存储管理方案分类从操作系统的发展历史来看,存储管理主要有以下几种方案:分区存储管理方案。要求连续分配存储空间,且程序要一次性全部装入内存。简单,但是有比较严重的内碎块和外碎块。段式存储管理方案。不要求连续分配存储空间,段和段之间可以不连续,但程序需要一次性全部装入内存。有比较严重的外碎块。页式存储管理方案。是一种不连续存储管理方案,也需要一次性全部装入内存。在逻辑地址空间和物理地址空间都采用分页的思想。缺点是每一个作业的最后一页有内碎块。12三、分区存储管理方案段页式存储管理方案。是一种不连续存储方案,段式存储管理和页式存储管理的结合。克服了纯分页和纯分段存储管理思想的缺点。交换技术和覆盖技术。虚拟存储管理方案。13三、分区存储管理方案分区存储管理:是一种连续分配存储空间的管理方式。曾被广泛地应用于1960~1970年代的操作系统中。思想:把内存分为一些大小相等或不等的分区(Partition),装入时每个应用程序占用一个或几个分区,操作系统占用其中一个分区。适用于多道程序系统和分时系统,支持多个程序并发执行。分类单一连续分区存储管理固定分区管理可变分区管理14三、分区存储管理方案单一连续分区存储管理特点:一次只能装入一个程序,程序独占整个用户区,如果程序小于用户区,则剩余的空间浪费,如果大于,则无法装入。优点:简单,适用于单用户、单任务的操作系统,不需要复杂的硬件支持。缺点:一个作业运行时要占用整个内存地址空间,对内存造成了很大的浪费,不支持大作业。15三、分区存储管理方案固定分区管理支持多道程序技术实现方法:初始化内存空间分区状态表程序A(30K)程序A已分配内碎片:指占用分区之内未被利用的空间。16三、分区存储管理方案特点:内存中同时可以容纳多道程序;程序必须连续存放,且要一次全部装入。优点:比单一连续分配方法,内存的利用率提高了;可以支持多道程序;实现简单,开销小。缺点:作业必须预先能够估计自己要占用多大的内存空间,有时候这是难以做到的;存在内碎片,造成存储空间的浪费;分区总数固定,限制了并发执行的程序数目。17三、分区存储管理方案可变分区(DynamicPartitioning)思想:预先不划分内存,当作业需要时向系统申请,系统从其中挖出一块给该作业,其大小等于作业所需内存的大小,然后将剩下的部分再作为空表块,给下一次分配使用。OSJob1Job2Job4Job3Q:如何管理这些空闲区?m_sizem_addrm_sizem_addrm_sizem_addrm_sizem_addr0…线性表格法m_sizem_addrm_sizem_addr链接法Job518三、分区存储管理方案分区分配算法最先适应算法(first-fit)分配方法:将所有的空闲分区按照地址递增的顺序排列,按照分区的先后次序,从头开始查找,符合要求的第一个分区就是要找的分区。OSJob2Job4Job5m_sizem_addrm_sizem_addrm_sizem_addr0…19三、分区存储管理方案释放方法OSJob2Job4Job5规则:相邻合并,否则插入20三、分区存储管理方案优点:分配策略简单。尽可能利用存储区低地址的空闲区,而在高地址部分保存较大的空闲区,容易满足大作业。在释放内存分区时,如果有相邻的空白区就进行合并,使其成为一个较大的空白区。缺点:查找总是从表首开始,因此前面的空闲区往往被分割得很小时,查找次数增大。会产生外碎片(指占用的分区之间难以利用的空闲分区),这些碎片散布在存储器的各处,不能集中使用,因而降低了存储器的利用率。21三、分区存储管理方案下次适应算法(next-fit,循环最先适应算法)分配方法:按分区的先后次序,从上次分配的分区起查找,到最后分区时再回到开头,符合要求的第一个分区就是找到的分区。释放方法:同于最先适应算法。优点:使空闲分区分布得更均匀,提高了分配查找的速度。缺点:较大的空闲分区不易保留。22三、分区存储管理方案最佳适应算法(best-fit)分配方法:将所有的空闲分区按照其容量递增的顺序排列,当要求分配一个空白分区时,由小到大进行查找,找到最合适的分配。释放方法:在整个链表上搜索地址相邻的空闲区,合并后,再插入到合适的位置。优点:分配后所剩余的空白块会最小,较大的空闲分区会被保留。平均,只要查找一半的表格便能找到最佳适应的空白区;如果有一个空白区的容量正好满足要求,则它必被选中。缺点:空白区一般不可能恰好满足要求,在分配之后的剩余部分通常非常小,以致小到无法使用,会形成较多外碎片。23三、分区存储管理方案最坏适应算法(worst-fit)分配方法:与最佳适应算法相反,将所有的空白分区按容量递减的的顺序排列,最前面的最大的空闲分区就是找到的分区。释放方法:同于最佳适应算法(best-fit)优点:分配的时候,只需查找一次,就可以成功,分配的算法很快。缺点:最后剩余的分区会越来越小,不会保留较大的空闲分区,无法运行大程序。24三、分区存储管理方案可再定位式分区又称浮动分区分配,是解决碎片问题的简单而有效的办法。基本思想:移动所有被分配的分区,使之成为一个连续区域,而留下一个较大的空白区。“靠拢”或“紧凑”Q:程序地址的再定位?25提出原因四、页式存储管理分区存储管理方案要求作业存储时必须连续存放OSJob1Job3Job2Job4Job5页式存储管理方案解决作业不连续存放的问题26逻辑地址空间01K2K3K4K四、页式存储管理基本原理物理地址空间0100K101K102K103K104K105K106K107K108K109KOS012345678实页/主页0123虚页:大小相同,常为2的整数幂。2031Q:如何记录和管理这种映射关系?27四、页式存储管理页面变换表(Pagemanagementtable)是一种特殊的数据结构用途:记录每一个作业的虚页号到物理内存中页号之间的映射关系。每一个作业都拥有一个自己的页面变换表。结构:0虚页号3实页号162135…………Job1Job2总页表…………起始地址长度…作业ID…SL页表控制寄存器起始地址长度28四、页式存储管理物理地址空间OS012345678逻辑地址空间0123203101K2K3K4K0100K101K102K103K104K105K106K107K108K109K虚页号实页号03162135LOADA逻辑地址…………3页号页内偏移量1001345…………3K310029四、页式存储管理地址变换过程Q:为了取出一个数据,系统需要访问内存几次?30四、页式存储管理快表由一组联想寄存器(TLB,TranslationLookasideBuffer)组成。联想寄存器:一种按内容进行并行查找的快速寄存器,访问速度比主存快得多。原理:31四、页式存储管理经常要访问的页表表项。32四、页式存储管理空闲内存页的管理位示图bitbyteQ:内存大小:256M,每页4K,位示图有多大?33四、页式存储管理优点没有外碎片,每个内碎片不超过页大小。程序不必连续存放。主要缺点:程序要一次全部装入内存才能执行。采用动态地址变换机构会增加计算机的成本和降低处理机的速度。各种数据结构(页表,空闲页表)要占用一定的内存空间,而且系统要花费一定的时间来建立和管理这些表格。依然存在内碎片。34五、段式存储管理基本思想逻辑单位内存管理采用可变分区动态分配法。段表总段表/系统段表…………起始地址长度…作业ID…35五、段式存储管理地址变换过程段表控制寄存器36五、段式存储管理优点没有内碎片,外碎片可以通过内存紧缩来消除。便于实现共享,即允许若干个进程共享一个或者多个段。37分页式管理和分段式管理的比较五、段式存储管理内容页式存储管理段式存储管理划分依据系统管理需要用户应用需要页/段大小各页面大小相同段的大小不固定逻辑地址只有一个逻辑地址空间每个段一个独立的逻辑地址空间页表/段表页面较多,页表较长,查找费时段较少,段表较短,查找速度快碎片存在内碎片存在外碎片内存共享不支持支持存储扩充不支持不支持38六、段页式存储管理思想:逻辑地址空间物理地址空间...03K...0...5K03K逻辑地址格式?39六、段页式存储管理40六、段页式存储管理地址变换过程Q:为了获得一条指令或者数据,需要访问内存几次?41七、内存扩充技术提出原因在基本的存储管理系统中,当一个作业的程序地址空间大于内存可以使用的空间时,该作业就不能装入运行,并发运行进程数受到了内存空间的限制。内存扩充技术就是借助大容量的辅存在逻辑上实现内存的扩充,来解决内存容量不足的问题。42程序(190K)七、内存扩充技术覆盖技术(Overlay)目标:在较小的可用内存中运行较大的程序。原理A(20K)B(50K)C(30K)D(20K)E(40K)F(30K)覆盖段43七、内存扩充技术覆盖技术的优缺点优点有效利用内存空间,提高系统的并发性。缺点覆盖结构需要程序员在程序编写的时候精心安排,并用覆盖描述语言描述,增加编程复杂度;从外存装入覆盖文件,是以时间延长来换取空间节省的;覆盖区仍然存在着碎片。44内存七、内存扩充技术交换技术(swapping)最早应用于MIT开发的CTSS中。原理外存Job2Job3Job1Job445七、内存扩充技术交换技术的优缺点优点:增加并发运行的程序数目可以提供优先级服务缺点:对换入和换出的控制增加处理机开销;程序换入时的重定位问题。交换技术和覆盖技术的区别内容覆盖技术交换技术适用情况作业内部作业之间对程序结构的影响有无46八、虚拟存储技术虚拟存储技术也是一种存储扩充技术。基础程序中不是每一条指令都会在程序的一次运行过程中执行到。错误处理子程序条件语句(if...else...)程序中有的指令可能只执行一次程序的初始化部分程序执行的局部性原理:在一段时间内,作业一般不会执行到所有程序的指令,也不会存取绝大部分数据,执行的代码和要存取的数据往往集中在某些区域中(例如一个循环、一个数组)。47八、虚拟存储技术原理:在程序装入时,不必一次将其全部读入到内存,而只需将当前需要执行的某些区域读入到内存,然后程序开始执行。在程序执行过程中,如果需执行的指令或访问的数据尚未在内存,则由处理器通知操作系统将相应的区域调入内存,然后继续执行。带来的好处程序的大小可以突破内存容量限制,使得用户感觉到系统好像提供了一个容量极大的“主存”。内存中容纳更多程序并发执行。48八、虚拟存储技术虚拟存储技术分类虚拟页式存储管理纯页式管理+请求调页虚拟段式存储管理纯段式管理+请求调段虚拟段页式存储管理虚拟页式管理+虚拟段式管理49逻辑地址空间物理地址空间九、虚拟页式存储技术工作原理012345678...…012CPUOS缺页中断缺页中断处理子程序3页表Q:当内存中没有空闲页面时,如果还要调入一个新页,如何处理?50九、虚拟页式存储技术页面淘汰算法页面置换算法决定在需要调入页面时,选择内存中哪个物理页面被置换。出发点:希望把未来不再使用的或者短时期内较少使用的页面调出。常见的页面淘汰算法51九、虚拟页式存储技术最佳算法(OPT)思想:选择从当前时刻开始以后不在使用的页面淘汰,如果没有这类页,则选择离当前页最远位置上出现的页面淘汰。优点:使得页面调入调出的次数达到最小,这是一种理想情况。缺点:实际上无法实现,因为系统无法预知未来页面的访问情况。因此只能用作理论上性能评价的标准。52九、虚拟页式存储技术先进先出页面淘汰算法(FIFO)思想:选择最早调入内存的页面淘汰。出发点:近期调入的页面被再次访问的概率要大于早期调入的页面。问题:事实上并非所有的时候都这样。此时FIFO算法的性能较差。举例:53九、虚拟页式存储技术设页面走向为P=4,3,2,1,4,3,5,4,3,2,1,5,主存容量M=3,采用FIFO进行页面淘汰。缺页中断次数F=9,而缺页率f=9/12=75%54九、虚拟页式存储技术Belady现象:可用页面增大,缺页率反而升高的现象。原因:FIFO算法的置换特征与进程访问内存的动态特征是矛盾的,即被置换的页面并不是进程不会访问的。主存容量M=4缺页中断次数F=10,而缺页率f=9/12=83%55九、虚拟页式存储技术最近最少使用页面淘汰算法(LRU,LeastRecentlyUsed)思想:每次选择内存中离当前时刻最久未使用过的页面淘汰。根据:局部性原理。实现方法硬件方法:一个特殊的栈:把被访问的页面移到栈顶,于是栈底的是最久未使用页面。每个页面设立移位寄存器:被访问时左边最高位置1,定期右移并且最高位补0,于是寄存器数值最小的是最久未使用页面。56九、虚拟页式存储技术软件方法增加系统开销57九、虚拟页式存储技术算法举例 设页面走向为P=4,3,2,1,4,3,5,4,3,2,1,5,主存容量M=3,采用LRU算法进行页面淘汰。缺页中断次数F=10,缺页率f=10/12=83%58九、虚拟页式存储技术主存容量M=4缺页中断次数F=8,缺页率f=8/12=67%结论:LRU算法不会出现Belady现象。59九、虚拟页式存储技术LRU算法的优缺点优点不会出现Belady现象性能较好,接近OPT算法缺点算法效率不高需要对整个页表频繁进行维护。比较是算法的基本操作,当页面较多时会消耗大量时间。60九、虚拟页式存储技术最近未使用页面淘汰算法(NRU,NotRecentlyUsed)第二次机会淘汰算法(SCR)页面缓冲算法(PageBuffering)61九、虚拟页式存储技

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论