伙伴系统算法中的伙伴

一个块的伙伴究竟是位于该块的前面还是后面,取决于oder的值:

buddy_idx = page_idx ^ (1 << order); (异或的实质是0变1, 1变0)

如果page_idx的值大于1<<order, 则其伙伴块的第一个页框号在其之后,反之则在其之前,比如:

page_idx = 32, order = 2时, buddy_idx = 36

                            order = 3时, buddy_idx = 40

                            order = 4时, buddy_idx = 48

                            order = 5时, buddy_idx = 0   

你可能感兴趣的:(伙伴系统算法中的伙伴)