- 論壇徽章:
- 0
|
假設(shè)內(nèi)存信息排序后如下:
1111111111111
22222222
333
即change point數(shù)組如下:
1SA|2SA|3SA|3EA|2EA|1EA
那么處理內(nèi)存覆蓋函數(shù)的流程如下:
循環(huán)1:
1SA加入 overlap_list:即overlap_list==1SA
current type = 1
新建一個(gè)內(nèi)存段,并設(shè)置(開(kāi)始地址為0,類(lèi)型為1)
循環(huán)2:
2SA加入 overlap_list:即overlap_list==1SA,2SA
current type=2
設(shè)置上一個(gè)內(nèi)存段的大小為2===>bios[0]=(開(kāi)始地址0,大小2,類(lèi)型1)
新建一個(gè)內(nèi)存段,并設(shè)置(開(kāi)始地址為2,類(lèi)型為2)
循環(huán)3:
3SA加入overlap_list:即overlap_list==1SA,2SA,3SA
current type=3
設(shè)置上一個(gè)內(nèi)存段的大小為1
新建一個(gè)內(nèi)存段,并設(shè)置(開(kāi)始地址為3,類(lèi)型為3)====>bios[1]=(開(kāi)始地址2,大小1,類(lèi)型2)
循環(huán)4:
類(lèi)存類(lèi)型為3的從overlap_list中刪除:即overlap_list==1SA,2SA
current type=2
設(shè)置上一個(gè)內(nèi)存段的大小為3====>bios[2]=(開(kāi)始地址3,大小3,類(lèi)型2)
新建一個(gè)內(nèi)存段,并設(shè)置(開(kāi)始地址為6,類(lèi)型為2)
循環(huán)5:
類(lèi)存類(lèi)型為2的從overlap_list中刪除:即overlap_list==1SA
current type=1
設(shè)置上一個(gè)內(nèi)存段的大小為4====>bios[3]=(開(kāi)始地址6,大小4,類(lèi)型2)
新建一個(gè)內(nèi)存段,并設(shè)置(開(kāi)始地址為10,類(lèi)型為1)
循環(huán)6:
類(lèi)存類(lèi)型為1的從overlap_list中刪除:即overlap_list==NULL
current type=0
設(shè)置上一個(gè)內(nèi)存段的大小為3====>bios[4]=(開(kāi)始地址10,大小3,類(lèi)型1)
所以?xún)?nèi)存覆蓋處理后的結(jié)果為:
1 111
2 2222
333 |
|