對偶式記憶體管理演算法
外觀

夥伴算法是一種將內存對半分割來儘量實現最佳匹配的內存分配算法,由哈里·馬科維茨於1963年發明。[1]
示例
[編輯]在以下示例系統中,最小的內存塊大小為64千字節,內存塊大小的最大值為4,因此最大的可分配內存塊大小為。下面展示了系統在經歷多次內存請求後的可能狀態。
步驟 | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K | 64 K |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 24 | |||||||||||||||
2.1 | 23 | 23 | ||||||||||||||
2.2 | 22 | 22 | 23 | |||||||||||||
2.3 | 21 | 21 | 22 | 23 | ||||||||||||
2.4 | 20 | 20 | 21 | 22 | 23 | |||||||||||
2.5 | A: 20 | 20 | 21 | 22 | 23 | |||||||||||
3 | A: 20 | 20 | B: 21 | 22 | 23 | |||||||||||
4 | A: 20 | C: 20 | B: 21 | 22 | 23 | |||||||||||
5.1 | A: 20 | C: 20 | B: 21 | 21 | 21 | 23 | ||||||||||
5.2 | A: 20 | C: 20 | B: 21 | D: 21 | 21 | 23 | ||||||||||
6 | A: 20 | C: 20 | 21 | D: 21 | 21 | 23 | ||||||||||
7.1 | A: 20 | C: 20 | 21 | 21 | 21 | 23 | ||||||||||
7.2 | A: 20 | C: 20 | 21 | 22 | 23 | |||||||||||
8 | 20 | C: 20 | 21 | 22 | 23 | |||||||||||
9.1 | 20 | 20 | 21 | 22 | 23 | |||||||||||
9.2 | 21 | 21 | 22 | 23 | ||||||||||||
9.3 | 22 | 22 | 23 | |||||||||||||
9.4 | 23 | 23 | ||||||||||||||
9.5 | 24 |
參考文獻
[編輯]- ^ Kenneth C. Knowlton. A Fast storage allocator. Communications of the ACM 8(10):623–625, Oct 1965. also Kenneth C Knowlton. A programmer's description of L6. Communications of the ACM, 9(8):616–625, Aug. 1966 [see also : Google books [1] page 85]