




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、柯锦玲2009-10-21柯锦玲2009-10-21柯锦玲, Linux向外部提供的内存管理接口Linux Image、蓝色字体部分的可用空间、Linux如何防止内存片段,内存片段:系统分配大区域的连续内存,以满足小内存区域(连续)的需要浪费空间的外部片断系统有足够的内存,但是分散的片断不能满足大块的Linux如何防止内存的片断,Linux减少外部的片断合作伙伴系统(buddy算法)以及内存块页帧的分配并非盲目,而是按大小顺序进行,但伙伴关系只是减轻了外部的碎片,而伙伴系统同时带来了许多内部碎片linux,减少了外部碎片SLAB、SLUB、SLOB分配器, 1页内的许多小块存储器可以独立分配使
2、用,避免内部片段,节省空闲存储器,linux如何防止存储器片段,linux存储器管理层次图1,linux如何防止存储器片段,linux存储器管理层次函数linux内存管理算法介绍、Buddy System算法原理Buddy System是典型的内存管理算法。 同时在Unix和Linux操作系统中使用。 其作用是减少存储空间的空洞,减少碎片,提高利用率。 避免外部碎片化的一种方法是使用a .分页单元将一组不连续的空页框映射到连续的线性地址部分。 b .开发适当技术来记录现有的空闲的连续页帧块的情况,使得不分割大块的空闲块,以便满足对小块的要求。 内核在某些情况下可能需要连续的页框。 b .即使不
3、需要连续页框的分配,也不能忽略内核页表在原样维持上的作用。 修改页面表会增加平均访问次数,并频繁更新TLB。 可以在c.4m的页面上访问大型连续的物理内存,对于4K页面的使用,TLB未命中率降低,平均访问速度变快。buddy算法将所有空闲页面框分组到11个块链接表中,并且每个块链接表分别对应于1、2、4、8、16、32、64、128、256、512、1024个连续页面页数例如,当要求128页框的块时,该算法首先检查128页框的链表是否有空块,否则检查256页框的链表,将256页框的块分割为2,使用1个、1个如果还没有,则检查512个页框的链接表,如果有的话分裂为128、128、256,在1个1
4、28中使用,剩下的2个插入对应的链接表。 如果在512还没有找到,则返回错误信号。 反过来,回收流程是:staticinlinestructpage * alloc _ pages (GFP _ tgfp _ mask、unsignedintorder)void。 unsigned int order (未指定顺序)分配存储器的单位在分配时传递order值,order是0、1、2、n是分别由1、2、4、2n个页面合作伙伴系统(Buddy算法)分配的页面的物理量合作伙伴系统分配的内存大小最大为210 *页=4k *4k=4munsignedlong _ _ get _ free _ pages
5、(GFP _ tgfp _ mask ), unsigned int order算法可以很好地减少外部片段的发生,但是他可以引起很多内部片段,slab/slob/slub的作用是以:页为单位分配内存用于存储这些描述符的内存与页面相比,类似于面包屑和面包。这种小块存储器可以在整个页面上集中多个,并且这些小块的存储器块也和面包屑一样频繁地生成/丢弃。 为满足这种小内存块的内核需求,Linux系统采用了被称为slab分配器的技术。 Slab分配器的实现相当复杂,但原理并不难,其核心思想是“存储池”的运用。 内存片段(小块内存)被视为对象,并且在使用之后被缓存在“存储池”中,而不是直接释放,并且被保留
6、以供下一次使用,从而避免了由于频繁创建或销毁对象而产生的额外负荷slab分配器的主要结构是SLUB,2.6.22的slab内存管理代码被SLUB取代。 SLAB是典型的管理内核内存的代码,而SLAB保留有大量的对象队列,这些队列可以立即被指派,但是由于过于复杂,导致系统节点的增加而花费大量的维护空间。 slub显示为slab的替代选项。 slub是不使用队列的分配器。 slub消除了大量的队列和相关维护费用,获得了显着的性能和可扩展性,整体上简化了slab结构,使用了每个CPU的缓存,保持了slab的用户界面,slub提供了强大的诊断和调试能力,slob、slob 如果选择主要使用的CONFIG_EMBEDDED,则可以通过选择CONFIG_SLOB选项来使用SLOB分配器。 其中,典型的k skbuff _ head _ cache=kmem _ cache _ create (卡片、结构) slab _ HW卡片_对齐3360与卡片对齐SLAB_PANIC:除非在创建失败时感觉到所分配的内存结构频繁生成/丢弃。 请按原样使用kmalloc分配空间,除非您觉得所分配的内存结构会频繁生成/销毁。 例如,分配3360 skb=释放kmem _ cache _分配节点(缓存,GFP _ mask ) : kmem _缓存_可用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 循环经济模式下废碳粉再生利用与知识产权壁垒的博弈分析
- 异种金属焊接界面力学性能波动归因与实时补偿控制策略
- 建筑结构健康监测中分布式光纤应变与局部微裂缝关联性多尺度建模
- 工业级热电偶输入卡在-200℃至850℃极端工况下的可靠性验证体系
- 建筑物管道更新与电气系统升级方案
- starter Unit 2 keep tidy Section B project 2a-2d Guess what it is 说课稿- 2024-2025学年人教版英语七年级上册
- 10 计算工具的认识(教学设计)-2024-2025学年四年级上册数学人教版
- 7.1 自然特征与农业(说课稿)2025-2026学年八年级地理下册同步教学(人教版河北专版)
- 一、认识“microbit”说课稿-2025-2026学年初中信息技术新世纪版八年级下册2018-新世纪版2018
- 园区供水与消防系统联动方案
- 人民检察院刑事诉讼法律文书格式样本2022
- (高清版)DZT 0216-2020 煤层气储量估算规范
- 人教版四年级上册语文第一单元测试题(含答案)
- 储能电站项目建设流程详解
- 供应商尽职调查模板
- 饮用水配送方案
- 妊娠滋养细胞肿瘤护理查房课件
- 磁粉检测课件
- 日本银行业历史复盘与启示
- 有效管理的5大兵法学习分享-20.2.4
- 2022年湖北统招专升本英语真题带答案
评论
0/150
提交评论