免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: snow_insky
打印 上一主题 下一主题

对Linux堆内存释放的总结 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015元宵节徽章
日期:2015-03-06 15:50:39
31 [报告]
发表于 2006-12-06 14:09 |只看该作者

.

恩 看来内核情景分析光看懂了还不够阿

论坛徽章:
0
32 [报告]
发表于 2006-12-06 16:47 |只看该作者

不错的文章, 比我我这两天看ULK的收获还大,看来一开始学习还是要这样

不错的文章, 比我我这两天看ULK的收获还大,看来一开始学习还是要这样
ULK有点太庞大了, 也许有了一定的了解之后, 再看比较好。

论坛徽章:
0
33 [报告]
发表于 2006-12-06 16:49 |只看该作者

回复 1楼 snow_insky 的帖子

好文章, 分析的透彻。醍醐灌顶

论坛徽章:
0
34 [报告]
发表于 2008-10-29 22:07 |只看该作者

关于free()的问题。。。。

“因为系统调用sbrk和brk仅仅只能做的事情是,移动堆的最大线性地址(top memory),它并不能处理中间的空闲空间”

请问free()如何处理中间的空闲空间的啊?会不会用到系统调用sys_munnmap呢?

论坛徽章:
0
35 [报告]
发表于 2008-10-29 22:25 |只看该作者
原帖由 wsnhyjj 于 2008-10-29 22:07 发表
“因为系统调用sbrk和brk仅仅只能做的事情是,移动堆的最大线性地址(top memory),它并不能处理中间的空闲空间”

请问free()如何处理中间的空闲空间的啊?会不会用到系统调用sys_munnmap呢?


No,整个堆在内核中只有一个vma结构表示,中间空的部分无法通过sys_munmap回收。

论坛徽章:
0
36 [报告]
发表于 2008-10-30 15:10 |只看该作者

请问free()是如何释放内存的啊?

free()中用到了哪些系统调用啊?

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34摩羯座
日期:2013-12-01 00:21:362015年迎新春徽章
日期:2015-03-04 09:49:45
37 [报告]
发表于 2008-11-06 16:20 |只看该作者
恩 大概看了 很不错谢谢
我先做个记号。回去慢慢看 呵呵

论坛徽章:
2
操作系统版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-15 06:20:00
38 [报告]
发表于 2009-04-07 19:12 |只看该作者
好文章,做个记号。

论坛徽章:
0
39 [报告]
发表于 2009-04-08 12:46 |只看该作者
malloc有两中途径.
1) 通过sys_brk获得内存. 这个不容易归还. 按LZ叙述的. 这是所谓的堆.
2) 通过sys_mmap获得内存, 这个立即归还.

论坛徽章:
0
40 [报告]
发表于 2009-04-09 00:09 |只看该作者

回复 #39 思一克 的帖子

哈 这个问题在c版那个辩论贴里面你都解释的很详细啦 赞一个
这个帖子也很好 期待楼主后面的力作
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP