1 / 4
文档名称:

第8章 动态存储管理.doc

格式:doc   页数:4
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第8章 动态存储管理.doc

上传人:szh187166 2013/1/9 文件大小:0 KB

下载得到文件列表

第8章 动态存储管理.doc

文档介绍

文档介绍:第8章动态存储结构

  在伙伴系统中的伙伴是指任意两块大小相同、位置相邻的内存块。这种说法对吗?
【解答】不对。只有同一内存块分裂的两块才互称伙伴。
 
,前者容易增加闲置空间的碎片。这种说法对吗?
【解答】对。
 
,对用户的存储空间需求,一般有哪三种分配策略?
【解答】
首次拟合法;从链表头指针开始查找,找到第一个大于等于所需空间的结点即分配。
最佳拟合法:链表结点大小增序排列,找到第一个大于等于所需空间的结点即分配。
最差拟合法:链表结点大小逆序排列,总从第一个结点开始分配,将分配后结点所剩空间插入到链表适当位置。
首次拟合法适合事先不知道请求分配和释放信息的情况,分配时需查询,释放时插在表头。最佳拟合法适用于请求分配内存大小范围较宽的系统,释放时容易产生存储量很小难以利用的内存碎片,同时保留那些很大的内存块以备将来可能发生的大内存量的需求,分配与回收均需查询。最差拟合法适合请求分配内存大小范围较窄的系统,分配时不查询,回收时查询,以便插入适当位置。
 
**********,长度为4(十进制)的块的伙伴地址是多少?
【解答】0**********
 
(1664)10大小为(128)10的存储块的伙伴地址是什么?
地址为(2816)10大小为(64)10的存储块的伙伴地址是什么?
【解答】
(1)buddy(1664,7)=1664-128=1536
(2)buddy(2816,6)=2816+64=2880
 
试叙述动态存储分配伙伴系统的基本思想,它和边界标识法不同点是什么?
【解答】动态存储分配伙伴系统的基本思想是:在伙伴系统中,无论占用块或空闲块,其大小均为2的k(k为≥0的正整数)次幂。若内存容量为2m,则空闲块大小只能是20,21,22,…,2m。由同一大块分裂而得的两个小块互称“伙伴空间
”,如内存大小为210的块分裂成两个大小为29的块。只有两个“伙伴空间”才能合并成一个大空间。
起始地址为p,大小为2k的内存块,其伙伴的起始地址为:
边界标识法在每块的首尾均有“占用”/“空闲”标志,空闲块合并方便。伙伴系统算法简单,速度快,但只有互为伙伴的两个空闲块才可合并,因而易产生虽空闲但不能归并的碎片。
 
,假设先后有6个用户申请大小分别为23,45,52,100,11和19的存储空间,然后再顺序释放大小为45,52,11的占用块。假设以伙伴系统实现动态存储管理。
(1) 画出可利用空间表的初始状态。
(2) 画出为6个用户分配所需要的存储空间后可利用空间表的状态以及每个用户所得到的存储块的起始地址。
(3) 画出在回收3个占用块之后可利用空间表的状态。
【解答】因为512=29,可利用空间表的初始状态图如8-1所示。
当用户申请大小为23的内存块时,因24<23<=25,但没有大小为25的块,只有大小为29的块,故将29的块分裂成两个大小为28的块,其中大小为28的一块挂到可利用空间表上,另一块再分裂成两个大小为27的块。又将其中大小为27的一块挂到可利用空间表上,另一块再分裂成两个大小为