前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux 内核】进程管理 task_struct 结构体 ② ( state 字段 | stack 字段 | pid 字段 | tgid 字段 | pid_links 字段 )

【Linux 内核】进程管理 task_struct 结构体 ② ( state 字段 | stack 字段 | pid 字段 | tgid 字段 | pid_links 字段 )

作者头像
韩曙亮
发布2023-03-30 13:45:59
3.7K0
发布2023-03-30 13:45:59
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

在 Linux 内核 中 , " 进程控制块 " 是通过 task_struct 结构体 进行描述的 ; Linux 内核中 , 所有 进程管理 相关算法逻辑 , 都是基于 task_struct 结构体的 ;

task_struct 结构体在 linux-5.6.18\include\linux\sched.h 头文件中 第

629

~

1300

行定义 ;

一、task_struct 结构体字段分析


1、state 字段

state 字段表示 进程状态 ,

  • -1 时表示不可执行 ,
  • 0 表示可执行 ,
  • >0 表示已经停止 ;
代码语言:javascript
复制
	/* -1 unrunnable, 0 runnable, >0 stopped: */
	volatile long			state;

2、stack 字段

stack 是一个指针 , 指向 " 内核栈 " ;

代码语言:javascript
复制
void				*stack;

3、pid字段

pid 表示该进程的 " 全局进程号 " ;

代码语言:javascript
复制
	pid_t				pid;

pid_t 是 int 类型的数据 ;

代码语言:javascript
复制
typedef int		__kernel_pid_t;
#ifndef __kernel_pid_t
typedef int		__kernel_pid_t;
#endif

4、tgid 字段

tgid 表示 " 全局线程组 " 标志 ;

代码语言:javascript
复制
	pid_t				tgid;

5、pid_links 字段

pid_links 字段 是一个 哈希表 , 其中存放的是 " 进程号 " , 是 " 进程组标识符 " 和 " 会话标识符 " ;

代码语言:javascript
复制
	/* 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;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、task_struct 结构体字段分析
    • 1、state 字段
      • 2、stack 字段
        • 3、pid字段
          • 4、tgid 字段
            • 5、pid_links 字段
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档