所謂最佳,每次為作業分配記憶體時,總能把能滿足要求,又是最小的空閒分配給作業。避免大材小用。主要做法:將所有的空閒分割槽按其從小到大排序,有新作業的時候,按從小查詢,直到找乙個可以滿足此作業的分割槽大小。該演算法保留大的空閒區,但造成許多小的空閒區。
最壞適應分配演算法要掃瞄整個空閒分割槽或鍊錶,總是挑選乙個最大的空閒分割槽分割給作業使用。
該演算法從空閒分割槽鏈首開始查詢,直至找到乙個能滿足其大小要求的空閒分割槽為止。然後再按照作業的大小,從該分割槽中劃出一塊記憶體分配給請求者,餘下的空閒分割槽仍留在空閒分割槽鏈中。
在首次適應演算法的基礎上,該演算法從不再每次都從空閒分割槽鏈首開始查詢,而是從上次找到的空間分割槽的下乙個分割槽開始查詢。
給定五個分別為100 kb,500 kb,200 kb,300 kb和600 kb的記憶體分割槽,分別用the first-fit, best-fit, and worst-fit處理以下程序請求 212 kb,417 kb,112 kb和426 kb。該演算法從空閒分割槽鏈首開始查詢,直至找到乙個能滿足其大小要求的空閒分割槽為止。每次都是從頭開始。212kb,此時程序選擇500kb,剩下288kb
417kb,此時程序選擇600kb
112kb,此時程序選擇288kb
426kb,此程序無分配將所有的空閒分割槽按其從小到大排序,有新作業的時候,按從小查詢,直到找乙個可以滿足此作業的分割槽大小。
100kb,200kb,300kb,500kb,600kb212kb,此時程序選擇300kb
417kb,此時程序選擇500kb
112kb,此時程序選擇200kb
426kb,此時程序選擇500kb將所有的空閒分割槽按其從大到小排序,總是挑選乙個最大的空閒分割槽分割給作業使用。
600kb,500kb,300kb,200kb,100kb212kb,此時程序選擇600kb,剩下388kb
417kb,此時程序選擇500kb
112kb,此時程序選擇388kb
426kb,此程序無分配
結果如圖所示:
動態分割槽分配演算法
動態分割槽分配演算法 一.順序搜尋的動態分割槽分配演算法 1.首次適應演算法 first fit 演算法思想 將空閒分割槽鏈以位址遞增的順序連線 在進行記憶體分配時,從鏈首開始順序查詢,直到找到一塊分割槽的大小可以滿足需求時,按照該作業的大小,從該分割槽中分配出記憶體,將剩下的空閒分割槽仍然鏈在空閒...
動態分割槽分配演算法
1.首次適應演算法 ff 2.迴圈首次適應演算法 nf 和首次適應演算法的區別就是,在為程序分配記憶體空間的時候,不再是都從鏈首開始查詢,而是從上次找到的空閒的分割槽的下乙個空閒分割槽開始查詢,直到找到乙個能滿足要求的空閒分割槽。3.最佳適應演算法 bf 將所有的空閒空間按其容量從小到大的順序形成一...
動態分割槽分配演算法
主函式 乙個選單欄的形式,可以選擇要執行的演算法。首次適應演算法 每次都從開始往後找滿足條件的分割槽。迴圈首次適應演算法 從前一次找到的地方往後繼續找分割槽。最佳適應演算法 先從小到大排序,找比前乙個大後乙個小的分割槽。1.首次適應演算法 該演算法從空閒分割槽鏈首開始查詢,直至找到乙個能滿足其大小要...