进程内存分配和/proc/xxx/maps简单分析
参考:http://blog.163.com/tao198352__4232/blog/static/8502064520105611157897/
:http://blog.chinaunix.net/uid-9543173-id-3571436.html
下面是一个Linux进程的标准的内存段布局:
maps文件内容输出:
[root@NGFW src]# cat -n /proc/10800/maps
1 00400000-0040a000 r-xp 00000000 08:01 156019 /secgate/bin/ddns
2 00609000-0060a000 rw-p 00009000 08:01 156019 /secgate/bin/ddns
3 025e9000-0260a000 rw-p 00000000 00:00 0 [heap]
4 7f3958000000-7f3958021000 rw-p 00000000 00:00 0
5 7f3958021000-7f395c000000 ---p 00000000 00:00 0
6 7f395c000000-7f395c021000 rw-p 00000000 00:00 0
7 7f395c021000-7f3960000000 ---p 00000000 00:00 0
8 7f3960000000-7f3960021000 rw-p 00000000 00:00 0
9 7f3960021000-7f3964000000 ---p 00000000 00:00 0
10 7f39643b8000-7f39643b9000 ---p 00000000 00:00 0
11 7f39643b9000-7f3964db9000 rw-p 00000000 00:00 0
12 7f3964db9000-7f3964dba000 ---p 00000000 00:00 0
13 7f3964dba000-7f39657ba000 rw-p 00000000 00:00 0
14 7f39657ba000-7f39657d0000 r-xp 00000000 08:01 114924 /lib64/libresolv-2.12.so
15 7f39657d0000-7f39659d0000 ---p 00016000 08:01 114924 /lib64/libresolv-2.12.so
16 7f39659d0000-7f39659d1000 r--p 00016000 08:01 114924 /lib64/libresolv-2.12.so
17 7f39659d1000-7f39659d2000 rw-p 00017000 08:01 114924 /lib64/libresolv-2.12.so
18 7f39659d2000-7f39659d4000 rw-p 00000000 00:00 0
19 7f39659d4000-7f39659d9000 r-xp 00000000 08:01 114961 /lib64/libnss_dns-2.12.so
20 7f39659d9000-7f3965bd8000 ---p 00005000 08:01 114961 /lib64/libnss_dns-2.12.so
21 7f3965bd8000-7f3965bd9000 r--p 00004000 08:01 114961 /lib64/libnss_dns-2.12.so
22 7f3965bd9000-7f3965bda000 rw-p 00005000 08:01 114961 /lib64/libnss_dns-2.12.so
23 7f3965bda000-7f3965be6000 r-xp 00000000 08:01 114980 /lib64/libnss_files-2.12.so
24 7f3965be6000-7f3965de6000 ---p 0000c000 08:01 114980 /lib64/libnss_files-2.12.so
25 7f3965de6000-7f3965de7000 r--p 0000c000 08:01 114980 /lib64/libnss_files-2.12.so
26 7f3965de7000-7f3965de8000 rw-p 0000d000 08:01 114980 /lib64/libnss_files-2.12.so
27 7f3965df1000-7f3965df2000 ---p 00000000 00:00 0
28 7f3965df2000-7f39667f2000 rw-p 00000000 00:00 0
29 7f39667f2000-7f396c683000 r--p 00000000 08:01 1679546 /usr/lib/locale/locale-archive
30 7f396c683000-7f396da94000 rw-s 00000000 00:10 45305 /dev/shm/sg_dbg_ring
31 7f396da94000-7f396daaa000 r-xp 00000000 08:01 114911 /lib64/libgcc_s-4.4.6-20110824.so.1
32 7f396daaa000-7f396dca9000 ---p 00016000 08:01 114911 /lib64/libgcc_s-4.4.6-20110824.so.1
33 7f396dca9000-7f396dcaa000 rw-p 00015000 08:01 114911 /lib64/libgcc_s-4.4.6-20110824.so.1
34 7f396dcaa000-7f396dd92000 r-xp 00000000 08:01 1663052 /usr/lib64/libstdc++.so.6.0.13
35 7f396dd92000-7f396df92000 ---p 000e8000 08:01 1663052 /usr/lib64/libstdc++.so.6.0.13
36 7f396df92000-7f396df99000 r--p 000e8000 08:01 1663052 /usr/lib64/libstdc++.so.6.0.13
37 7f396df99000-7f396df9b000 rw-p 000ef000 08:01 1663052 /usr/lib64/libstdc++.so.6.0.13
38 7f396df9b000-7f396dfb0000 rw-p 00000000 00:00 0
39 7f396dfb0000-7f396dfb2000 r-xp 00000000 08:01 114857 /lib64/libdl-2.12.so
40 7f396dfb2000-7f396e1b2000 ---p 00002000 08:01 114857 /lib64/libdl-2.12.so
41 7f396e1b2000-7f396e1b3000 r--p 00002000 08:01 114857 /lib64/libdl-2.12.so
42 7f396e1b3000-7f396e1b4000 rw-p 00003000 08:01 114857 /lib64/libdl-2.12.so
43 7f396e1b4000-7f396e237000 r-xp 00000000 08:01 114704 /lib64/libm-2.12.so
44 7f396e237000-7f396e436000 ---p 00083000 08:01 114704 /lib64/libm-2.12.so
45 7f396e436000-7f396e437000 r--p 00082000 08:01 114704 /lib64/libm-2.12.so
46 7f396e437000-7f396e438000 rw-p 00083000 08:01 114704 /lib64/libm-2.12.so
47 7f396e438000-7f396e586000 r-xp 00000000 08:01 155978 /secgate/lib/libxml2.so
48 7f396e586000-7f396e785000 ---p 0014e000 08:01 155978 /secgate/lib/libxml2.so
49 7f396e785000-7f396e791000 rw-p 0014d000 08:01 155978 /secgate/lib/libxml2.so
50 7f396e791000-7f396e792000 rw-p 00000000 00:00 0
51 7f396e792000-7f396e7c4000 r-xp 00000000 08:01 155979 /secgate/lib/libsg_xmldom.so
52 7f396e7c4000-7f396e9c3000 ---p 00032000 08:01 155979 /secgate/lib/libsg_xmldom.so
53 7f396e9c3000-7f396e9d6000 rw-p 00031000 08:01 155979 /secgate/lib/libsg_xmldom.so
54 7f396e9d6000-7f396ea56000 rw-p 00000000 00:00 0
55 7f396ea56000-7f396efc8000 r-xp 00000000 08:01 156399 /secgate/lib/libhs-2.1.so
56 7f396efc8000-7f396f1c7000 ---p 00572000 08:01 156399 /secgate/lib/libhs-2.1.so
57 7f396f1c7000-7f396f1cc000 rw-p 00571000 08:01 156399 /secgate/lib/libhs-2.1.so
58 7f396f1cc000-7f396f1e1000 r-xp 00000000 08:01 114701 /lib64/libz.so.1.2.3
59 7f396f1e1000-7f396f3e0000 ---p 00015000 08:01 114701 /lib64/libz.so.1.2.3
60 7f396f3e0000-7f396f3e1000 r--p 00014000 08:01 114701 /lib64/libz.so.1.2.3
61 7f396f3e1000-7f396f3e2000 rw-p 00015000 08:01 114701 /lib64/libz.so.1.2.3
62 7f396f3e2000-7f396f46e000 r-xp 00000000 08:01 1663748 /usr/lib64/libsqlite3.so.0.8.6
63 7f396f46e000-7f396f66d000 ---p 0008c000 08:01 1663748 /usr/lib64/libsqlite3.so.0.8.6
64 7f396f66d000-7f396f670000 rw-p 0008b000 08:01 1663748 /usr/lib64/libsqlite3.so.0.8.6
65 7f396f670000-7f396f671000 rw-p 00000000 00:00 0
66 7f396f671000-7f396f679000 r-xp 00000000 08:01 155914 /secgate/lib/libnuma.so.1
67 7f396f679000-7f396f879000 ---p 00008000 08:01 155914 /secgate/lib/libnuma.so.1
68 7f396f879000-7f396f87a000 rw-p 00008000 08:01 155914 /secgate/lib/libnuma.so.1
69 7f396f87a000-7f396f881000 r-xp 00000000 08:01 114913 /lib64/librt-2.12.so
70 7f396f881000-7f396fa80000 ---p 00007000 08:01 114913 /lib64/librt-2.12.so
71 7f396fa80000-7f396fa81000 r--p 00006000 08:01 114913 /lib64/librt-2.12.so
72 7f396fa81000-7f396fa82000 rw-p 00007000 08:01 114913 /lib64/librt-2.12.so
73 7f396fa82000-7f396fc74000 r-xp 00000000 08:01 155932 /secgate/lib/libsg_crypto.so.1.0.0
74 7f396fc74000-7f396fe73000 ---p 001f2000 08:01 155932 /secgate/lib/libsg_crypto.so.1.0.0
75 7f396fe73000-7f396fe99000 rw-p 001f1000 08:01 155932 /secgate/lib/libsg_crypto.so.1.0.0
76 7f396fe99000-7f396fe9d000 rw-p 00000000 00:00 0
77 7f396fe9d000-7f3970034000 r-xp 00000000 08:01 114900 /lib64/libc-2.12.so
78 7f3970034000-7f3970234000 ---p 00197000 08:01 114900 /lib64/libc-2.12.so
79 7f3970234000-7f3970238000 r--p 00197000 08:01 114900 /lib64/libc-2.12.so
80 7f3970238000-7f3970239000 rw-p 0019b000 08:01 114900 /lib64/libc-2.12.so
81 7f3970239000-7f397023e000 rw-p 00000000 00:00 0
82 7f397023e000-7f3970255000 r-xp 00000000 08:01 114959 /lib64/libpthread-2.12.so
83 7f3970255000-7f3970454000 ---p 00017000 08:01 114959 /lib64/libpthread-2.12.so
84 7f3970454000-7f3970455000 r--p 00016000 08:01 114959 /lib64/libpthread-2.12.so
85 7f3970455000-7f3970456000 rw-p 00017000 08:01 114959 /lib64/libpthread-2.12.so
86 7f3970456000-7f397045a000 rw-p 00000000 00:00 0
87 7f397045a000-7f3970493000 r-xp 00000000 08:01 155990 /secgate/lib/libevent.so
88 7f3970493000-7f3970693000 ---p 00039000 08:01 155990 /secgate/lib/libevent.so
89 7f3970693000-7f3970695000 rw-p 00039000 08:01 155990 /secgate/lib/libevent.so
90 7f3970695000-7f397071c000 r-xp 00000000 08:01 156006 /secgate/lib/libsg_sc.so
91 7f397071c000-7f397091c000 ---p 00087000 08:01 156006 /secgate/lib/libsg_sc.so
92 7f397091c000-7f3970932000 rw-p 00087000 08:01 156006 /secgate/lib/libsg_sc.so
93 7f3970932000-7f3970a02000 rw-p 00000000 00:00 0
94 7f3970a02000-7f3970a3c000 r-xp 00000000 08:01 155997 /secgate/lib/libsg_fm.so
95 7f3970a3c000-7f3970c3b000 ---p 0003a000 08:01 155997 /secgate/lib/libsg_fm.so
96 7f3970c3b000-7f3970c44000 rw-p 00039000 08:01 155997 /secgate/lib/libsg_fm.so
97 7f3970c44000-7f3970c4a000 rw-p 00000000 00:00 0
98 7f3970c4a000-7f3970c6a000 r-xp 00000000 08:01 114952 /lib64/ld-2.12.so
99 7f3970e05000-7f3970e0c000 r--s 00000000 08:01 1671450 /usr/lib64/gconv/gconv-modules.cache
100 7f3970e0c000-7f3970e3c000 r--p 00000000 08:01 222345 /secgate/etc/conf/locale/zh_CN/LC_MESSAGES/zh_msg.mo
101 7f3970e3c000-7f3970e48000 rw-s 00000000 00:10 45292 /dev/shm/sg_log_state
102 7f3970e48000-7f3970e52000 rw-s 00000000 00:10 45304 /dev/shm/sg_dbg_state
103 7f3970e52000-7f3970e5f000 rw-p 00000000 00:00 0
104 7f3970e67000-7f3970e69000 rw-p 00000000 00:00 0
105 7f3970e69000-7f3970e6a000 r--p 0001f000 08:01 114952 /lib64/ld-2.12.so
106 7f3970e6a000-7f3970e6b000 rw-p 00020000 08:01 114952 /lib64/ld-2.12.so
107 7f3970e6b000-7f3970e6c000 rw-p 00000000 00:00 0
108 7f3971000000-7f3971c00000 rw-s 00000000 00:12 45294 /mnt/huge/log-log_ring_0
109 7fff3e721000-7fff3e736000 rw-p 00000000 00:00 0 [stack]
110 7fff3e7ff000-7fff3e800000 r-xp 00000000 00:00 0 [vdso]
111 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
分析:
1 00400000-0040a000 r-xp 00000000 08:01 156019 /secgate/bin/ddns 代码段
2 00609000-0060a000 rw-p 00009000 08:01 156019 /secgate/bin/ddns 数据段
3 025e9000-0260a000 rw-p 00000000 00:00 0 [heap] 堆
4 7f3958000000-7f3958021000 rw-p 00000000 00:00 0 各个线程的栈区
......
13 7f3964dba000-7f39657ba000 rw-p 00000000 00:00 0
转载于:https://blog.51cto.com/mydiary2014/1575695
进程内存分配和/proc/xxx/maps简单分析相关推荐
- linux proc/xx/maps文件分析
转载:https://blog.csdn.net/lijzheng/article/details/23618365 Proc/pid/maps显示进程映射了的内存区域和访问权限.对应内核中的操作集为 ...
- Linux内核笔记--内存管理之用户态进程内存分配
内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ...
- SGI STL 内存分配方式及malloc底层实现分析
在STL中考虑到小型区块所可能造成的内存碎片问题,SGI STL设计了双层级配置器,第一级配置器直接使用malloc()和free();第二级配置器则视情况采用不同的策略:当配置区块超过128byte ...
- 【Linux 内核 内存管理】内存管理架构 ⑤ ( sbrk 内存分配系统调用代码示例 | 在 /proc/pid/maps 中查看进程堆内存详情 )
文章目录 一.sbrk 内存分配系统调用代码示例 二.在 /proc/pid/maps 中查看进程堆内存详情 本篇博客调用 sbrk 系统调用函数 , 申请并修改 堆内存 , 并在 /proc/pid ...
- Linux 操作系统原理 — 内存 — 内存分配算法
目录 文章目录 目录 前文列表 内存碎片 伙伴(Buddy)分配算法 Slab 算法 虚拟内存的分配 内核态内存分配 vmalloc 函数 kmalloc 用户态内存分配 malloc 申请内存 用户 ...
- LINUX进程内存占用情况如何查看的方法
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...
- linux kernel内存管理之/proc/meminfo下参数介绍
一.前言 /proc/meminfo是了解Linux系统内存状态的主要接口,里面统计了当前系统各类内存的使用状况,需要注意的是:这是从内核的角度来统计.我们常用的free,vmstat等指令都是通过/ ...
- linux进程的内存空间,Linux进程内存统计
一. 进程内存统计 cat /proc/[pid]/status 通过/proc/[pid]/status可以查看进程的内存使用情况,包括虚拟内存大小(VmSize),物理内存大小(VmRSS),数据 ...
- 《深入理解Java虚拟机》-----第3章 垃圾收集器与内存分配策略
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来. 3.1 概述 说起垃圾收集(Garbage Collection,G ...
最新文章
- redis内存行数据库细节
- esp32 怎么分配freertos 堆栈大小_嵌入式开发入门-从STM32CudeMX、FreeRtos、Proteu仿真开始...
- Java集合框架之四大接口、常用实现类,java基础面试笔试题
- python拦截数据包_使用Python进行TCP数据包注入(伪造)
- XE中rectangle实现渐变
- Illustrator2020中文版教程,如何在AI中使用蒙版来裁剪内容?
- Boruta特征筛选
- 与FPGA相关的独热码
- R语言及Rstudio入门小建议(一)
- 爬取雪球网的股票信息评论
- 同窗情【之一】(词21首)
- window本地运行hadoop 测试用例 failed to create symlink
- 华为云 CDN金秋特惠活动,这价可以
- Rstuio read.csv():列的数目比列的名字要多
- python自动化处理隐藏元素_处理隐藏元素
- MBT测试实例:做个“机器人”,使其随机、持续的对“web页面”做交互性测试(一)测试目标
- 如何快速学习STAR-CCM+软件解决工程实际问题
- python数据挖掘实战笔记——文本挖掘(8):用sklearn包进行关键字提取
- 小米公交卡服务器维护,小米公交卡如何退费 小米公交卡快速退费教程
- Android RTL布局适配
热门文章
- Perl5的OOP学习笔记
- 都有Python了,还要什么编译器
- 跟我斗图,我用Python爬虫下载几个G的表情砸死你
- python制作生日祝福_【中信项目案例分享】python 实现自动生成个性化生日贺卡...
- android 联系人编辑界面,android – 以编程方式编辑联系人的姓名/电话号码
- 逻辑回归,朴素贝叶斯,KMeans,决策树的不足和优势
- HDU1892(二维树状数组)
- 点分治问题 ----------- HDU6881 Tree Cutting or 2020杭电多校第10场 [点分治+思维]
- 点分治问题 ----------- 2019-2020 ICPC Asia Hong Kong Regional Contest C.Constructing Ranches[点分治+树状数组]
- Codeforces Round #370 (Div. 2)E. Memory and Casinos[期望概率+线段树区间合并]详细推导