linux源码剖析 | 进程(task)数据结构 上

本文详细介绍了Linux内核中进程(任务)的管理,包括任务ID的区分、信号处理机制及其对栈的影响,以及任务的各种状态如运行、睡眠和停止。还探讨了任务调度的原理,特别是不同睡眠状态的响应特性。对于理解Linux系统底层运作十分有益。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

任务 ID

信号处理

任务状态

进程调度


标题写进程主要是为了引流吧。

在 Linux 里面,无论是进程,还是线程,到了内核里面,我们统一都叫任务(Task)。由一个统一的结构 task_struct 进行管理。

 

Linux 内核有一个链表,将所有的 task_struct 串起来。

struct list_head    tasks;

任务 ID

task_struct 里面涉及任务 ID:

pid 是 process id

tgid 是 thread group ID。

如果只有主线程: pid 是自己,tgid 是自己,group_leader 指向的还是自己。

同一个进程多个线程的话:线程有自己的 pid,tgid 就是进程的主线程的 pid,group_leader 指向的就是进程的主线程

信号处理

task_struct 里面关于信号处理的字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值