- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
IBMBluemix点击按钮,开始云上的开发!
开始您的试用
developerWorks技术Linux文档库
Linuxslab分配器剖析
了解Linux内存管理的方式
良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受
到内存碎片和内存回收需求的影响。现在,Linux®内核使用了源自于Solaris的法,但是这种方法在嵌入式系统
中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索slab分配器背后所采用的思想,并介绍
这种方法提供的接口和用法。
M.TimJones是一名嵌入式软件工程师,他是GNU/LinuxApplicationProgramming、AIApplicationProgramming以及BSDSockets
ProgrammingfromaMultilanguage等书的作者。他的工程背景非常广泛,从同步宇宙飞船的内核开发到嵌入式架构设计,再到网
络协议的开发。Tim是位于科罗拉多州Longmont的EmulexCorp.的一名顾问工程师。
2010年9月20日
动态内存管理
内存管理的目标是提供法,为实现各种目的而在各个用户之间实现内存
共享。内存管理方法应该实现以下两个功能:
在IBMBluemix云平台上
开发并部署您的下一个应
最小化管理内存所需的时间
用。
最大化用于一般应用的可用内存(最小化管理开销)开始您的试用
内存管理实际上是一种关于权衡的零和游戏。您可以开发一种使用少量内存进
行管理的算法,但是要花费更多时间来管理可用内存。也可以开发一个算法来有效地管理内存,但却要使
用更多的内存。最终,特定应用程序的需求将促使对这种权衡作出选择。
每个内存管理器都使用了一种基于堆的分配策略。在这种方法中,大块内存(称为堆)用来为用户定义的
目的提供内存。当用户需要一块内存时,就请求给自己分配一定大小的内存。堆管理器会查看可用内存的
情况(使用特定算法)并返回一块内存。搜索过程中使用的一些算法有firstfit(在堆中搜索到的第一个满
足请求的内存块)和bestfit(使用堆中满足请求的最合适的内存块)。当用户使用完内存后,就将内存返
回给堆。
这种基于堆的分配策略的根本问题是碎片(fragmentation)。当内存块被分配后,它们会以不同的顺序在
不同的时间返回。这样会在堆中留下一些洞,需要花一些时间才能有效地管理空闲内存。这种算法通常具
有较高的内存使用效率(分配需要的内存),但是却需要花费更多时间来对堆进行管理。
另外法称为buddymemoryallocation,是一种更快的内存分配技术,它将内存划分为2的幂次方
个分区,并使用bestfit方法来分配内存请求。当用户释放内存时,就会检查buddy块,查看其相邻的内
存块是否也已经被释放。如果是的话,将合并内存块以最小化内存碎片。这个算法的时间效率更高,但是
由于使用bestfit方法的缘故,会产生内存浪费。
本文将着重介绍Linux内核的内存管理,尤其是slab分配提供的机制。
slab缓存
Linux所使用的slab分配器的基础是JeffBonwic
您可能关注的文档
- 2024年驻马店市自然资源和规划局城乡一体化示范区分局二级主任科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年昭通市彝良县住房和城乡建设局文秘招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年朔州市应县人民法院司法行政(新闻宣传)职位招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年上蔡县司法局韩寨司法所招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年中共荥阳市纪律检查委员会荥阳市监察委员会一级科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年信阳市纪检监察系统(含市纪委监委、派驻机构、市委巡察机构)一级科员招录2人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年抚州市资溪县纪委县监委派驻纪检监察组业务岗(三)招录1人《行政职业能力测验》高频考点、难点(含详细答案).docx
- 2024年邓州市人民政府办公室招录2人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年云南省监狱管理局生产管理招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年许昌市公安局基层一线单位执法勤务类一级警长及以下招录3人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年原阳县葛埠口乡人民政府招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年渝北区经济和信息化委员会综合管理职位招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年雁塔区委网络安全和信息化委员会办公室二级主任科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年西华县李大庄乡人民政府一级科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年万州区乡镇机关综合管理职位招录3人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年范县王楼镇人民政府招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年寻乌县司法局司法行政岗招录1人《行政职业能力测验》高频考点、难点(含详细答案).docx
- 2024年嵩县公安局执法勤务类一级警长招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年清丰县阳邵镇人民政府(人武专干)招录2人《行政职业能力测验》高频考点、难点(答案详解版).docx
- 2024年祁东县公安局文字综合招录2人《行政职业能力测验》高频考点、难点(含详细答案).docx
文档评论(0)