《计算机操作系统-存储器管理》.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 存储器管理; 存储器是计算机系统的重要组成部分之一。对存储器加以有效管理,不仅直接影响存储器的利用率,而且对系统性能有重大影响。内存管理的主要对象是内存,对外存的管理在文件管理中。;存储器的层次结构;存储器的层次结构;第四章 存储器管理;本章重点难点;4.1 程序的装入和链接;4.1 程序的装入和链接;4.1 程序的装入和链接;4.1 程序的装入和链接;4.1 程序的装入和链接;4.1 程序的装入和链接;4.1 程序的装入和链接;4.1 程序的装入和链接;1. 静态链接方式:事先进行链接,以后不再拆开;4.1.2 程序的链接;3. 运行时动态链接: 运行时动态链接是将对某些模块的链接推迟到执行时才执行,即在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。 凡执行过程中未被用到的目标模块,不会调入内存和链接,这样不仅加快程序的装入过程,而且节省大量的内存空间。;第四章 存储器管理;4.2 连续分配方式;4.2 连续分配方式;4.2.1 单一连续分配方式;4.2 连续分配方式;4.2.2 固定分区分配;3. 实现 为便于内存分配,通常将分区按大小进行排队,并为之建立一张分区使用表,其中各表项包括每个分区的起始地址、大小及状态(是否已分配)。 当有一用户程序要装入时,由内存分配程序检索该表,从中找出一个能满足要求的、尚未分配的分区,将之分配给该程序,然后将该表项中的状态置为“已分配”;若未找到大小足够的分区,则拒绝为该用户程序分配内存。;4.2 连续分配方式;4.2.3 动态分区分配;1) 分区分配中的数据结构 (1)空闲分区表示 空闲分区表:记录每个空闲分区的情况。每个空闲分区占一个表目。 空闲分区链:在每个分区的起始部分,设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针;在分区尾部则设置一后向指针,将所有的空闲分区链接成一个双向链。;作业号 大小 起址 1 32k 20k 2 64k 52k 4 96K 164K (C)已占分区表;2)分区分配算法 为把一个新作业装入内存,需按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业。 常用的分配算法: (1) 首次适应算法FF (2) 循环首次适应算法 (3) 最佳适应算法;(1) 首次适应算法FF FF算法要求空闲分区表以地址递增的次序排列。在分配内存时,从表首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止;然后按照作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲分区表中。若从头到尾不存在满足要求的分区,则分配失败。 优点:优先利用内存低址部分的内存空间,保留了高址部分的大空闲区。 缺点:低址部分不断划分,产生小碎片(内存碎块、内存碎片、零头);每次查找从低址部分开始,增加了查找的开销;(2) 循环首次适应算法 在分配内存空间时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。 为实现算法,需要: 设置一起始查寻指针 采用循环查找方式 优点:使内存空闲分区分布均匀,减少查找的开销 缺点:缺乏大的空闲分区;(3) 最佳适应算法 所谓“最佳”是指每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。 要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。 缺点:产生许多难以利用的小空闲区;3)分区分配及回收操作 分配内存 利用某种分配算法,从空闲分区链(表)中找到所需大小的分区。设请求的分区大小为u.size,表中每个空闲分区的大小表示为m.size,若m.size- u.size?size(规定的不再切割的分区大小),将整个分区分配给请求者,否则从分区中按请求的大小划出一块内存空间分配出去,余下部分留在空闲链中,将分配区首址返回给调用者。 ;4.2.3 动态分区分配;4.2 连续分配方式;4.2.4 可重定位分区分配; 解决方法:将内存中的所有作业进行移动,使它们全部邻接,这样可把原来分散的小分区拼接成大分区,这种方法称为“拼接”或“紧凑”。 缺点:用户程序在内存中的地址发生变化,必须重定位。;2. 动态重定位的实现 在动态运行时装入的方式,将相对地址转换为物理地址的工作在程序指令真正要执行时才进行。地址转换需要重定位寄存器的支持。程序执行时访问的内存地址是相对地址与重定位寄存器中的地址相加而成。;3

文档评论(0)

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

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

1亿VIP精品文档

相关文档