作業系統綜合題之“採用動態分割槽分配演算法下的3種演算法(首次適應演算法、迴圈首次適應演算法、最佳適應演算法),畫出分配資源後的空閒區鏈”

骚哥發表於2024-04-07

一、問題:當空閒鏈如下圖,

第一個空閒分割槽起始地址為20KB,大小為120KB;

第二個空閒分割槽起始地址為200KB,大小為100KB;

第三個空閒分割槽起始地址為400KB,大小為60KB。

若某程序P1先申請大小為30KB的記憶體空間,

隨後程序P2再申請大小為20KB的記憶體空間,

畫出給P1分配完之後的空閒鏈和給P2分配完的空閒鏈

1.若系統採用首次適應演算法,請畫出分配資源後的空閒連結串列

2.若系統採用迴圈首次適應演算法,請畫出分配資源後的空閒連結串列

3.若系統採用最佳適應演算法,請畫出分配資源後的空閒連結串列

二、參考答案

1.首次適應迴圈演算法,兩個程序都分配到第一個空閒區鏈中,所以空閒區:120-30-20 = 70 分割槽起始地址:20+30+20 =70

2.迴圈首次適應演算法,兩個程序分配到不同的空閒分割槽鏈中,30分到第一個,20分到第二個

3.最佳適應演算法,先根據分割槽大小進行從小到大排序,然後再給符合分割槽大小的分配,因為排序後60最小所以放到最前面,而60 - 30 還剩30可以滿足P2的分配,這裡就都放到第一個空閒分割槽塊中

相關文章