程序创建的进程具有父子关系,如果一个进程创建了多个进程时,这些子进程之间具有兄弟关系。在进程描述符中引入几个字段表示这些关系,进程0和1是有内核创建的,进程1是所有进程的祖先。
P的进程描述符中表示进程亲属关系的字段的描述
real_parent:指向了创建P的进程描述符,如果P的父进程不存在,就指向进程1的进程描述符。
parent:指向P的当前父进程,一般与real_parent保持一致
children:链表的头部,该链表所有元素都是由P创建的
sibling:指向兄弟进程链表中的下一个元素或者前一个元素的指针,这些兄弟元素都是由P创建的
建立非亲属关系的进程描述符字段:
Group_leader:P所在进程组的领头进程的描述符指针
signal->pgrp:P所在进程组的领头进程的PID
tgid: P所在线程组的领头进程的PID
signal->session:p的登录会话领头进程的PID
ptrace_children:链表的头,该链表包含所有被debugger程序跟踪的P的子进程