AndroidU之解析/proc/pid进程参数

1. /proc/pid 目录下各种参数:

cmdline:该文件包含了进程的完整命令行参数.
cwd:软连接,根目录   cwd -> /
environ:该文件包含了当前进程的环境变量。
exe:软连接,exe -> /system/bin/init
fd:该目录包含了当前进程打开的文件描述符的列表,可以进一步访问每个文件描述符对应的文件路径等信息。
mounts该文件列出了当前进程挂载的文件系统。
status该文件包含了当前进程的状态信息,如进程ID、父进程ID、用户ID、状态等。
stat该文件提供了当前进程的详细状态信息,如运行时间、CPU使用情况、内存使用情况等。
maps该文件提供了当前进程的内存映射信息,包括可执行文件、共享库、堆栈等。
oom_adj:该文件包含了当前进程的OOM(Out-of-Memory)调整值,用于内核决定在内存不足时终止哪些进程。
oom_score:该文件提供了当前进程的OOM分数,用于内核根据进程优先级进行内存回收。
sched:该目录包含了当前进程的调度器相关信息,如调度策略、优先级等。

2.实例:

以init 为列:

目录:/proc/1

(1) cat cmdline    

/system/bin/initsecond_stage

(2) ls -all cwd  软连接

lrwxrwxrwx 1 root root 0 2024-01-27 15:48:46.096936792 +0800 cwd -> /

(3) cat environ 环境变量

PATH=/product/bin

:/apex/com.android.runtime/bin

:/apex/com.android.art/bin

:/system_ext/bin

:/system/bin:/system/xbin

:/odm/bin

:/vendor/bin

:/vendor/xbinINIT_MODULE_DURATION_MS=3275INIT_AVB_VERSION=1.2FIRST_STAGE_STARTED_AT=1049720000SELINUX_STARTED_AT=4919411692

(4) ls -all exe 软连接

lrwxrwxrwx 1 root root 0 2024-01-27 15:48:46.096936792 +0800 exe -> /system/bin/init

(5) ls -all  fd

total 0
dr-x------ 2 root root  0 2024-01-27 15:48:46.096936792 +0800 .
dr-xr-xr-x 9 root root  0 2024-01-18 01:21:44.712000000 +0800 ..
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 0 -> /dev/null
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 1 -> /dev/null
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 10 -> socket:[24760]
lr-x------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 11 -> /proc/1/mounts
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 12 -> anon_inode:[eventpoll]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 13 -> anon_inode:[eventpoll]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 14 -> anon_inode:[eventfd]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 15 -> anon_inode:[eventpoll]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 16 -> anon_inode:[eventfd]
lr-x------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 17 -> mnt:[4026531840]
lr-x------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 18 -> mnt:[4026533499]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 19 -> socket:[24068]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 2 -> /dev/null
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 20 -> /dev/device-mapper
l-wx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 21 -> /sys/kernel/tracing/trace_marker
l-wx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 22 -> /dev/kmsg
l-wx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 23 -> /dev/kmsg
lr-x------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 24 -> /dev/input/event0
lr-x------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 25 -> /dev/input/event1
l-wx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 27 -> /dev/kmsg
lr-x------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 4 -> anon_inode:inotify
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 5 -> anon_inode:[eventpoll]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 6 -> anon_inode:[signalfd]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 7 -> anon_inode:[eventfd]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 8 -> socket:[24758]
lrwx------ 1 root root 64 2024-01-27 15:56:14.296936819 +0800 9 -> socket:[24759]
 

(6) cat mounts

/dev/block/dm-2 / ext4 ro,seclabel,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,size=3798748k,nr_inodes=949687,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600,ptmxmode=000 0 0
proc /proc proc rw,relatime,gid=3009,hidepid=invisible 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
tmpfs /mnt tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=755,gid=1000 0 0
/dev/block/dm-6 /mnt/scratch f2fs rw,lazytime,seclabel,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,alloc_mode=reuse,checkpoint_merge,fsync_mode=posix 0 0
tmpfs /mnt/installer tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=755,gid=1000 0 0
tmpfs /mnt/androidwritable tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=755,gid=1000 0 0
/dev/block/by-name/metadata /metadata ext4 rw,seclabel,nosuid,nodev,noatime,discard 0 0
/dev/block/dm-4 /vendor ext4 ro,seclabel,relatime 0 0
overlay /vendor overlay ro,seclabel,noatime,lowerdir=/vendor,upperdir=/mnt/scratch/overlay/vendor/upper,workdir=/mnt/scratch/overlay/vendor/work,override_creds=off 0 0
/dev/block/dm-1 /product ext4 ro,seclabel,relatime 0 0
overlay /product overlay ro,seclabel,noatime,lowerdir=/product,upperdir=/mnt/scratch/overlay/product/upper,workdir=/mnt/scratch/overlay/product/work,override_creds=off 0 0
/dev/block/dm-5 /vendor_dlkm ext4 ro,seclabel,relatime 0 0
overlay /vendor_dlkm overlay ro,seclabel,noatime,lowerdir=/vendor_dlkm,upperdir=/mnt/scratch/overlay/vendor_dlkm/upper,workdir=/mnt/scratch/overlay/vendor_dlkm/work,override_creds=off 0 0
/dev/block/dm-0 /odm_dlkm ext4 ro,seclabel,relatime 0 0
overlay /odm_dlkm overlay ro,seclabel,noatime,lowerdir=/odm_dlkm,upperdir=/mnt/scratch/overlay/odm_dlkm/upper,workdir=/mnt/scratch/overlay/odm_dlkm/work,override_creds=off 0 0
overlay /system overlay ro,seclabel,noatime,lowerdir=/system,upperdir=/mnt/scratch/overlay/system/upper,workdir=/mnt/scratch/overlay/system/work,override_creds=off 0 0
tmpfs /apex tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=755 0 0
tmpfs /linkerconfig tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=755 0 0
none /dev/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
none /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime,memory_recursiveprot 0 0
none /dev/cpuctl cgroup rw,nosuid,nodev,noexec,relatime,cpu 0 0
none /dev/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset,noprefix,release_agent=/sbin/cpuset_release_agent 0 0
none /dev/memcg cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
tracefs /sys/kernel/tracing tracefs rw,seclabel,relatime,gid=3012 0 0
debugfs /sys/kernel/debug debugfs rw,seclabel,relatime 0 0
none /config configfs rw,nosuid,nodev,noexec,relatime 0 0
binder /dev/binderfs binder rw,relatime,max=1048576,stats=global 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime 0 0
pstore /sys/fs/pstore pstore rw,seclabel,nosuid,nodev,noexec,relatime 0 0
/dev/block/by-name/protect1 /mnt/vendor/protect_f ext4 rw,seclabel,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1 0 0
/dev/block/by-name/protect2 /mnt/vendor/protect_s ext4 rw,seclabel,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1 0 0
/dev/block/by-name/nvdata /mnt/vendor/nvdata ext4 rw,seclabel,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1 0 0
/dev/block/by-name/nvcfg /mnt/vendor/nvcfg ext4 rw,seclabel,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1 0 0
/dev/block/by-name/persist /mnt/vendor/persist ext4 rw,seclabel,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1 0 0
/dev/block/by-name/carrier /mnt/carrier ext4 rw,seclabel,nosuid,nodev,noatime,discard,noauto_da_alloc 0 0
/dev/block/by-name/tnpst /mnt/tnpst ext4 rw,seclabel,nosuid,nodev,noatime,discard,noauto_da_alloc 0 0
/dev/block/by-name/poweron_info /mnt/poweron_info ext4 rw,seclabel,nosuid,nodev,noatime,discard,noauto_da_alloc 0 0
tmpfs /storage tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=755,gid=1000 0 0
adb /dev/usb-ffs/adb functionfs rw,relatime 0 0
mtp /dev/usb-ffs/mtp functionfs rw,relatime 0 0
ptp /dev/usb-ffs/ptp functionfs rw,relatime 0 0
/dev/block/dm-37 /data f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
tmpfs /linkerconfig tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=755 0 0
/dev/block/loop6 /apex/com.android.vndk.v31@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop5 /apex/com.android.btservices@339990000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop6 /apex/com.android.vndk.v31 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop5 /apex/com.android.btservices ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop9 /apex/com.android.cellbroadcast@331910000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop9 /apex/com.android.cellbroadcast ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop10 /apex/com.android.neuralnetworks@331310000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop10 /apex/com.android.neuralnetworks ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop11 /apex/com.android.resolv@331820000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop11 /apex/com.android.resolv ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop12 /apex/com.android.vndk.v30@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop12 /apex/com.android.vndk.v30 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop13 /apex/com.android.runtime@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop13 /apex/com.android.runtime ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop14 /apex/com.google.mainline.primary.libs@331950000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop15 /apex/com.android.media@331911000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop15 /apex/com.android.media ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-34 /apex/com.android.ondevicepersonalization@340821000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-34 /apex/com.android.ondevicepersonalization ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-33 /apex/com.android.adservices@341316030 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-33 /apex/com.android.adservices ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop17 /apex/com.android.vndk.v33@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop17 /apex/com.android.vndk.v33 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop18 /apex/com.android.i18n@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop18 /apex/com.android.i18n ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop19 /apex/com.android.sdkext@331812000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop19 /apex/com.android.sdkext ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop20 /apex/com.android.apex.cts.shim@1 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop20 /apex/com.android.apex.cts.shim ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop21 /apex/com.android.uwb@331910010 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop21 /apex/com.android.uwb ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop22 /apex/com.android.extservices@331814220 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop22 /apex/com.android.extservices ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop23 /apex/com.android.art@331813100 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop24 /apex/com.android.conscrypt@331413000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop23 /apex/com.android.art ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop24 /apex/com.android.conscrypt ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop25 /apex/com.android.tzdata@331910000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop25 /apex/com.android.tzdata ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop26 /apex/com.android.permission@331913010 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop27 /apex/com.android.appsearch@331311020 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop26 /apex/com.android.permission ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop27 /apex/com.android.appsearch ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop28 /apex/com.android.adbd@331610002 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop28 /apex/com.android.adbd ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-37 /data/user/0 f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/loop29 /apex/com.android.media.swcodec@331911000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
tmpfs /data_mirror tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=700,gid=1000 0 0
/dev/block/loop29 /apex/com.android.media.swcodec ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop30 /apex/com.android.mediaprovider@331918000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop30 /apex/com.android.mediaprovider ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop31 /apex/com.android.scheduling@331113000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop31 /apex/com.android.scheduling ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-37 /data_mirror/data_ce/null f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /data_mirror/data_ce/null/0 f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/loop33 /apex/com.android.tethering@331910040 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-23 /apex/com.android.os.statsd@341114000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop33 /apex/com.android.tethering ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-23 /apex/com.android.os.statsd ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-37 /data_mirror/data_de/null f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/loop32 /apex/com.android.ipsec@331910010 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/loop32 /apex/com.android.ipsec ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-37 /data_mirror/cur_profiles f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /data_mirror/ref_profiles f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-35 /apex/com.android.wifi@339990000 ext4 ro,dirsync,seclabel,nodev,noatime 0 0
/dev/block/dm-35 /apex/com.android.wifi ext4 ro,dirsync,seclabel,nodev,noatime 0 0
tmpfs /apex/apex-info-list.xml tmpfs rw,seclabel,nosuid,nodev,noexec,relatime,size=3798748k,nr_inodes=949687,mode=755 0 0
/dev/block/by-name/mcf_ota_a /mnt/vendor/mdota ext4 ro,seclabel,noatime 0 0
/dev/fuse /mnt/installer/0/emulated fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
/dev/fuse /mnt/androidwritable/0/emulated fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
/dev/fuse /mnt/user/0/emulated fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
/dev/fuse /storage/emulated fuse rw,lazytime,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other 0 0
/dev/block/dm-37 /mnt/pass_through/0/emulated f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /mnt/androidwritable/0/emulated/0/Android/data f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /mnt/installer/0/emulated/0/Android/data f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /mnt/user/0/emulated/0/Android/data f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /storage/emulated/0/Android/data f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /mnt/androidwritable/0/emulated/0/Android/obb f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /mnt/installer/0/emulated/0/Android/obb f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /mnt/user/0/emulated/0/Android/obb f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
/dev/block/dm-37 /storage/emulated/0/Android/obb f2fs rw,lazytime,seclabel,nosuid,nodev,noatime,background_gc=on,discard,no_heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,extent_cache,mode=adaptive,active_logs=6,reserve_root=134217,resuid=0,resgid=1065,inlinecrypt,alloc_mode=default,checkpoint_merge,fsync_mode=nobarrier 0 0
 

(7) cat status  

VmPeak: 表示进程所占用最大虚拟内存大小
VmSize: 表示进程当前虚拟内存大小
VmLck: 表示被锁定的内存大小
VmHWM: 表示进程所占用物理内存的峰值
VmRSS: 表示进程当前占用物理内存的大小(与procrank中的RSS)
VmData: 表示进程数据段的大小
VmStk: 表示进程堆栈段的大小
VmExe: 表示进程代码的大小
VmLib: 表示进程所使用共享库的大小
VmPTE: 表示进程页表项的大小

status参数含义

1. Name: 进程的名称,这里是"init",通常是进程的可执行文件的名称。
2. Umask: 进程的文件创建权限掩码。
3. State: 进程的状态,这里是"S (sleeping)",表示进程处于休眠状态。
4. Tgid: 进程的线程组ID。
5. Ngid: 进程的NUMA节点组ID。
6. Pid: 进程的ID。
7. PPid: 父进程的ID。
8. TracerPid: 跟踪该进程的调试器的进程ID。
9. Uid: 进程的用户ID,包括实际用户ID、有效用户ID、保存设置用户ID和文件系统用户ID。
10. Gid: 进程的组ID,包括实际组ID、有效组ID、保存设置组ID和文件系统组ID。
11. FDSize: 进程打开文件描述符的数量。 启动该进程的用户所处组。由于是root,所以为0。
12. Groups: 进程所属的用户组列表。
13. VmPeak: 进程的峰值虚拟内存使用量(单位:kB)。
14. VmSize: 进程当前的虚拟内存使用量(单位:kB)。表示进程所占用的内存,包含交换分区
15. VmLck: 进程锁定的内存量(单位:kB)。

表示进程被锁住的内存,不允许交换到磁盘。需要使用系统调用mlock实现锁内存。相对于VMPin, VmLck被锁住的内存可以被内核在RAM中移动,程序下一次访问该页可能会触发软缺页中断,这对于一般程序来说没有影响,但对于硬实时的程序来说,这种错误不能被接受。
16. VmPin: 进程固定的内存量(单位:kB)。

固定内存是固定在特定页框位置的锁定内存。固定的页面既不能被移除物理内存,也不能被内核在RAM中移动.
17. VmHWM: 进程的峰值物理内存使用量(单位:kB)。

    表示程序分配到的物理内存峰值
18. VmRSS: 进程当前的物理内存使用量(单位:kB)。
19. RssAnon: 进程匿名页的物理内存使用量(单位:kB)。
20. RssFile: 进程文件缓存的物理内存使用量(单位:kB)。
21. RssShmem: 进程共享内存的物理内存使用量(单位:kB)。
22. VmData: 进程数据段的物理内存使用量(单位:kB)。
23. VmStk: 进程堆栈的物理内存使用量(单位:kB)。
24. VmExe: 进程可执行代码的物理内存使用量(单位:kB)。
25. VmLib: 进程共享库的物理内存使用量(单位:kB)。
26. VmPTE: 进程页表的物理内存使用量(单位:kB)。
27. VmPMD: 进程PMD页的物理内存使用量(单位:kB)。
28. VmSwap: 进程使用的交换空间大小(单位:kB)。
29. Threads: 进程的线程数。
30. SigQ: 进程待处理的信号队列长度。
31. SigPnd: 进程挂起的信号集。
32. ShdPnd: 进程等待的共享内存信号集。
33. SigBlk: 进程阻塞的信号集。
34. SigIgn: 进程忽略的信号集。
35. SigCgt: 进程捕获的信号集。
36. CapInh: 进程继承的能力。
37. CapPrm: 进程能力限制。
38. CapEff: 进程当前的有效能力。
39. CapBnd: 进程绑定的能力。
40. CapAmb: 进程的可选能力。
41. Seccomp: 进程使用的seccomp模式。
42. Speculation_Store_Bypass: 未知状态。
43. Cpus_allowed: 进程允许运行的CPU掩码。
44. Cpus_allowed_list: 进程允许运行的CPU列表。
45. Mems_allowed: 进程允许使用的NUMA节点掩码。
46. Mems_allowed_list: 进程允许使用的NUMA节点列表。
47. voluntary_ctxt_switches: 进程主动上下文切换
48. nonvoluntary_ctxt_switches: 进程被迫的上下文切换次数。

Name:    init
Umask:    0000

// 进程状态,"R (running)", "S (sleeping)", "D (disk sleep)", "T (stopped)", "T(tracing stop)", //    "Z (zombie)", or "X (dead)"

State:    S (sleeping)

// 线程ID,准确的说是主线程ID,因为程序a.out 有两个线程
Tgid:    1
Ngid:    0
Pid:    1

//父进程ID
PPid:    0
TracerPid:    0

//解释:

//        第一列RUID:实际UID,表示程序执行的用户UID。

//        第二列EUID:有效UID,表示进程执行时,对文件的访问权限。

//        第三列SUID:保存设置用户ID,作为effective user ID的副本,在执行exec调用时后能重新恢复原来的effectiv user ID。

//        第四列FSUID:目前进程的文件系统的用户识别码.一般情况下,文件系统的用户识别码(fsuid)与有效的用户识别码(euid)是相同的

Uid:    0    0    0    0
Gid:    0    0    0    0

//进程分配的文件描述符的最大值。只增不减
FDSize:    64
Groups:    3009 

//进程所占用最大虚拟内存大小
VmPeak:    11003312 kB

/虚拟内存大小:10889100kB =7.09MB = 10.47GB
VmSize:    10985876 kB
VmLck:           0 kB
VmPin:           0 kB
VmHWM:       15264 kB

///实际占物理内存大小: 7264kB = 7.09MB
VmRSS:        7264 kB
RssAnon:        2432 kB
RssFile:        3052 kB
RssShmem:        1780 kB
VmData:       21616 kB
VmStk:         132 kB
VmExe:        1472 kB
VmLib:        5340 kB
VmPTE:         388 kB
VmSwap:        3132 kB
CoreDumping:    0
THP_enabled:    1
Threads:    4
SigQ:    0/24197
SigPnd:    0000000000000000
ShdPnd:    0000000000000000
SigBlk:    0000000080010000
SigIgn:    0000002000000000
SigCgt:    0000004c400094f8
CapInh:    0000000000000000
CapPrm:    000001ffffffffff
CapEff:    000001ffffffffff
CapBnd:    000001ffffffffff
CapAmb:    0000000000000000
NoNewPrivs:    0
Seccomp:    0
Seccomp_filters:    0
Speculation_Store_Bypass:    thread vulnerable
Cpus_allowed:    ff
Cpus_allowed_list:    0-7
Mems_allowed:    1
Mems_allowed_list:    0

//voluntary_ctxt_switches表示进程主动切换的次数.

voluntary_ctxt_switches:    22634

//nonvoluntary_ctxt_switches表示进程被动切换的次数.
nonvoluntary_ctxt_switches:    3407

(8) cat stat

1 (init) S 0 0 0 0 -1 1077936384 29200 103784829 760 2069 2163 4780 118627 158282 20 0 4 0 1 11249537024 1816 18446744073709551615 366896521216 366898028208 549396430032 0 0 0 65536 0 1073779960 0 0 0 17 2 0 0 20 0 0 366898052008 366898052480 367917428736 549396430530 549396430560 549396430560 549396430823 0

(9) cat maps 

7d13be7000-7d13c07000 rw-s 00000000 00:10 291                            /dev/__properties__/u:object_r:system_mtk_app32_boost_prop:s0


7d13c07000-7d13c27000 rw-s 00000000 00:10 290                            /dev/__properties__/u:object_r:system_mtk_amslog_prop:s0
7d13c27000-7d13c47000 rw-s 00000000 00:10 289                            /dev/__properties__/u:object_r:system_mtk_amsaal_prop:s0
7d13c47000-7d13c67000 rw-s 00000000 00:10 288                            /dev/__properties__/u:object_r:system_mtk_aee_basic_prop:s0
7d13c67000-7d13c87000 rw-s 00000000 00:10 287                            /dev/__properties__/u:object_r:system_mtk_acs_version_prop:s0
7d13c87000-7d13ca7000 rw-s 00000000 00:10 286                            /dev/__properties__/u:object_r:system_mtk_acs_url_prop:s0
7d13ca7000-7d13cc7000 rw-s 00000000 00:10 285                            /dev/__properties__/u:object_r:system_mtk_acs_support_prop:s0
7d13cc7000-7d13ce7000 rw-s 00000000 00:10 284                            /dev/__properties__/u:object_r:system_mtk_aal_prop:s0
7d13ce7000-7d13d07000 rw-s 00000000 00:10 283                            /dev/__properties__/u:object_r:system_lmk_prop:s0
7d13d07000-7d13d27000 rw-s 00000000 00:10 282                            /dev/__properties__/u:object_r:system_jvmti_agent_prop:s0
7d13d27000-7d13d47000 rw-s 00000000 00:10 281                            /dev/__properties__/u:object_r:system_boot_reason_prop:s0
7d13d47000-7d13d67000 rw-s 00000000 00:10 280                            /dev/__properties__/u:object_r:system_adbd_prop:s0
7d13d67000-7d13d87000 rw-s 00000000 00:10 279                            /dev/__properties__/u:object_r:suspend_prop:s0
7d13d87000-7d13da7000 rw-s 00000000 00:10 278                            /dev/__properties__/u:object_r:surfaceflinger_prop:s0
7d13da7000-7d13dc7000 rw-s 00000000 00:10 277                            /dev/__properties__/u:object_r:surfaceflinger_display_prop:s0
7d13dc7000-7d13de7000 rw-s 00000000 00:10 276                            /dev/__properties__/u:object_r:surfaceflinger_color_prop:s0
7d13de7000-7d13e07000 rw-s 00000000 00:10 275                            /dev/__properties__/u:object_r:storagemanager_config_prop:s0
7d13e07000-7d13e27000 rw-s 00000000 00:10 274                            /dev/__properties__/u:object_r:storage_config_prop:s0
7d13e27000-7d13e47000 rw-s 00000000 00:10 273                            /dev/__properties__/u:object_r:sqlite_log_prop:s0
7d13e47000-7d13e67000 rw-s 00000000 00:10 272                            /dev/__properties__/u:object_r:socket_hook_prop:s0
7d13e67000-7d13e87000 rw-s 00000000 00:10 271                            /dev/__properties__/u:object_r:soc_prop:s0
 

(10) cat oom_adj

-17

(11) cat oom_score               

0

(12)cat sched

 init (1, #threads: 4)
-------------------------------------------------------------------
se.exec_start                                :     833409303.923943
se.vruntime                                  :      31744541.336752
se.sum_exec_runtime                          :         29869.525946
se.nr_migrations                             :                15473
se.statistics.sum_sleep_runtime              :     833975532.331599
se.statistics.wait_start                     :             0.000000
se.statistics.sleep_start                    :     834009877.397613
se.statistics.block_start                    :             0.000000
se.statistics.sleep_max                      :         91757.569295
se.statistics.block_max                      :           692.283232
se.statistics.exec_max                       :            11.469385
se.statistics.slice_max                      :             8.928923
se.statistics.wait_max                       :            17.931385
se.statistics.wait_sum                       :          1652.526643
se.statistics.wait_count                     :                23555
se.statistics.iowait_sum                     :            56.968156
se.statistics.iowait_count                   :                  188
se.statistics.nr_migrations_cold             :                    0
se.statistics.nr_failed_migrations_affine    :                    0
se.statistics.nr_failed_migrations_running   :                 8046
se.statistics.nr_failed_migrations_hot       :                  126
se.statistics.nr_forced_migrations           :                   34
se.statistics.nr_wakeups                     :                21137
se.statistics.nr_wakeups_sync                :                 2079
se.statistics.nr_wakeups_migrate             :                14333
se.statistics.nr_wakeups_local               :                 1469
se.statistics.nr_wakeups_remote              :                19668
se.statistics.nr_wakeups_affine              :                 1669
se.statistics.nr_wakeups_affine_attempts     :                 4409
se.statistics.nr_wakeups_passive             :                    0
se.statistics.nr_wakeups_idle                :                    0
avg_atom                                     :             1.126811
avg_per_cpu                                  :             1.930428
nr_switches                                  :                26508
nr_voluntary_switches                        :                23076
nr_involuntary_switches                      :                 3432
se.load.weight                               :              1048576
se.avg.load_sum                              :                  294
se.avg.runnable_sum                          :               301472
se.avg.util_sum                              :               301472
se.avg.load_avg                              :                    8
se.avg.runnable_avg                          :                    8
se.avg.util_avg                              :                    8
se.avg.last_update_time                      :      832949137913856
se.avg.util_est.ewma                         :                   80
se.avg.util_est.enqueued                     :                   80
uclamp.min                                   :                    0
uclamp.max                                   :                 1024
effective uclamp.min                         :                    0
effective uclamp.max                         :                 1024
policy                                       :                    0
prio                                         :                  120
clock-delta                                  :                   77

小知识:

1. /proc/[PID]/maps文件

Unix中,所有内容都是一个文件,即使它不是真正的文件,也像对待文件一样进行处理和访问。这包括内核的数据结构,Linux也不例外。Linux内核允许我们通过/proc/伪文件系统访问和读取其数据结构。然后,每个进程在/proc/[PID]中都有自己的文件夹。这里的文件和子文件夹包含有关该过程的许多有用和重要的信息,但是今天我们将仅关注一个文件:/proc/[PID]/maps.

/proc/[PID]/maps显示进程的映射内存的图表。当我们说映射内存时,我们指的是与文件具有一对一对应关系的虚拟内存段。此映射使应用程序可以通过直接读写内存来修改和访问文件。这意味着当程序访问文件时,该文件最终将被记录在其/proc/[PID]/maps文件中.

/proc/[PID]/maps还向我们显示了该过程对每个段具有哪些权限,这可以帮助我们确定流程编辑了哪些文件以及读取了哪些文件。这是普通/proc/PID/maps文件的一小段显示:

7d13be7000-7d13c07000 rw-s 00000000 00:10 291                            /dev/__properties__/u:object_r:system_mtk_app32_boost_prop:s0

(1) 地址-第一列显示该段的开始和结束地址。7d13be7000-7d13c07000

(2) 权限–此列显示该流程对细分受众群拥有的权限。r/w/x是通常的读/写/执行,而最后一个字母是s或p,分别表示共享或私有。 rw-s

(3) 偏移量–这是自文件开头的偏移量,以便能够计算映射数据的起始地址。有时,段不是从文件映射的(在这种情况下,path列将具有该段性质的标识符,如下所述),在这种情况下,偏移量仅保留为0。 00000000

(4) 设备–从文件映射段时,此列中将显示存储文件的设备的十六进制数。00:10

(5) 索引节点(索引节点) –如果段来自文件,则这是文件的索引节点号。291

(6) 路径–这是文件的路径(如果有)。如果段是同义结构,则可以是[heap],[stack]或[vsdo]。/dev/__properties__/u:object_r:system_mtk_app32_boost_prop:s0

(2)/proc/[PID]/sched:

显示与相关调度实体有关的信息。在读取这个文件时,将调用 kernel-5.10/kernel/sched/debug.c 中定义的 proc_sched_show_task() 函数.

/proc//sched

$cat /proc/28733/sched    

cpu_test (28733, #threads: 1)

---------------------------------------------------------

se.exec_start       :    833409303.923943  //此进程最近被调度到的开始执行时刻(这个值是每次update_curr都进行更新)

se.vruntime        :       31744541.336752  //虚拟运行时间

se.sum_exec_runtime:       29869.525946  //累计运行的物理时间时间

se.statistics.wait_start       :             0.000000  //最近一次当前进程被入队的时刻

se.statistics.sleep_start      :             834009877.397613  //此进程最近一次被从队列里取出,并被置S状态的时刻

se.statistics.block_start      :             0.000000  //此进程最近一次被从队列里取出,并被置D状态的时刻

se.statistics.sleep_max      :             91757.569295  //最长处于S状态时间

se.statistics.block_max      :             692.283232  //最长处于D状态时间

se.statistics.exec_max        :             11.469385  //最长单次执行时间

se.statistics.slice_max       :           8.928923  //曾经获得时间片的最长时间

se.statistics.wait_max       :             17.931385  //最长在就绪队列里的等待时间

se.statistics.wait_sum       :            1652.526643  //累计在就绪队列里的等待时间

se.statistics.wait_count     :                 3147  //累计等待次数

se.iowait_sum      :           56.968156  //io等待时间

se.statistics.iowait_count    :                   67 //io等待次数  io_schedule调用次数

sched_info.bkl_count:                    0  //此进程大内核锁调用次数

se.nr_migrations    :                    0 //需要迁移当前进程到其他cpu时累加此字段

se.statistics.nr_migrations_cold:                    0

se.statistics.nr_failed_migrations_affine:           194  //进程设置了cpu亲和,进程迁移时检查失败的次数

se.statistics.nr_failed_migrations_running:           8046 

se.statistics.nr_failed_migrations_hot:               0  //当前进程因为是cache hot导致迁移失败的次数

se.statistics.nr_forced_migrations :                  0  //在当前进程cache hot下,由于负载均衡尝试多次失败,强行进行迁移的次数

se.statistics.nr_wakeups         :                 21137  //被唤醒的累计次数(从不可运行到可运行)

se.statistics.nr_wakeups_sync    :                2079  //同步唤醒次数,即a唤醒b,a立刻睡眠,b被唤醒的次数

se.statistics.nr_wakeups_migrate  :                 14333 //被唤醒得到调度的当前cpu,不是之前睡眠的cpu的次数

se.statistics.nr_wakeups_local     :                1469 //被本地唤醒的次数(唤醒后在当前cpu上执行)

se.statistics.nr_wakeups_remote   :                19668 //非本地唤醒累计次数

se.statistics.nr_wakeups_affine    :                1669 //考虑了任务的cache亲和性的唤醒次数

se.statistics.nr_wakeups_affine_attempts:            4409

se.statistics.nr_wakeups_passive  :                    0

se.statistics.nr_wakeups_idle     :                    0

avg_atom            :           1.126811 //本进程平均耗时sum_exec_runtime/ nr_switches

avg_per_cpu           :             1.930428

nr_switches            :                 26508 //主动切换和被动切换的累计次数

nr_voluntary_switches   :                    23076 //主动切换次数(由于prev->state为不可运行状态引起的切换)

nr_involuntary_switches  :                 3432 //被动切换次数

se.load.weight          :                 1048576  //该se的load

policy                 :                    0  //调度策略 normal

prio                   :                  120  //优先级(nice=0)

clock-delta             :                   77

(3)/proc//schedstat

$cat /proc/28733/schedstat

33248536857 1897887092 29463
First: time spent on the cpu, task->se.sum_exec_runtime,这个值与上面的se.sum_exec_runtime一样只是上面的除于1,000,000
Second:time spent waiting on a runqueue,这个值与上面的se.wait_sum一样
Third: of times run on this cpu, task->sched_info.pcount,这个值跟上面的se->nr_switches一样

该信息的入口在fs/proc/base.c的proc_pid_schedstat函数里

(4)/proc//stat

在内核中,该文件的内容由do_task_stat函数(fs/proc/array.c)写。主要操作是

1 (init) S 0 0 0 0 -1 1077936384 29364 120697659 760 2069 2467 5378 135714 180528 20 0 4 0 1 11249537024 1816 18446744073709551615 366896521216 366898028208 549396430032 0 0 0 65536 0 1073779960 0 0 0 17 2 0 0 20 0 0 366898052008 366898052480 367917428736 549396430530 549396430560 549396430560 549396430823 0


         seq_printf(m, "%d (%s) %c %d %d%d %d %d %u %lu \

%lu %lu %lu %lu %lu %ld %ld %ld %ld %d 0 %llu %lu %ld %lu %lu %lu %lu %lu \

%lu %lu %lu %lu %lu %lu%lu %lu %d %d %u %u %llu %lu %ld\n",

                   1 .pid_nr_ns(pid, ns), //pid

                   2 .tcomm, //进程名

                   3 .state, //进程状态

                   4 .ppid, //父进程号

                   5 .pgid, //线程组ID

                   6 .sid, //会话组ID

                   7 .tty_nr, //该进程的tty终端的设备号,INT(34817/256)=主设备号,(34817-主设备号)=次设备号

                   8 .tty_pgrp, //终端的进程组号,当前运行在该进程所在终端的前台进程(包括shell应用程序)的PID

                   9 .task->flags, //进程标志位,查看该进程的特性(定义在/include/kernel/sched.h中)

                   10.min_flt, //累计进程的次缺页数(Copy on Write页和匿名页)

                   11.cmin_flt, //该进程所有的子进程发生的次缺页的次数

                   12.maj_flt, //主缺页数(从映射文件或交换设备读入的页面数)

                   13.cmaj_flt, //该进程所有的子进程发生的主缺页的次数

                   14.cputime_to_clock_t(utime), //该进程在用户态运行的时间,单位为jiffies

                   15.cputime_to_clock_t(stime), //该进程在核心态运行的时间,单位为jiffies

                   16.cputime_to_clock_t(cutime), //该进程所有的子进程在用户态运行的时间总和,单位为jiffies

                   17.cputime_to_clock_t(cstime), //该进程所有的子进程在内核态运行的时间的总和,单位为jiffies

                   18.priority, //进程的优先级

                   19.nice, //进程的静态优先级

                   20.num_threads, //该进程所在的线程组里线程的个数

        21.//0

                   22.start_time, //该进程创建的时间

                   23.vsize, //该进程的虚拟地址空间大小

                   24.mm ? get_mm_rss(mm) : 0, //该进程当前驻留物理地址空间的大小

                   25.rsslim, //该进程能驻留物理地址空间的最大值

                   26.mm ? (permitted ? mm->start_code : 1) : 0, //该进程在虚拟地址空间的代码段的起始地址

                   27.mm ? (permitted ? mm->end_code : 1) : 0, //该进程在虚拟地址空间的代码段的结束地址

                   28.(permitted && mm) ? mm->start_stack : 0, //该进程在虚拟地址空间的栈的结束地址

                   29.esp, //esp(32 位堆栈指针) 的当前值,与在进程的内核堆栈页得到的一致

                   30.eip, //指向将要执行的指令的指针, EIP(32位指令指针)的当前值

                   31.task->pending.signal.sig[0] & 0x7fffffffUL, //待处理信号的位图,记录发送给进程的普通信号

                   32.task->blocked.sig[0] & 0x7fffffffUL, //阻塞信号的位图

                   33.sigign      .sig[0] & 0x7fffffffUL,  //忽略的信号的位图

                   34.sigcatch    .sig[0] & 0x7fffffffUL,  //被捕捉的信号的位图

                   35.wchan, //如果该进程是睡眠状态,该值给出调度的调用点

                   36.0UL,

                   37.0UL,

                   38.task->exit_signal, //该进程结束时,向父进程所发送的信号

                   39.task_cpu(task), //运行在哪个CPU上

                   40.task->rt_priority, //实时进程的相对优先级别

                   41.task->policy,  //进程的调度策略

                   42.(unsigned long long)delayacct_blkio_ticks(task),

                   43.cputime_to_clock_t(gtime),

                   44.cputime_to_clock_t(cgtime));

注:这个输出的中间自动填充了个0,在22 start_time前。

你可能感兴趣的:(基础知识点,性能问题,android)