不管千山万水,时间流逝,我们始终是有关系的 - 某某言情剧
何谓进程之间的关系?
在前面作总结的时候,说进程有一个标识ID,我们称之为进程描述符,描述符描述了进程的一些注册优先级,状态等一些值,其实这里也有给出字段描述了进程的一些关系。
程序创建的进程具体父/子关系,如果一个进程创建多个子进程,则子进程之间具有兄弟关系,在进程描述符中引入几个字段来表示这些关系,表示给定进程P的这些字段。进程0(swapper)和进程1是由内核创建的。而进程1(init)是所有进程的祖先!
进程0在很早的时候我就已经讲过了,关于1号进程我会在后面和文件系统衔接的时候来描述([]可以戳这里]())!
下面我重点去研究进程之间的各种亲属关系,到底在内核中是一张怎样的复杂关系表?
我们知道的最多是进程之间的父子关系,Ps.一个进程可能是一个进程组或登录会话的领头进程,也可能是一个线程组的领头进程,它还可能跟踪其它进程的执行。
五个亲属间的亲属关系 -
内核中的pid hash链表
内核在初始化的时候有一个函数为pidhash_init
,