主函式:乙個選單欄的形式,可以選擇要執行的演算法。1.首次適應演算法:該演算法從空閒分割槽鏈首開始查詢,直至找到乙個能滿足其大小要求的空閒分割槽為止。然後再按照作業的大小,從該分割槽中劃出一塊記憶體分配給請求者,餘下的空閒分割槽仍留在空閒分割槽鏈中。首次適應演算法:每次都從開始往後找滿足條件的分割槽。
迴圈首次適應演算法:從前一次找到的地方往後繼續找分割槽。
最佳適應演算法:先從小到大排序,找比前乙個大後乙個小的分割槽。
2.迴圈首次適應演算法:該演算法是首次適應演算法的變種。在分配記憶體空間時,不再每次從表頭(鏈首)開始查詢,而是從上次找到空閒區的下乙個空閒開始查詢,直到找到第乙個能滿足要求的的空閒區為止,並從中劃出一塊與請求大小相等的記憶體空間分配給作業。該演算法能使記憶體中的空閒區分布得較均勻。
3.最佳適應演算法: 該演算法總是把既能滿足要求,又是最小的空閒分割槽分配給作業。為了加速查詢,該演算法要求將所有的空閒區按其大小排序後,以遞增順序形成乙個空白鏈。這樣每次找到的第乙個滿足要求的空閒區,必然是最優的。孤立地看,該演算法似乎是最優的,但事實上並不一定。因為每次分配後剩餘的空間一定是最小的,在儲存器中將留下許多難以利用的小空閒區。同時每次分配後必須重新排序,這也帶來了一定的開銷。
#include #include #include using namespace std;
struct info;
info in[100]; //原始記憶體分配表
int kong[100];//空閒分割槽表
int ready[100];//已分配分割槽表
//初始化分割槽
void init()
fen.close();
cout<<"原始記憶體分割槽"<=n) }
//迴圈首次適應演算法
void nextfit()
}// 按大小從小到大排序
void sort()
} int main()
cout<<"請選擇一種演算法:" ;
cout<<"1.首次適應演算法"<>lx;
} return 0;
}
動態分割槽分配演算法
動態分割槽分配演算法 一.順序搜尋的動態分割槽分配演算法 1.首次適應演算法 first fit 演算法思想 將空閒分割槽鏈以位址遞增的順序連線 在進行記憶體分配時,從鏈首開始順序查詢,直到找到一塊分割槽的大小可以滿足需求時,按照該作業的大小,從該分割槽中分配出記憶體,將剩下的空閒分割槽仍然鏈在空閒...
動態分割槽分配演算法
1.首次適應演算法 ff 2.迴圈首次適應演算法 nf 和首次適應演算法的區別就是,在為程序分配記憶體空間的時候,不再是都從鏈首開始查詢,而是從上次找到的空閒的分割槽的下乙個空閒分割槽開始查詢,直到找到乙個能滿足要求的空閒分割槽。3.最佳適應演算法 bf 將所有的空閒空間按其容量從小到大的順序形成一...
動態分割槽分配
一 實驗目的 1.通過這次實驗,加深對動態分割槽分配的理解,進一步掌握首次適應演算法和最佳適應演算法的理解。了 解動態分割槽分配方式中使用的資料結構和分配演算法,進一步加深對動態分割槽儲存管理方式及其實現 過程的理解。提高學生設計實驗 發現問題 分析問題和解決問題的能力。2.學會可變式分割槽管理的原...