没有合适的资源?快使用搜索试试~ 我知道了~
linux进程的内存使用解析( 经典)
需积分: 10 9 下载量 40 浏览量
2008-11-14
20:05:50
上传
评论 1
收藏 97KB PDF 举报
温馨提示
试读
2页
进程XXX 占用了多少内存?这是个经常被问到,也经常被答错的问 题。Linux 进程的内存分配是个比较复杂的话题,而Linux 上的工具 往往把这个问题过分简单化,因此引出不少误解和困惑。
资源推荐
资源详情
资源评论
linux 下内存学习笔记
近日,一直在使用并学习着 linux,下面是我通过阅读别人的文章,整理出来的笔
记,供跟我一个级别的菜鸟参考学习吧,同时自己也可以复习。
1.内存的两个概念:虚拟内存和物理内存,在 linux 下都来自内核的支持。
Linux 在内存管理上份为两级,一级是线性区,类似于 00c73000‐00c88000,对
应于虚拟内存,它实际上不占用实际物理内存;一级是具体的物理页面,它对应我
们机器上的物理内存。
另外,还有一个概念--内存的延迟分配.Linux 内核在用户申请内存的时候,
只是给它分配了一个线性区(也就是虚存),并没有分配实际物理内存;只有当用户
使用这块内存的时候,内核才会分配具体的物理页面给用户,这时候才占用宝贵的
物理内存。内核释放物理页面是通过释放线性区,找到其所对应的物理页面,将其
全部释放的过程。
举例说明:
char*p=malloc(2048)//这里只是分配了虚拟内存 2048,并不占用实际内存。
strcpy(p,”123”)//分配了物理页面,虽然只是使用了 3 个字节,但内存还是为它
分配了 2048 字节的物理内存。
free(p)//通过虚拟地址,找到其所对应的物理页面,释放物理页面,释放线性
区。
我们知道用户的进程和内核是运行在不同的级别,进程与内核之间的通讯是通
过系统调用来完成的。进程在申请和释放内存,主要通过 brk,sbrk,mmap,unmmap
这几个系统调用,传递的参数主要是对应的虚拟内存。
注意一点,在进程只能访问虚拟内存,它实际上是看不到内核物理内存的使用,
这对于进程是完全透明的。
2.glibc 内存管理器
资源评论
xudaiyang3
- 粉丝: 3
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功