进程内存管理进程内存管理的对象是进程线性地址空间上的内存镜像,这些内存镜像其实就是进程使用的虚拟内存区域(memory region) 。进程虚拟空间是个32或64位的“平坦”(独立的连续区间)地址空间(空间的具体大小取决于体系结构) 。要统一管理这么大的平坦空间可绝非易事,为了方便管理,虚拟空间被划分为许多大小可变的(但必须是4096的倍数)内存区域,这些区域在进程线性地址中像停车位一样有序排列 。这些区域的划分原则是“将访问属性一致的地址空间存放在一起”,所谓访问属性在这里无非指的是“可读、可写、可执行等” 。
如果你要查看某个进程占用的内存区域,可以使用命令cat /proc/<pid>/maps获得(pid是进程号),你会发现如下所示列表:
08048000 - 08049000 r-xp 00000000 03:03 439029 /home/mm/src/example?08049000 - 0804a000 rw-p 00000000 03:03 439029 /home/mm/src/example?……………?bfffe000 - c0000000 rwxp ffff000 00:00 0每行数据格式如下:
(内存区域)开始-结束 访问权限 偏移 主设备号:次设备号 i节点 文件 。
注意点:
推荐阅读
- 在Linux服务器间传输文件的小技巧
- Linux下的CPU使用率与服务器负载的关系与区别
- 华为手机光清理内存是没效果的,关闭这几个功能,能腾出大量空间
- 手机运行内存4G和6G有什么不同?差别不是一般大
- epoll原理简介
- 如何搭建嵌入式linux开发环境?
- 记一次Linux被入侵,服务器变“矿机”的全过程
- Linux中直接I/O原理
- 这些 Linux 指令你都掌握了吗
- 详解Linux命令中;、|、& 、&& 、 ||之间的区别
