Linux进程树图解

1. 前言

限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。

2. 背景

本文基于 Linux 4.14 内核源码进行分析。

3. 图解进程树

3.1 初始状态

初始系统中只有 init_task 祖先进程,此时进程树的状态如下:
在这里插入图片描述

3.2 经 kthread() 或 fork() 创建第1个进程后

kernel_thread()__kthread_create_on_node()fork()vfork() 创建第1个进程后,进程树由上一小节中的图示变为下图的状态:
在这里插入图片描述

3.3 经 clone() 创建第2个进程后

在上一小节的基础上,在第1个进程里调用 clone(CLONE_THREAD, ...) 创建第2个进程后,进程树状态如下:
在这里插入图片描述

4. 后记

了解进程树的结构,对于了解调度子系统是有益的,譬如理解进程的退出终止过程、信号处理相关逻辑都会带来好处。

5. 扩展

本篇没有展示 进程组、session、namespace 等,感兴趣的读者可自行查阅相关资料。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值