图片来源:https://www.pixiv.net/en/artworks/74361938
名称 | 解释 | task_struct 中的对应变量(定义在 include/linux/sched.h 中,均为全局ID,内核版本 v2.6.24) | 对应的系统调用 |
PID (Process ID) | 字面上是虽然是 进程 ID,实际上就是线程 ID,内核中进程、线程都使用 task_struct 结构表示 | task_struct->pid | pid_t gettid(void); |
TGID (Thread Group ID) | 线程组 ID,即线程组组长的 PID,真正的进程 ID,如果进程只有一个线程则他的 PID 和 TGID 相同 | task_struct->tgid | pid_t getpid(void); |
PGID (Process Group ID) | 进程组 ID,多个进程可以组合为进程组,方便向所有成员发送信号,进程组组长的 PID 即为PGID | task_struct->signal->__pgrp | pid_t getpgrp(void); |
SID(Session ID) | 会话 ID,多个进程组可以组合为会话,会话的组长PGID 即为 SID | task_struct->signal->__session | pid_t getsid(pid_t pid); |
PPID (Parent Process ID) | 父进程 ID | task_struct->parent->pid | pid_t getppid(void); |
参考:
- 《深入 Linux 内核架构》
- process identification
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。