一、問題:當空閒鏈如下圖,
第一個空閒分割槽起始地址為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的分配,這裡就都放到第一個空閒分割槽塊中