对linux堆内存释放的总结

对linux堆内存释放的总结

ID:30163919

大小:19.15 KB

页数:8页

时间:2018-12-27

对linux堆内存释放的总结_第1页
对linux堆内存释放的总结_第2页
对linux堆内存释放的总结_第3页
对linux堆内存释放的总结_第4页
对linux堆内存释放的总结_第5页
资源描述:

《对linux堆内存释放的总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划对linux堆内存释放的总结  Linux进程使用内存的基本流程:  见图1  从图中我们可以看出,进程的堆,并不是直接建立在Linux的内核的内存分配策略上的,而是建立在glibc的堆管理策略上的,堆的管理是由glibc进行的。  所以我们调用free对malloc得到的内存进行释放的时候,并不是直接释放给操作系统,而是还给了glibc的堆管理实体,而glibc会在把实际的物理内存归还给系统的策略上做一些优化,

2、以便优化用户任务的动态内存分配过程。  那么glibc的堆管理器在什么时候才把物理内存归还给系统呢?  它会从堆的最大线性地址开始,从后向前计算用户任务当前有多少空闲的堆内存,比如在该图中,  它会认为有2048k的可释放内存,只有在该值大于某个特定的threshhold时,它才会把这些内存归还给系统。而在中间的“未使用”内存是不会归还给系统的,所以系统也不可能再利用这块物理内存页,也就是说系统的内存会为此减少,除非在它之前的堆内存都用free进行释放以后,glibc的堆管理器才有可能把该段内存归还给系统。目的-通过该培训

3、员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  由此,我们在使用malloc/free时应该小心,特别是在初始化时分配了好多内存,  但是在这之后却再也不需要这么多的内存了,而这块内存又没有达到threshhold值或者在堆的最高线性地址处有某块内存没有释放,但是它前面的所有堆内存都释放了;这种情况下,用户任务将会浪费一些物理内存,这在资源比较紧张

4、的嵌入式系统中是不可容忍的。  针对Linux内存管理知识学习总结  现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:  地址映射  ?内存管理的方式  ?缺页异常?  先来看一些基本的知识,在进程看来,内存分为内核态和用户态两部分,经典比例如下:  从用户态到内核态一般通过系统调用、中断来实现。用户态的内存被划分为不同的区域用于不同的目的:  当然内核态也不会无差别地使用,所以,其划分如下:  下面来仔细看这些内存是如何管理的。  地址目的-通

5、过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  在Linux内部的地址的映射过程为逻辑地址–>线性地址–>物理地址,物理地址最简单:地址总线中传输的数字信号,而线性地址和逻辑地址所表示的则是一种转换规则,线性地址规则如下:  这部分由MMU完成,其中涉及到主要的寄存器有CR0、CR3。机器指令中出现的是逻辑地址,逻辑地址规则如下:  在Li

6、nux中的逻辑地址等于线性地址,也就是说Inter为了兼容把事情搞得很复杂,Linux简化顺便偷个懒。  内存管理的方式  在系统boot的时候会去探测内存的大小和情况,在建立复杂的结构之前,需要用一个简单的方式来管理这些内存,这就是bootmem,简单来说就是位图,不过其中也有一些优化的思路。  bootmem再怎么优化,效率都不高,在要分配内存的时候毕竟是要去遍历,buddy系统刚好能解决这个问题:在内部保存一些2的幂次大小的空闲内存片段,如果要分配3page,去4page的列表里面取一个,分配3个之后将剩下的1个放回

7、去,内存释放的过程刚好是一个逆过程。用一个图来表示:  可以看到0、4、5、6、7都是正在使用的,那么,1、2被释放的时候,他们会合并吗?  1.staticinlineunsignedlong  2.__find_buddy_index(unsignedlongpage_idx,unsignedintorder)目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业

8、务技能及个人素质的培训计划  3.{  4.returnpage_idx^(1对linux堆内存释放的总结)XX-11-1814:40543人阅读评论(0)收藏举报  1、打开终端,切换到root用户,输入:free-m查看内存状态  [root@lxtlxt]#free-m  totalusedfre

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。