- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第八章动态存储管理
一、选择题
1.动态存储管理系统中,通常可有( )种不同的分配策略。【长沙铁道学院1998三、
3(2分)】
A.1 B. 2 C. 3 D. 4 E. 5
二、判断题
在伙伴系统中的伙伴是指任意两块大小相同、位置相邻的内存块。( )
【北京邮电大学2000一、8(1分)】
在动态存储管理系统中做空间分配时,最佳适配法与最先适配法相比,前者容易增加闲置空间的碎片。( )【东南大学2001一、1-1(1分)】【中山大学1994 一、1(2分)】
三、填空题
1.起始地址为480,大小为8的块,其伙伴块的起始地址是 ;若块大小为32,则其伙伴块的起始地址为 。【北方交通大学1999二、1(4分)】
2.二进制地址为011011110000,大小为(4)10和(16)10块的伙伴地址分别为: 、
。
【上海大学2002二、2(2分)】
3.无用单元是指 ,例 【北方交通大学1999二、6(4分)】
四、应用题
伙伴空间(名词解释)【西北工业大学1999一、4(3分)】
设内存中可利用空间已连成一个单链表,对用户的存储空间需求,一般有哪三种分配策略?
【北京科技大学1999一、6(2分)】
计算起始二进制地址为011011110000,长度为4(十进制)的块的伙伴地址是多少?
【中山大学1999一、2(3分)】
在一个伙伴系统中,已知某存储块的始址X=(011011110000)2,大小为24,则它的伙伴块的始址是多少?【北方交通大学1996一、1(5分)】
地址为(1664)10大小为(128)10的存储块的伙伴地址是什么?
地址为(2816)10大小为(64)10的存储块的伙伴地址是什么?【清华大学1996四、】
试叙述动态存储分配伙伴系统的基本思想,它和边界标识法不同点是什么?
【青岛大学2000十、(10分)】【中国人民大学2000一、1(4分)】
组织成循环链表的可利用空间表附加什么条件时,首次适配策略就转变为最佳适配策略?
【北方交通大学1998四、(8分)】
已知一个大小为512个字长的存储,假设先后有6个用户申请大小分别为23,45,52,
100,11和19的存储空间,然后再顺序释放大小为45,52,11的占用块。假设以伙伴系统实现动态存储管理。
画出可利用空间表的初始状态。
画出为6个用户分配所需要的存储空间后可利用空间表的状态以及每个用户所得到的存储块的起始地址。
画出在回收3个占用块之后可利用空间表的状态。【清华大学1998三(15分)】【同济
大学1999】
...26 ?272829 ?256896512下图所示的伙伴系统中,回收两块首地址分别为768
...
26 ?
27
28
29 ?
256
896
512
假设利用边界标识法,并以首次拟合策略分配,已知在某个时刻可利用空间表的状态如下图所示:
(注:存储块头部size域的值和申请分配的存储量均包括头部和尾部的存储空间。)请画出:
当系统回收一个起始地址为559,大小为45的空闲块之后的链表状态;
系统继而在接受存储块大小为100的请求后,又回收一个起始地址为515,大小为44的空闲块之后的链表状态。【上海大学2002二、3(8分)】
pav
pav
802
213
462
604
0 56 0117
0
0
053
0
0122
0
第10题图:可利用空间表的状态图
第八章动态存储管理
一.选择题 1C
二.判断题1.错误 2.正确三.填空题
1.(1)480+8=488(480%23+1=0) (2)480-32=448
2.(1)011011110100 (2)011011100000
3.用户不再使用而系统没有回收的结构和变量。例如,p=malloc(size);?,p=null;四.应用题
在伙伴系统中,无论占用块或空闲块,其大小均为2的k(k为≥0的正整数)次幂。若内存容量为2m,则空闲块大小只能是20,21,22,?,2m。由同一大块分裂而得的两个小块互称“伙伴空间”,如内存大小为210的块分裂成两个大小为29的块。只有两个“伙伴空间”才能合并成一个大空间。
起始地址为p,大小为2k的内存块,其伙伴的起始地址为:
buddy(p,k)=p+2k
(若p%2k+1=0),或buddy(p,k)=p-2k
(若p%2k+1=2k)
首次拟合法;从链表头指针开始查找,找到第一个≥所需空间的结点即分配。最佳拟合法:链表结点大小增序排列,找到第一个≥所需空间的结点即分配。
最差
文档评论(0)