【正确答案】正确答案:因为512=29,可利用空间表的初始状态图如(1)所示。当用户申请大小为23的内存块时,因2
4
<23≤2
5
,但没有大小为2
5
的块,只有大小为2
9
的块,故将2
9
的块分裂成两个大小为2
8
的块,其中大小为2
8
的一块挂到可利用空间表上,另一块再分裂成两个大小为2
7
的块。又将其中大小为2
7
的一块挂到可利用空间表上,另一块再分裂成两个大小为2
6
的块,一块2
6
的块挂到可利用空间表上,另一块分裂成两个大小为2
5
的块,其中一块挂到可利用空间表上,另一块分给用户(地址0~31)。如此下去,最后每个用户得到的存储空间的起始地址如图(2)所示,6个用户分配所需要的存储空间后,可利用空间表的状态如图(3)所示。在回收时,因为给申请45的用户分配了2
6
,其伙伴地址是0,在占用中,不能合并,只能挂到可利用空间表上。在回收大小为52的占用块时,其伙伴地址是192,也在占用。回收大小为11的占用块时,其伙伴地址是48,可以合并为大小为2
5
的块,挂到可利用空间表上。回收3个占用块之后可利用空间表的状态如图(4)所示。
