Chinaunix首页 | 论坛 | 博客
  • 博客访问: 161149
  • 博文数量: 34
  • 博客积分: 2070
  • 博客等级: 大尉
  • 技术积分: 277
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-26 19:29
文章分类
文章存档

2015年(2)

2014年(4)

2013年(1)

2012年(1)

2011年(5)

2010年(21)

我的朋友

分类: LINUX

2015-09-24 17:04:57

1. 内存管理分为线性区和物理块区:内存先申请线性区,使用时再分配物理内存(触发缺页中断,申请物理页框,建立页表映射关系),释放通过线性区找到物理块,释放物理块和线性区。
2. brk、sbrk 低于128K内存申请(阈值128k可以通过glibc库函数进行设置)
3. mmap unmmap 大于128k内存申请
4. glibc发现heap顶部有大于128k内存空闲,通过brk或者sbrk来释放内存
5. 内存空洞 堆顶内存不释放导致下面的空闲内存释放不了
6. 在linux中,程序的加载,涉及到两个工具,linker 和loader。Linker主要涉及动态链接库的使用,loader主要涉及软件的加载。

linux程序内存空间分布 TEXT DATA BSS(Block Started By Symbol) HEAP STACK

32位系统程序内存布局


64位系统程序内存布局

管理员在2009年8月13日编辑了该文章文章。

-->
阅读(1587) | 评论(0) | 转发(0) |
0

上一篇:配置lnmp环境

下一篇:没有了

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