分类: 嵌入式
2017-02-07 16:17:15
/proc文件系统只存在于内存中,为用户提供一种与内核交互的方法。既可以获取内核里如cpu、内存、进程、线程等相关信息,又可以临时改变内核的某些参数。
资源相关信息
cat /proc/cpuinfo: cpu相关信息,如多核。
cat /proc/meminfo:物理内存的总大小、空闲大小。
cat /proc/mtd: flash的分区信息。
cat /proc/devices: 外接设备信息。
进程、线程相关信息
通过ps命令,查看特定进程的PID,ls /proc/$PID查看特定进程有哪些属性。
1. cat/proc/$PID/status 查看线程状态信息
Name:表示线程名
Tgid: 表示线程组ID,即当前线程为某个线程组下的一个线程。(如shell脚本创建一个进程,在该进程中创建多个线程。那线程组ID即为进程ID)
Threads:表示当前进程组的线程数量
VmPeak代表当前进程运行过程中占用内存的峰值.
VmSize代表进程现在正在占用的内存
VmLck代表进程已经锁住的物理内存的大小.锁住的物理内存不能交换到硬盘.
VmHWM是程序得到分配到物理内存的峰值.
VmRSS是程序现在使用的物理内存.
VmData:表示进程数据段的大小.
VmStk:表示进程堆栈段的大小.
VmExe:表示进程代码的大小.
VmLib:表示进程所使用LIB库的大小.
voluntary_ctxt_switches表示进程主动切换的次数.
nonvoluntary_ctxt_switches表示进程被动切换的次数.
2. cat/proc/$PID/task 查看线程组里的其他线程ID
如在某进程里创建了多个线程,则以该进程ID为线程组ID,cat/proc/$PID/task能查看其他线程ID,通过cat/proc/$PID/status能继续查看其他线程信息(线程信息十分有限,基本都是线程组信息)
3. cat/proc/$PID/fd 查看线程打开的文件描述符的数量。