1. 程式人生 > >Buddy演算法

Buddy演算法

把記憶體中所有的頁面按照2^n劃分,其中n=0~5,每個記憶體空間1個頁面、2個頁面、4個頁面、8個頁面、16個頁面、32個頁面
這裡寫圖片描述
實體記憶體劃分後形成了大小不等的儲存塊,稱為頁面塊,簡稱頁塊。
包含1個頁面的塊叫做1頁塊
包含2個頁面的塊叫做2頁塊
包含4個頁面的塊叫做4頁塊

free_area
①每種頁塊按前後順序兩兩結合成一對Buddy“夥伴”
②按照Buddy關係系統把具有相同大小的空閒頁面塊組成頁塊組
③每個頁塊組用一個雙向連結串列進行管理,共有6個連結串列分別掛到free_area[]
map
標記記憶體頁面使用情況
第0組每一位表示單個頁面使用情況
“1”表示使用,“0”表示空閒
第1組每兩個頁面使用情況
“1”表示使用,“0”表示空閒
預設為10個數組

注意:
Buddy中的兩個頁面塊中有一個是空閒,另一個全部或部分被佔用,該位置“1”
Buddy中的兩個頁面塊都是空閒,或都是被佔用事,置“0”