Linux 内核进程管理 task_struct 结构体 ② ( state 字段 | stack 字段 | pid 字段 | tgid 字段 | pid_links 字段 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 内核进程管理 task_struct 结构体 ② ( state 字段 | stack 字段 | pid 字段 | tgid 字段 | pid_links 字段 )相关的知识,希望对你有一定的参考价值。
文章目录
在 Linux 内核 中 , " 进程控制块 " 是通过 task_struct
结构体 进行描述的 ; Linux 内核中 , 所有 进程管理 相关算法逻辑 , 都是基于 task_struct
结构体的 ;
task_struct
结构体在 linux-5.6.18\\include\\linux\\sched.h
头文件中 第
629
629
629 ~
1300
1300
1300 行定义 ;
一、task_struct 结构体字段分析
1、state 字段
state
字段表示 进程状态 ,
-1
时表示不可执行 ,0
表示可执行 ,>0
表示已经停止 ;
/* -1 unrunnable, 0 runnable, >0 stopped: */
volatile long state;
2、stack 字段
stack
是一个指针 , 指向 " 内核栈 " ;
void *stack;
3、pid字段
pid
表示该进程的 " 全局进程号 " ;
pid_t pid;
pid_t
是 int 类型的数据 ;
typedef int __kernel_pid_t;
#ifndef __kernel_pid_t
typedef int __kernel_pid_t;
#endif
4、tgid 字段
tgid
表示 " 全局线程组 " 标志 ;
pid_t tgid;
5、pid_links 字段
pid_links
字段 是一个 哈希表 , 其中存放的是 " 进程号 " , 是 " 进程组标识符 " 和 " 会话标识符 " ;
/* PID/PID hash table linkage. */
struct pid *thread_pid;
struct hlist_node pid_links[PIDTYPE_MAX];
struct list_head thread_group;
struct list_head thread_node;
以上是关于Linux 内核进程管理 task_struct 结构体 ② ( state 字段 | stack 字段 | pid 字段 | tgid 字段 | pid_links 字段 )的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核进程管理 task_struct 结构体 ⑤ ( files 字段 | nsproxy 字段 | 信号处理相关字段 | 信号量和共享内存相关字段 )
Linux 内核进程管理 task_struct 结构体 ⑤ ( files 字段 | nsproxy 字段 | 信号处理相关字段 | 信号量和共享内存相关字段 )
Linux 内核进程管理 task_struct 结构体 ④ ( comm 字段 | 进程优先级字段 | cpus_ptr 字段 | mmactive_mm 字段 | fs 字段 )
Linux 内核进程管理 task_struct 结构体 ② ( state 字段 | stack 字段 | pid 字段 | tgid 字段 | pid_links 字段 )
Linux 内核进程管理 task_struct 结构体 ③ ( real_parent 字段 | parent 字段 | group_leader 字段 | real_credcred字段 )