linux伙伴系统怎么回事?

一直不太明白这个伙伴系统什么意思?

假如我现在要申请7页面大小的内存,从哪个块链中取内存?

这种情况怎么分配,回收的时候怎么回收?

#Linux#
全部评论
具体系统具体分析。基本上思路都是内存池中拿,小块内存怎么拿,大块内存怎么拿,各不一样。系统回收,也看情况。大块内存怎么还,小块内存怎么还。还的时候,是立即给操作系统还是给内存池。内存高水位,低水位怎么处理。malloc的版本各不一样,可以搜一下tcmalloc,或者malloc的论文。如果是stl的分配器(stl源码剖析讲解的那个),128字节下靠应用层内存池链表维护。128字节以上靠段页式操作系统维护。题外话,操作系统对一个进程分配的上虚拟内存,物理内存的调度又要搞事。叠床架屋……记得分层去想。
1 回复 分享
发布于 2019-07-01 21:17
回收的时候根据地址和内存大小判断另一个是不是它的伙伴,如果是的话并且没有被使用就合并(然后你还要用一个位图去表示这块内存有没有被使用),递归进行就行了。
点赞 回复 分享
发布于 2019-07-02 09:14
向上取整,回收的时候看伙伴能不能合并,能就一直合并到不能合并
点赞 回复 分享
发布于 2019-07-01 18:38
从8那里取。3的阶那个。
点赞 回复 分享
发布于 2019-07-01 18:37

相关推荐

明天不下雨了:这个项目 这个简历 这个模板 莫不是一个开源的
点赞 评论 收藏
分享
用微笑面对困难:你出于礼貌叫了人一声大姐,大姐很欣慰,她真把你当老弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务