cat /proc/maps 进程内存映射【转】】的更多相关文章

转自:http://blog.csdn.net/fisher_jiang/article/details/5063852 proc/<PID>/maps查看进程的虚拟地址空间是如何使用的.该文件有6列,分别为:地址:库在进程里地址范围权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有:偏移量:库在进程里地址范围设备:映像文件的主设备号和次设备号:节点:映像文件的节点号:路径: 映像文件的路径每项都与一个vm_area_struct结构成员对应,范例:应用程序的正文段(权限为r-xp…
转自:http://blog.csdn.net/zhoudengqing/article/details/41654293 版权声明:本文为博主原创文章,未经博主允许不得转载. 这一章介绍Linux内存管理和内存映射的奥秘.同时讲述设备驱动程序是如何使用“直接内存访问”(DMA)的.尽管你可能反对,认为DMA更属于硬件处理而不是软件接口,但我觉得与硬件控制比起来,它与内存管理更相关. 这一章比较高级:大多数驱动程序的作者并不需要太深入到系统内部.不过理解内存如何工作可以帮助你在设计驱动程序时有效…
本章内容分为三个部分: 第一部分讲述了mmap系统调用的实现过程.将设备内存直接映射到用户进程的地址空间,尽管不是所有设备都需要,但是能显著的提高设备性能. 如何跨越边界直接访问用户空间的内存页,一些相关的驱动程序需要这种能力.在很多情况下,内核执行了该种映射,而无需驱动程序的参与. 直接内存访问(DMA)I/O操作,它使得外设具有直接访问系统内存的能力. 一.Linux的内存管理 关注Linux内存管理实现的主要特性,而非讲述操作系统中内存管理的理论. 1.1 地址类型 Linux是一个虚拟内…
ps -aux | grep xxx USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 可以看到RSS,也就是物理内存占用,单位是KB.RSS是常驻内存集(Resident Set Size),表示该进程分配的内存大小.RSS不包括进入交换分区的内存.RSS包括共享库占用的内存(只要共享库在内存中)RSS包括所有分配的栈内存和堆内存. 另: ps -ef |grep xxx 可以看到父进程id. c…
Android系统内核基于Linux2.6+内核,因此,其在进程内存管理方面的非常多机制和Linux是非常相像的.首先,让我们来看一个典型的Android进程的内存镜像(App进程和Native本地进程略有区别,但原理是一样的): 和Linux一样,Android提供了基于/proc的"伪文件"系统来作为查看用户进程内存映像的接口(cat /proc/pid/maps).能够说,这是Android系统内核层开放给用户层关于进程内存信息的一扇窗户.通过它,我们能够查看到当前进程空间的内存…
以nginx 为例1.toptop -b -n 1 |grep nginx|awk '{print "VIRT:"$5,"RES:"$6,"cpu:"$9"%","mem:"$10"%"}' 或者简单的top -p 进程id. 2. ps aux | grep nginxVSZ -- 虚拟地址空间大小  --> 与top 的 VIRT 对应RSS -- 实际物理内存大小  --&g…
操作系统很早就开始使用内存映射文件(Memory Mapped File)来作为进程间的共享存储区,这是一种非常高效的进程通讯手段.Win32 API中也包含有创建内存映射文件的函数,然而,这些函数都运行于非托管环境下,在.NET中只能通过平台调用机制来使用它们,用起来很不方便.幸运的是,.NET 4.0新增加了一个System.IO. MemoryMappedFiles命名空间,其中添加了几个类和相应的枚举类型,从而使我们可以很方便地创建内存映射文件. 1 内存映射文件原理 所谓内存映射文件,…
C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing). 内存映射文件对于托管世界的开发人员来说似乎很陌生,但它确实已经是很远古的技术了,而且在操作系统中地位相当.实际上,任何想要共享数据的通信模型都会在幕后使用它. 内存映射文件究竟是个什么?内存映射文件允许你保留一块地址空间,然后将该物理存储映射到这块内存空间中进行操作.物理存储是文件管理,而内存映射文…
IPC进程间通信+共享内存Mapping                IPC(Inter-Process Communication.进程间通信).         文件映射(Mapping)是一种将文件内容映射到内存地址的技术,通过对映射内存,读写文件如同读写内存一般简单.        多个进程映射同一个文件映射对象,也即多个进程映射到同一个物理存储页面,因此.当一个进程向映射内存写入数据时,其它进程能够通过映射内存读取数据.通过这个机制实现进程间通信.                  …
内存映射文件进程间共享内存 内存映射文件的另一个功能是在进程间共享数据,它提供了不同进程共享内存的一个有效且简单的方法.后面的许多例子都要用到共享内存.共享内存主要是通过映射机制实现的.Windows 下进程的地址空间在逻辑上是相互隔离的,但在物理上却是重叠的.所谓的重叠是指同一块内存区域可能被多个进程同时使用.当调用CreateFileMapping 创建命名的内存映射文件对象时,Windows 即在物理内存申请一块指定大小的内存区域,返回文件映射对象的句柄hMap.为了能够访问这块内存区域必…