第七章 动态存储管理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 动态存储管理 1.动态存储的概念 1)存储管理的定义 存储管理—每一种数据结构都必须研究该结构的存储结构,但它是借助于某一高级语言中的变量说明来加以描述的,并没有涉及到具体的存储分配。实际上,结构中的每个数据元素都占有一定的内存位置,在程序执行的过程中,数据元素的存取是通过对应的存储单元来进行的。研究数据存储与内存单元对应问题,就是存储管理问题。 2)动态存储管理的基本问题 ①系统如何应用户要求提出的“请求”分配内存? ②系统如何收回被用户“释放”的内存,以备新的“请求”产生时重新进行分配? 3)名词 ①占用块:将系统已分配给用户使用的地址连续的内存区域为“占用块”; ②空闲块:称未曾分配的地址连续的内存区为“空闲块”。 ③可利用空间表:内存空间的所有可利用的空闲空间的情况记录表。 有两种结构: 目录表: 1000 15000 空闲 31000 8000 空闲 59000 41000 空闲 链表: 2.可利用空间表及分配策略 1)可利用空间表 ①将所有内存空闲块用链表连接而成; ②空闲块的大小可以是全相同的,也可以是分成若干固定大小的,还可以是随机大小的。 2)分配策略 ①首次拟合法 分配找到的第一个不小于n的空闲块的一部分; 操作方便,查找快捷。 ②最佳拟合法 分配不小于n且最接近n的空闲块的一部分; 尽可能将大的空闲块留给大程序使用。 ③最差拟合法 分配不小于n且是最大的空闲块的一部分; 尽可能减少分配后无用碎片。 1. 动态存储管理系统中,通常可有( )种不同的分配策略。【长沙铁道学院】 A. 1 B. 2 C. 3 D. 4 E. 5 C 2. )【东南大学】【中山大学】 2.正确 3.边界标识法 边界标识法是操作系统中用以进行动态分配的存储管理方法,系统将所有的空闲块链接在一个双重链循环链表结构的可利用空间表中。 1)可利用空间表的结构 2)分配算法 ①将所有的空闲块链接在一个双重循环链表结构的可利用空间表中; ②分配可按首次拟合法或最佳拟合法进行; ③为避免过多碎片,设一常量e (m-n)( e将大小为m的块全部分出 e分出n大小,剩余留下 3)回收算法 一旦用户释放占用块,系统需立即回收以备新的请求产生时进行再分配。为了使物理地址毗邻的空闲块结合成尽可能大的结点,则首先需检查刚释放的占用块的左、右紧邻是否为空闲块。可能情况有以下四种: 若释放块的左、右邻区均为占用块,则只需将此新的空闲块作为一个结点插入到可利用空间表中即可; 若左邻区是空闲块,而右邻区为占用区,则应与左邻区合并成一个结点; 若右邻区是空闲块,而左邻区为占用区,则应与右邻区合并成一个结点; 若左、右邻区都是空闲块,则三块合并为一个结点。 4.伙伴系统(buddy system) 伙伴系统是操作系统中用到的另一种动态存储管理方法。它和边界标识方法类似。所不同的是,在伙伴系统中,无论是占用块或空闲块,其大小均为2的k次幂(k为正整数)。 1)可利用空间表的结构 2)分配算法 当用户提出大小为n 的内存请求时,首先在可利用表上寻找结点大小与n相匹配的子表,若此子表非空,则将子表中任意一个结点分配之即可;若此子表为空,则需从结点更大的非空子表中去查找,直到找到一个空闲块,则将其中的一部分分配给用户,而将乘余部分插入相应的子表中。 3)回收算法 伙伴块——在分配时经常需要将一个大的空闲块分裂成两个大小不等的存储区,这两个由同一大块分裂出为的小块就称为“互为伙伴”。 在伙伴系统中回收空闲块时,只有当其伙伴为空闲块时才归并成大块。 由此,在回收空闲块时,应首先判别其伙伴是否为空闲块,若不是,则只需要将释放的空闲块简单插入在相应的子表上即可;若是,则需在相应子表中找到其伙伴并删除之,然后再判别合并后的空闲块的伙伴是否是空闲块,如此反复,直到归并所得空闲块的伙伴不是空闲块时,再插入相应子表中去。 1. )【北京邮电大学】 1.错误 1.起始地址为480,大小为8的块,其伙伴块的起始地址是_______;若块大小为32,则其伙

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档