【发布时间】:2016-02-07 00:49:08
【问题描述】:
我试图弄清楚流程是如何相互关联的。我知道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 告诉我不然。
为了更清楚,我做了一张图片。任何帮助都会有所帮助。谢谢!
【问题讨论】: