/proc/pid/status 解读及部分对应代码

这篇文章详细解析了进程provider@2.4-se的status信息,包括进程名称、权限、状态(睡眠)、资源使用情况(如内存峰值、已打开文件描述符)以及信号、CPU和内存限制。特别关注了Umask、VM大小和不同类型的内存区域划分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cat camera hal 进程:cameraserver 26134 1 0 09:39:40 ? 00:01:06 android.hardware.camera.provider@2.4-service_64
信息如下:
PK0888:/ # cat /proc/26134/status
Name: provider@2.4-se
Umask: 0077
State: S (sleeping)
Tgid: 26134
Ngid: 0
Pid: 26134
PPid: 1
TracerPid: 0
Uid: 1047 1047 1047 1047
Gid: 1005 1005 1005 1005
FDSize: 512
Groups: 1004 1006 1026 2907 3010
VmPeak: 4366388 kB
VmSize: 4194884 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 404512 kB
VmRSS: 396040 kB
RssAnon: 324268 kB
RssFile: 70384 kB
RssShmem: 1388 kB
VmData: 872216 kB
VmStk: 756 kB
VmExe: 8 kB
VmLib: 85212 kB
VmPTE: 2280 kB
VmSwap: 0 kB
CoreDumping: 0
Threads: 42
SigQ: 0/20776
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000080000000
SigIgn: 0000000000000000
SigCgt: 0000000c400084f8
CapInh: 0000001000800000
CapPrm: 0000001000800000
CapEff: 0000001000800000
CapBnd: 0000001000800000
CapAmb: 0000001000800000
NoNewPrivs: 0
Seccomp: 0
Speculation_Store_Bypass: thread vulnerable
Cpus_allowed: ff
Cpus_allowed_list: 0-7
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 4106
nonvoluntary_ctxt_switches: 676

打印信息的代码:
int proc_pid_status(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task)

信息解读:

  1. Name: provider@2.4-se ——进程名
  2. Umask: 0077 ——创建文件默认权限补码
    设置了进程创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。
    此处Umask值为077,则创建文件的权限值为700。——待求证
  3. State: S (sleeping) ——进程状态
    R(runing): 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里,因此在单核CPU中处在运行状态的进程可以有多个,但是只能有一个进程在运行中。
    S(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠(interruptible sleep)),可中断的睡眠状态即操作系统可以将该进程中断,不管该进程是否已经完成任务。
    D(disk sleep): 有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待IO的结束
    T(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。
    t(tracing stop):
    X(dead): 这个状态只是一个返回状态,你不会在任务列表里看到这个状态
    Z(zombie): 是一个比较特殊的状态。当进程退出并且父进程没有读取到子进程退出的返回代码时就会产生僵死(尸)进程。
    僵死进程会以终止状态保持在进程表中,并且会
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值