Linux内存管理中的Slab分配机制.pdfVIP

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

实践与经验 Linux内存管理中的Slab分配机制 1 2 赵鲲鹏 , 苏葆光 ( 长安大学,西安 浙江万里学院,宁波 ) 1. 710061;2. 315101 摘 要:早期 Linux的内存分配机制采用伙伴算法,当请求分配的内存大小为几十个字节或几百个 字节时会产生内存碎片,严重消耗系统资源。现今采用Slab机制可以缓存物理空间的申请和 回收,杜绝外部碎片的产生,降低内部碎片量。本文分析了Slab内存分配机制及其数据结构和 接口函数,然后给出了Slab机制的实现。 关键词: ;内存管理; ;分配机制 Slab Linux 1 Linux内存管理体系 用的物理页纪录在页缓存中。如果没有足够的内存可 供分配,那么就调用交换机制,腾出一部分内存。另 在 体系结构中, 内核的内存管 Intel80x86 Linux 外,在地址映射中要通过TLB来寻找物理页,交换机 理采用了分页管理方式,真正实现了虚拟存储器管 制中也要用到交换缓存,并且把物理页内容交换到交 理,其虚拟内存管理的实现结构如图 所示。 1 换文件后也要修改页表来映射文件地址。 2 Slab分配机制概述 Slab分配机制用来对内存区域中内核空间进行 分配和回收。Slab使用对象来组织内存区域,对象就 是指存放一组数据结构的内存区。 根据内存区的 Slab 使用频率对内存区域进行划分。对于预期频繁使用的 内存区, 创建一组特定大小的专用缓冲区进行处 Slab 理,以避免内碎片的产生;对于较少使用的内存区, 图1 Slab创建一组通用缓冲区来处理,即使这种处理模式 内存映射模块负责把磁盘文件的逻辑地址映射 产生碎片,对整个系统的性能影响也不大。 分配模式把对象分组放进缓冲区, 缓冲区 到虚拟地址,把虚拟地址映射到物理地址;交换模块 Slab Slab 负责控制内存内容的换入和换出;核心管理模块负责 并非由各个对象直接构成,而是由一连串的Slab构成, 核心内存管理功能,即对页的分配、回收、释放及请页 而

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档