我所采用的內(nèi)存管理思想是鏈表管理思想,內(nèi)存分配方案是最佳適應(yīng)方案(best fit)。其主要的數(shù)據(jù)結(jié)構(gòu)為
struct node
{
char* p
int memosize
int flag
struct node* next
}
這是一個(gè)鏈表的結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu),用它來管理內(nèi)存的分配與回收。P 表示所指的分配的內(nèi)存的首地址,memosize 表示分配的內(nèi)存塊的大小,flag 為一個(gè)標(biāo)志量,表示內(nèi)存塊是否被占用。用 1 和 0 來表示被占用和不被占用。next 表示下一個(gè)結(jié)點(diǎn)的首地址。
內(nèi)存管理包括一個(gè)分配內(nèi)存的mm_request(unsigned int)函數(shù),一個(gè)初始化所要管理的內(nèi)存的mm_init()函數(shù),一個(gè)空閑列表排序函數(shù)sort(),一個(gè)釋放內(nèi)存的mm_release(void* )函數(shù)和一個(gè)判斷內(nèi)存是否被占用的IsFree(int)函數(shù)。
標(biāo)簽:
內(nèi)存管理
上傳時(shí)間:
2016-07-06
上傳用戶:qunquan