我试图弄清楚流程是如何相互联系的。我知道linux内核使用循环链表list_head将不同的进程连接在一起,信息保存在一个名为task_struct的结构中。在task_struct 中有两个字段,children 和sibling,都是list_head 类型。children->next 将指向下一个孩子,而兄弟->next 将指向来自共同父母的下一个兄弟。也就是说,我对这些指针如何指向父/兄弟进程感到困惑。
现在,例如,我有以下进程:R1、P1、P2。R1 是根进程,P1 P2 是它的子进程。R1->children->next 指向 P1 的兄弟字段,因为他们是兄弟姐妹。但是 P2 的兄弟->next 指向哪里呢?它应该指向 P1 的兄弟字段,还是指向 R1 的子字段以形成循环链表?我的直觉告诉我它应该指向 P1 的兄弟字段,但我的 TA 告诉我不然。
为了更清楚,我做了一张照片。任何帮助都会有所帮助。谢谢!