ibm bluemix云平台上linux slab分配器剖析.pdfVIP

ibm bluemix云平台上linux slab分配器剖析.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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云平台上

开发并部署您的下一个应

最小化管理内存所需的时间

用。

最大化用于一般应用的可用内存(最小化管理开销)开始您的试用

内存管理实际上是一种关于权衡的零和游戏。您可以开发一种使用少量内存进

行管理的算法,但是要花费更多时间来管理可用内存。也可以开发一个算法来有效地管理内存,但却要使

用更多的内存。最终,特定应用程序的需求将促使对这种权衡作出选择。

每个内存管理器都使用了一种基于堆的分配策略。在这种方法中,大块内存(称为堆)用来为用户定义的

目的提供内存。当用户需要一块内存时,就请求给自己分配一定大小的内存。堆管理器会查看可用内存的

情况(使用特定算法)并返回一块内存。搜索过程中使用的一些算法有first­fit(在堆中搜索到的第一个满

足请求的内存块)和best­fit(使用堆中满足请求的最合适的内存块)。当用户使用完内存后,就将内存返

回给堆。

这种基于堆的分配策略的根本问题是碎片(fragmentation)。当内存块被分配后,它们会以不同的顺序在

不同的时间返回。这样会在堆中留下一些洞,需要花一些时间才能有效地管理空闲内存。这种算法通常具

有较高的内存使用效率(分配需要的内存),但是却需要花费更多时间来对堆进行管理。

另外法称为buddymemoryallocation,是一种更快的内存分配技术,它将内存划分为2的幂次方

个分区,并使用best­fit方法来分配内存请求。当用户释放内存时,就会检查buddy块,查看其相邻的内

存块是否也已经被释放。如果是的话,将合并内存块以最小化内存碎片。这个算法的时间效率更高,但是

由于使用best­fit方法的缘故,会产生内存浪费。

本文将着重介绍Linux内核的内存管理,尤其是slab分配提供的机制。

slab缓存

Linux所使用的slab分配器的基础是JeffBonwic

您可能关注的文档

文档评论(0)

159****9610 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档