储空间的起始地址如图826个用户分配所需要的存储空间后可利用空间表的状态如图83。6在回收时因为给申请45的用户分配了2其伙伴地址是0在占用中不能合并只能挂到可利用空间表上。在回收大小为52的占用块时其伙伴地址是192也在占用。回收大小5为11的占用块时其伙伴地址是48可以合并为大小2的块挂到可利用空间表上。回收3个占用块之后可利用空间表的状态如图84。
20Λ21Λ22Λ23Λ24Λ25Λ26Λ
1
f存储大小2345521001119
起始地址06412825632192
图82图81(注:在图83和84画上了占用块,从原理上,只有空闲块才出现在“可利用空间表”中。)
20Λ21Λ22Λ23Λ22
4
2022
1234
ΛΛΛΛΛ
151505
14
04
22
5
15
15
05
2526
05
06
06
07
26
16
16
27
17
2728Λ
17
07
2
8
Λ
图83图847179.因为76820,所以768和7682896互为伙伴伙伴合并后首址为768块大小881888为2。因为76822所以所以首址768大小为2的块和首址512大小为2的块合并97177成为首址512大小为2的空闲块。因为12822,其伙伴地址为12820将其插入可利用空间表中。回收后该伙伴系统的状态图如下。
26Λ27282
9
128
256
512Λ
10.(1)系统回收一个起始地址为559,大小为45的空闲块后,因右侧起始地址604为空闲块,应与之合并。合并后,起始地址为559,大小为167的空闲块。链表状态如图10.(1)
所示。
pav802056021301170462053055901670
2
f10.(1)
(2)系统在接受存储块大小为100的请求后,将大小为117的空闲块分出100给予用户。在回收一个起始地址为515,大小为44的空闲块之后,因左侧起始地址462大小53和右侧起始地址559大小167均为空闲块,应与之合并。合并后,起始地址为462,大小为264的空闲块。链表状态如图10.(2)所示。
pav
10.(2)
8020560
2130170
46202640
3
fr