動態分割槽分配演算法

2021-08-28 10:07:45 字數 1159 閱讀 9054

1.首次適應演算法(ff):

2.迴圈首次適應演算法(nf):

和首次適應演算法的區別就是,在為程序分配記憶體空間的時候,不再是都從鏈首開始查詢, 而是從上次找到的空閒的分割槽的下乙個空閒分割槽開始查詢,直到找到乙個能滿足要求的空閒分割槽。

3.最佳適應演算法(bf):

將所有的空閒空間按其容量從小到大的順序形成一空閒分割槽鏈,然後進行分配。

4.最壞適應演算法(wf):

將所有的空閒空間按其容量從大到小的順序形成一空閒分割槽鏈,然後進行分配。 當系統很大的時候,基於順序搜尋的動態分割槽分配演算法可能會很慢,所以有:

1.快速適應演算法:

將空閒分割槽根據其容量大小進行分類,對於每一類具有相同容量的所有分割槽,單獨設立乙個空閒分割槽鍊錶,這樣系統中存在多個空閒分割槽鍊錶。同時,在記憶體中設立一張管理索引表,其中的每乙個索引表項對應了一種空閒分割槽型別。 在搜尋可分配空閒分割槽時,第一步根據程序的長度,從索引表中去尋找能容納它的最小空閒區鍊錶;第二步是從鍊錶中取下第一塊進行分配即可。 優先是查詢效率高,缺點是,該演算法在分配空閒分割槽時,是以程序為單位的,乙個分割槽只屬於乙個程序,因此在為程序所分配的乙個分割槽中,或多或少存在一定的浪費。

2.夥伴系統:

夥伴系統方式是動態分割槽分配和固定分割槽分配的一種折衷方案。 夥伴系統規定,分配的分割槽和空閒分割槽大小都是2^k,k為整數,l≤k ≤m。2^1表示分配的最小分割槽大小,2^m表示分配的最大分割槽大小。2^m是整個可分配的記憶體大小。系統中也要建立一種管理索引表,指明每個煉表表頭。

分割槽分配方法: 開始時,整個分割槽是2^m,在系統執行過程中,由於不斷劃分,可能會形成若干不連續的空閒分割槽,將它們分類,每一類具有相同大小,且每類建立乙個空閒分割槽雙向鍊錶,系統中有若干個雙向鍊錶。 當需要為程序分配大小為n的區塊時,首先計算乙個i,使2^(i-1)≤n ≤2^i,然後在大小為2i的空閒分割槽鍊錶中查詢。 分割槽**: 若**大小為2^i的分割槽,若有夥伴分割槽,則合併為2^(i+1)的分割槽,進而可能需要合併為2^(i+2)的分割槽…… 演算法效能取決於查詢空閒分割槽的位置和分割、**空閒分割槽所花費的時間。

動態分割槽分配演算法

動態分割槽分配演算法 一.順序搜尋的動態分割槽分配演算法 1.首次適應演算法 first fit 演算法思想 將空閒分割槽鏈以位址遞增的順序連線 在進行記憶體分配時,從鏈首開始順序查詢,直到找到一塊分割槽的大小可以滿足需求時,按照該作業的大小,從該分割槽中分配出記憶體,將剩下的空閒分割槽仍然鏈在空閒...

動態分割槽分配演算法

主函式 乙個選單欄的形式,可以選擇要執行的演算法。首次適應演算法 每次都從開始往後找滿足條件的分割槽。迴圈首次適應演算法 從前一次找到的地方往後繼續找分割槽。最佳適應演算法 先從小到大排序,找比前乙個大後乙個小的分割槽。1.首次適應演算法 該演算法從空閒分割槽鏈首開始查詢,直至找到乙個能滿足其大小要...

動態分割槽分配

一 實驗目的 1.通過這次實驗,加深對動態分割槽分配的理解,進一步掌握首次適應演算法和最佳適應演算法的理解。了 解動態分割槽分配方式中使用的資料結構和分配演算法,進一步加深對動態分割槽儲存管理方式及其實現 過程的理解。提高學生設計實驗 發現問題 分析問題和解決問題的能力。2.學會可變式分割槽管理的原...