Pid的管理和分配 创建一个进程时 Pid位图 do fork>copyprocess >alloc_ _ pid 00010: struct pidmap 00011 atomic t nr free; 00012: void*page 00013: 00015: #define PIDMAP_ENTRIES(PID_MAX_LIMIT +8*PAGESIZE- 1)/PAGE_SIZE/8) 心Pid名字空间8 00017: struct pid_ namespace 00018 struct kref kref 00019 struct pidmap pidmap[ PIDMAP_ENTrIeS 00020 int last_pid 00021 struct task struct child_reaper 00022 struct kmem_cache pid_cachep' Struct pid cache 00023 unsigned int level 00024 struct pid namespace parent 00025: #ifdef CONFIG PROC Fs 关于名字空间的更多信息,参见 00026 struct vfsmount proc_mnt; Nsproxy cuPid namespace.ch 00027: #endif EMBEDDED SYSTEM LAF口RAT口RY 00028 SU:MDU INTHUTE OR AOVANCLD STUOY D USTt2021/2/6 Linux操作系统分析 13/65 Pid的管理和分配 ❖创建一个进程时, ❖Pid名字空间 do_fork→copy_process→alloc_pid Struct pid的cache Pid位图 关于名字空间的更多信息,参见: Nsproxy.c以及pid_namespace.ch