存储管理 第四节.ppt

  1. 1、本文档共150页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 存储管理 学习重点和难点: 1 存储管理的基本概念 2 各种存储管理的基本思想、实现方法和技术 3 地址空间和物理空间的区别 4 虚拟存储器的概念和方法 5 请求分页 几种分配算法的比较: 从搜索速度上看,FF具有最佳性能。 从回收过程上看,FF具有最佳性能。 BF找到的空闲区是最佳的,但在某些情况下,不一定能提高内存的利用率。 WF是基于不留下碎片空闲区为出发点,选择最大的空闲区来满足用户的需求,以期分配后剩余的部分仍能再分配。 系统回收分区的主要步骤:1 检查回收分区是否与空闲区邻接,如邻接则加以合并;2 修改说明表 (邻接情况有四种) 释放区邻接的分区情况可能是:释放区邻接的是另一进程的已分配区,或者是空闲区。 下面以最先适应算法说明了系统回收该进程占用区存在的四种可能情况。设进程的释放区为R,与R相近的两个空闲区分别为F1和F2。R的首地址送LOC,R的尾地址送LOC1,R的大小送SIZE。 (a)若释放区R与F1相邻接,即其低地址部分邻接一空闲区。将R与F1合并,合并后的空闲区仍记为F1。 如何判断释放区R 是否与某个空闲区相邻接呢?只要从链首开始查找即可:若F1的首地址+F1的大小=R的首地址,说明R与F1相邻接。只要修改F1的大小= F1的大小+ SIZE ,其它参数不变和在链中的位置不变。 (b)若释放区R与F2相邻接,即其高地址部分邻接一空闲区。将R与F2合并,合并后的空闲区记仍记为F2。 判断释放区R 是否与F2空闲区相邻,只要从链首开始查找。 若LOC+SIZE=F2的首地址,说明R与F2相邻接。需修改F2的首地址=LOC,F2的大小= F2的大小+SIZE。 碎片(零头),就是不能分配给用户进程的、无效的空闲内存空间。碎片分内碎片和外碎片。解决碎片的方法有动态地址重定位和分页存储两种。 可重定位分区算法与可变式分区算法的差别在于需要将空闲区进行拼接,以减少碎片,提高存储器的利用率。 进行拼接的时机选择(分区回收和找不到足够大空闲区) 分区的存储保护:界限寄存器和存储保护键。 4.3 覆盖与交换技术 上面介绍的单一连续区和分区管理对作业大小都有严格的限制。当作业要求运行时,系统将作业的全部信息一次装入主存,并一直驻留主存直至运行结束。当作业的大小大于主存可用空间时,该作业就无法运行。这些管理方案限制了在计算机系统上开发较大程序的可能。覆盖与交换是解决大作业与小主存矛盾的两种存贮管理技术,它们实质上是对主存进行了逻辑扩充。 一、 覆盖(overlay) 所谓覆盖,是指同一主存区可以被不同的程序段重复使用。通常一个作业由若干个功能上相互独立的程序段组成,作业在一次运行时,也只用到其中的几段,利用这样一个事实,我们就可以让那些不会同时执行的程序段共用同一个主存区。因此,我们把可以相互覆盖的程序段叫做覆盖。而把可共享的主存区叫做覆盖区。 为此,我们把程序执行时并不要求同时装入主存的覆盖组成一组,叫覆盖段,并分配同一个主存区。这样,覆盖段与覆盖区一一对立。 覆盖的基本原理可用图5.13例子说明。作业J由六段组成。图中的(a)给出了各段之间的逻辑调用关系。 主程序(30k) 由图中的调用关系不难看出,主程序是一个独立的段,它调用子1和子2,且子1与子2是互斥被调用的两个段,在子1执行过程中,它调用子11,而子2执行过程中它又调用子21和子22,显然子21和子22也是互斥被调用的。因此我们可以为作业J建立如图中(b)所示的覆盖结构:主程序段是作业J的常驻主存段,其余部分组成覆盖段。 根据上述分析,子1和子2组成覆盖段0,子11、子21和子22组成覆盖段1,为了实现真正覆盖,相应的覆盖区大小应为每个覆盖段中最大覆盖的大小,于是形成图中(b)所示的主存分配。 为了实现覆盖管理,系统必须提供相应的覆盖管理控制程序。当作业装入运行时,由系统根据用户提供的覆盖结构进行覆盖处理。当程序中引用当前尚未装入覆盖区的覆盖中的例程时,则调用覆盖管理控制程序,请求将所需的覆盖装入覆盖区中,系统响应请求,并自动将所需覆盖装入主存覆盖区中。 覆盖技术的关键是提供正确的覆盖结构。通常,一个作业的覆盖结构要求编程人员事先给出。对于一个规模较大或比较复杂的程序来说是难以分析和建立它的覆盖结构的。因此,通常覆盖技术主要用于系统程序的主存管理上。例如,磁盘操作系统分为两部分,一部分是操作系统中经常用到的基本部分,它们常驻主存且占有固定区域。 另一部分是不经常用的部分,它们放在磁盘上,当调用时才被装入主存覆盖区中运行。 覆盖技术的主要特点是打破了必须将一个作业的全部信息装入主存后才能运行的限制。在一定程度上解决了小主存运行大作业的矛盾。 二、 交换 交换技术被

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档