linux 内存管理 pdf,Linux内存管理中的 Slab 分配机制.pdf

62e50291a81fc54b507f33cb80033297.gif Linux内存管理中的 Slab 分配机制.pdf

(3页)

1ac40a9c7d3fb2e6946646b5874afe27.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

4.9 积分

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

524d6daf746efaa52c3c71bbfe7ba172.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值