首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
简述Linux内存分配--伙伴系统原理
[问答题]
简述Linux内存分配--
伙伴系统
原理
查看答案及解析
添加笔记
求解答(1)
邀请回答
收藏(176)
分享
纠错
2个回答
添加回答
7
ChrisNewbie
Linux内存分配——伙伴系统
目的:最大限度的降低内存的碎片化。
原理:
1.将内存块分为了11个连续的页框块(1,2,4,8....512,1024),其中每一个页框块中用链表将内存块对应内存大小的块进行链接。
2.若需要一块256大小的内存块,则从对应的256链表中查找空余的内存块,若有则分配。否则查找512等等。
3.若在256中未找到空余内存块,在512中查找到空余的内存块。则将512分成两部分,一部分进行分配,另一部分则插入256链表中。
4.内存的释放过程与分配过程相反。在分配过程中由大块分解而成的小块中没有被分配的块将一直等着被分配的块被释放,从而和其合并。最终相当于没有划分小块。
总结:伙伴系统在分配和释放的过程中执行互逆的过程,其将会极大力度的抵消碎片的产生。
发表于 2015-07-28 10:42:39
回复(0)
1
陈木木
伙伴系统,其思想是:把内存块分成不同的组(1,2,4,8,16,32....);分配内存时找到能够满足条件 的最小的块;如果找不到,就找大的块,然后一分为2,分配一块,留一块;回收时:如果有相邻的同样大小的块,则合并
发表于 2015-05-05 14:47:19
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Linux
上传者:
陈木木
难度:
2条回答
176收藏
7887浏览
热门推荐
相关试题
关于Linux系统的负载(Load...
阿里巴巴
Linux
评论
(45)
2022 诺瓦科技 Perl re...
perl
System Verilog
评论
(1)
之前的经历中单品数据分析的经验丰富...
评论
(1)
什么样的人适合做数据分析
评论
(1)
游戏内数据分析涉猎的少,如何证明自...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题