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字段 )

Linux进程描述符task_struct结构体详解--Linux进程的管理与调度