Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159310
  • 博文数量: 32
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-07 14:39
个人简介

微信hillpigt

文章分类
文章存档

2011年(1)

2010年(9)

2009年(8)

2008年(14)

我的朋友

分类: C/C++

2010-03-27 03:39:12

一直对c里的malloc()的内存存在的位置搞不清楚,最近发现了一些资料,才逐渐明白:

闲言不表,关于用brk()实现的,如下图:

Reference:
  1. 对上图的详细的解释
  2. 各种malloc的实现
  3. http://www.ibm.com/developerworks/linux/library/l-memory/ 关于heap是怎么来的,你要好好看看这个呀,以及怎么用brk(0)
关于使用mmap()来实现malloc()的参考:
  1. http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html


顺便发现这个网站还不错,写了很多技术类文章:

我们有这两句:

Since 2.3 release (glibc) uses a modified , based on "'s Malloc" ().

Memory on the is allocated as "chunks",

知道gnu的实现是用heap实现的。
所以在hack postgresql的代码的时候,palloc实际上还是在heap上操作的。所以在momjian的inside postgresql shared memory 里面的第11页的shared memory creation中还是有heap的增长箭头的。
阅读(2042) | 评论(0) | 转发(0) |
0

上一篇:database course

下一篇:星月神话

给主人留下些什么吧!~~