很小的一个问题 关于linux buddy系统
时间:2010-09-23
来源:互联网
buddy_idx = page_idx ^ (1 << order)
在求buddy块时,为什么只单考虑一边的buddy
即第order位为0 则buddy_idx = page_idx +order_size
第order位为1 则buddy_idx = page_idx - order_size
为什么不探测两边是否都有空闲块?
在求buddy块时,为什么只单考虑一边的buddy
即第order位为0 则buddy_idx = page_idx +order_size
第order位为1 则buddy_idx = page_idx - order_size
为什么不探测两边是否都有空闲块?
作者: 317316abcd 发布时间: 2010-09-23
没能明白你想要表达的意思... 根据最后一句话猜测... 为何不探测两边是否都有空闲块。
伙伴系统分配器是每两个连续块互为兄弟块..如果随便两个相邻的块都互称为兄弟块的...
会不好操作...至少在合并以及定位兄弟块的层次上来说...
比如划分好的任意order的第一个页面基址的低order个位一定是0。但是如果只要是相邻.且都空闲...
就合并...那么合并之后就可能不会满足这个规则...
在说定位兄弟块...两个页面块只用一个比特位来表示其状态... 得知一个兄弟块的状态之后.根据表示这个块的比特是1还是0就可以推测其兄弟块的状态... 那么即使是与它相邻. 但不是它的兄弟块的页面块. 我们无法得知其状态... 所以无法探测...
伙伴系统分配器是每两个连续块互为兄弟块..如果随便两个相邻的块都互称为兄弟块的...
会不好操作...至少在合并以及定位兄弟块的层次上来说...
比如划分好的任意order的第一个页面基址的低order个位一定是0。但是如果只要是相邻.且都空闲...
就合并...那么合并之后就可能不会满足这个规则...
在说定位兄弟块...两个页面块只用一个比特位来表示其状态... 得知一个兄弟块的状态之后.根据表示这个块的比特是1还是0就可以推测其兄弟块的状态... 那么即使是与它相邻. 但不是它的兄弟块的页面块. 我们无法得知其状态... 所以无法探测...
作者: PCliangtao 发布时间: 2010-09-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28