QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2155|回复: 2

关于内存分配中的伙伴算法是如何实现的?

[复制链接]
发表于 2004-12-30 22:19:50 | 显示全部楼层 |阅读模式
是用2叉树还是用其他的结构来实现的??

谢谢
发表于 2004-12-31 00:21:04 | 显示全部楼层
应该是通过free_area_struct结构体中的map实现的吧。
free_area[0]中的map的每一位来判断一个page是否为空,free_area[1]中的map的每一位来判断一个page是否为空。这样如果一组连续的页被释放,那么先把free_area[order]中的map位设为0,如果旁边的位也为0,就跑到free_area[order+1]的map中把相应的位也设为0
回复

使用道具 举报

发表于 2004-12-31 09:09:00 | 显示全部楼层
二叉树实现的是虚拟内存管理,vm_area_struct中的,2.4.10之前是avl树,之后是红黑树
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 08:42 , Processed in 0.037563 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表