[工学]第五章存储.ppt

  1. 1、本文档共100页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第五章存储

第五章 存储管理 学习重点和难点: 1 存储管理的基本概念 2 各种存储管理的基本思想、实现方法和技术 3 地址空间和物理空间的区别 4 虚拟存储器的概念和方法 5 请求分页 程序的装入和链接 程序的装入 将一个模块装入内存时,可采用三种方式: 绝对装入方式: 可重定位方式 动态运行时装入方式 七、存储器管理方式 1 连续分配方式:指为一个系统或用户程序分配一个连续的空间,主要有: a.单一连续区管理方式; b.分区管理方式,是一种可用于多道程序的一种较简单的存储管理方式,又分固定分区方式和可变分区方式。 2 离散分配方式:为了减少因连续分配所产生的碎片,提高内存的利用率产生了离散分配方式,它可将一个用户程序离散地分配到内存中的多个不相连接的区域中。其方式有: a.分页存储管理方式; b.分段存储管理方式; c.段页式存储管理方式。 虚拟存储管理方式:为了满足用户对内存的需要,进一步提高内存利用率,又形成了一种虚拟存储管理方式。其方式有: a.请求分页管理方式 ; b.请求分段管理方式; c.请求段页式管理方式。 几种分配算法的比较: 从有哪些信誉好的足球投注网站速度上看,FF具有最佳性能。 FF的另一个可重定位分区算法与可变式分区算法的差别在于需要将空闲区进行拼接,以减少碎片,提高存储器的利用率。 BF找到的空闲区是最佳的,但在某些情况下,不一定能提高内存的利用率。 WF是基于不留下碎片空闲区为出发点,选择最大的空闲区来满足用户的需求,以期分配后剩余的部分仍能再分配。 系统回收分区的主要步骤:1 检查回收分区是否与空闲区邻接,如邻接则加以合并;2 修改说明表 (邻接情况有四种,见课本P114) 释放区邻接的分区情况可能是:释放区邻接的是另一进程的已分配区,或者是空闲区。 下面以首次适应法说明了系统回收该进程占用区存在的四种可能情况。设进程的释放区为R,与R相邻的两个空闲区分别为F1和F2。R的首地址送LOC,R的尾地址送LOC1,R的大小送SIZE。 (a)若释放区R与F1相邻接,即其低地址部分邻接一空闲区。将R与F1合并,合并后的空闲区仍记为F1。 如何判断释放区R 是否与某个空闲区相邻呢?只要从链首开始查找即可:若F1的首地址+F1的大小=R的首地址,说明R与F1相邻接。只要修改F1的大小= F1的大小+LOC,其它参数不变和在链中的位置不变。 (b)若释放区R与F2相邻接,即其高地址部分邻接一空闲区。将R与F2合并,合并后的空闲区记仍记为F2。 判断释放区R 是否与F2空闲区相邻,只要从链首开始查找。 若LOC+SIZE=F2的首地址,说明R与F2相邻接。需修改F2的首地址=LOC,F2的大小= F2的大小+SIZE。 碎片(零头),就是不能分配给用户进程的、无效的空闲内存空间。碎片分内碎片和外碎片。解决碎片的方法有动态地址重定位和分页存储两种。 可重定位分区算法与可变式分区算法的差别在于需要将空闲区进行拼接,以减少碎片,提高存储器的利用率。 进行拼接的时机选择 分区的存储保护:界限寄存器和存储保护键。 5.3 覆盖与交换技术 上面介绍的单一连续区和分区管理对作业大小都有严格的限制。当作业要求运行时,系统将作业的全部信息一次装入主存,并一直驻留主存直至运行结束。当作业的大小大于主存可用空间时,该作业就无法运行。这些管理方案限制了在计算机系统上开发较大程序的可能。覆盖与交换是解决大作业与小主存矛盾的两种存贮管理技术,它们实质上是对主存进行了逻辑扩充。 一、 覆盖(overlay) 所谓覆盖,是指同一主存区可以被不同的程序段重复使用。通常一个作业由若干个功能上相互独立的程序段组成,作业在一次运行时,也只用到其中的几段,利用这样一个事实,我们就可以让那些不会同时执行的程序段共用同一个主存区。因此,我们把可以相互覆盖的程序段叫做覆盖。而把可共享的主存区叫做覆盖区。 为此,我们把程序执行时并不要求同时装入主存的覆盖组成一组,叫覆盖段,并分配同一个主存区。这样,覆盖段与覆盖区一一对立。 覆盖的基本原理可用图4.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,为了实现真正覆盖,相应的覆盖区大小应为每个覆盖

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档