欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux proc

程序员文章站 2022-06-22 09:51:59
...

Linux proc

之前课程设计要求写一个类似top和ps命令类似的进程内存管理。查阅了相关资料,运行进程相关进程都存储在/proc目录下,是个虚拟文件系统,体现了Linux一切皆文件的设计哲学。
终端输入

cd /proc
ls

Linux proc
以数字即为进程的PID,进入PID=1的文件夹。
Linux proc
目录下具有

  • cmdline — 启动当前进程的完整命令
  • cwd — 指向当前进程运行目录的一个符号链接
  • exe — 指向启动当前进程的可执行文件的符号链接
  • stat—当前进程的状态信息,数据格式经过压缩。

等文件。

aaa@qq.com:/proc/1# cat stat
1 (systemd) S 0 1 1 0 -1 4194560 28830 640283359 52 3235 509 460 293502 431358 20 0 1 0 4 38715392 1426 18446744073709551615 94143898238976 94143899664096 140725324458688 140725324454872 140304285084147 0 671173123 4096 1260 1 0 0 17 0 0 0 69 0 0 94143899671680 94143899817704 94143931887616 140725324463922 140725324463940 140725324463940 140725324464109 0

重点看status

aaa@qq.com:/proc/1# cat status
Name:   systemd                   
State:  S (sleeping)
Tgid:   1
Ngid:   0
Pid:    1
PPid:   0
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 128
Groups:
NStgid: 1
NSpid:  1
NSpgid: 1
NSsid:  1
VmPeak:    38960 kB               -----------虚拟内存。
VmSize:    37808 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      5868 kB
VmRSS:      5704 kB
VmData:     1532 kB               ------------进程数据段
VmStk:       132 kB               ------------进程栈
VmExe:      1392 kB
VmLib:      3684 kB
VmPTE:        88 kB
VmPMD:        12 kB
VmSwap:        0 kB
HugetlbPages:          0 kB
Threads:        1               ------------线程数
SigQ:   1/7856
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 7be3c0fe28014a03
SigIgn: 0000000000001000
SigCgt: 00000001800004ec
CapInh: 0000000000000000
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
CapAmb: 0000000000000000
Seccomp:        0
Cpus_allowed:   1
Cpus_allowed_list:      0
Mems_allowed:   00000000,00000001
Mems_allowed_list:      0          --------------线程切换(主动、被动)
voluntary_ctxt_switches:        73133
nonvoluntary_ctxt_switches:     1568
相关标签: OS