首次適應演算法 C語言實現

2021-10-11 03:19:54 字數 1298 閱讀 8537

用c語言實現採用首次適應演算法的動態分割槽分配過程和**過程。

其中,空閒分割槽通過空閒分割槽鏈(表)來管理;在進行記憶體分配時,系統優先使用空閒區低端的空間,要求每次分配和**後顯示出空閒記憶體分割槽鏈的情況。

#include

#include

#include

#define free 0

#define busy 1

#define max_length 640

typedef

struct freearea//空閒區的結構體

freearea;

typedef

struct dunode//首尾不互連的雙向鍊錶結點

dunode,

*dulinklist;

dulinklist m_rid;

dulinklist m_last;

void

init()

//空閒區佇列初始化

intfirst_fit

(int id,

int size)

//首次適應演算法

if(p->data.isused==free && p->data.size==size)

//請求大小剛好滿足

if(p->data.isused==free && p->data.size>size)

//空閒區比所需記憶體大,則需要將多的記憶體作**處理

p=p->next;

}return0;

}void

alloc()

//分配記憶體

void

freenode()

//釋放記憶體if(

!p->next->data.isused && p->prior->data.isused)

//與後乙個空閒區相鄰,則合併

else

p->next = p->next->next;}if

(!p->prior->data.isused &&

!p->next->data.isused)

//前後的空閒區均為空

else

p->prior->next = p->next->next;

}printf

("釋放記憶體成功!\n");

break;}

p = p->next;if(

!p)printf

("記憶體中沒有該需要釋放記憶體的作業!");

}}void

show()

}int

main()

}}

最佳適應演算法 C語言實現

用c語言實現採用最佳適應演算法的動態分割槽分配過程和 過程。其中,空閒分割槽通過空閒分割槽鏈 表 來管理 在進行記憶體分配時,系統優先使用空閒區低端的空間,要求每次分配和 後顯示出空閒記憶體分割槽鏈的情況。include include include define free 0 define bu...

首次適應演算法 FF 和迴圈首次適應演算法 NF

原文 ff和nf演算法都是基於順序搜尋的動態分割槽分配演算法,在記憶體中檢索一塊分割槽分配給作業。如果空間大小合適則分配,如果找不到空間則等待。ff演算法按位址遞增從頭掃瞄空閒分割槽,如果找到空閒分割槽大小 作業大小則分配。如果掃瞄完空閒分割槽表都沒有找到分割槽,則分配失敗。nf演算法和ff演算法類...

c語言實現磁碟排程演算法 C語言實現洗牌演算法

首先看一道題目 有乙個大小為100的陣列,裡面的元素是從 1 到 100,隨機從陣列中選擇50個不重複數。用math.random 100,就可以拿到乙個 0 到 99 的隨機數,是不是重複50次就可以了?當然不是,假如,第一次隨機到5,第二次如果再一次隨機到5的話,要求是選擇不重複的數,所以要選出...