前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux 内核】进程管理 task_struct 结构体 ④ ( comm 字段 | 进程优先级字段 | cpus_ptr 字段 | mm、active_mm 字段 | fs 字段 )

【Linux 内核】进程管理 task_struct 结构体 ④ ( comm 字段 | 进程优先级字段 | cpus_ptr 字段 | mm、active_mm 字段 | fs 字段 )

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

文章目录

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

task_struct " 进程描述符 " 结构体在 linux-5.6.18\include\linux\sched.h 头文件中 第

629

~

1300

行定义 ;

一、task_struct 结构体字段分析


1、comm 字段

comm 字段 , 用于存储 进程的名称 ;

代码语言:javascript
复制
	/*
	 * 进程名称
	 * 可执行文件名,不包括路径。
	 *
	 * - 一般情况下在 setup_new_exec() 函数进行初始化
	 * - 调用 [gs]et_task_comm() 函数获取
	 * - lock it with task_lock()
	 */
	char				comm[TASK_COMM_LEN];

2、进程优先级字段

prio , static_prio , normal_prio , rt_priority 字段 , 是 进程调度策略 中 , 与 优先级 相关的字段 ;

代码语言:javascript
复制
	int				prio;
	int				static_prio;
	int				normal_prio;
	unsigned int			rt_priority;

3、cpus_ptr 字段

cpus_ptr 字段是一个指针 , 指向 CPU 资源 , 表示 该进程 被允许在哪个 CPU 上运行 ;

代码语言:javascript
复制
const cpumask_t			*cpus_ptr;

4、mm、active_mm 字段

mm 字段是一个指针 , 指针指向 mm_struct 结构体 , 这是 " 内存描述符 " , 与 tsak_struct 进程描述符性质相似 ;

对于 进程 来说 , active_mm 字段 与 mm 字段 指向同一个 " 内存描述符 " ;

但对于 " 内核线程 " 来说 , mm 字段 指向 空指针 , active_mm 字段 指向 从进程借用的 " 内存描述符 " ;

代码语言:javascript
复制
	struct mm_struct		*mm;
	struct mm_struct		*active_mm;

5、 fs 字段

fs 字段 , 指向 " 虚拟文件系统 ( VFS ) " , 主要是指向 " 根目录 " 和 " 当前工作目录 " ;

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、task_struct 结构体字段分析
    • 1、comm 字段
      • 2、进程优先级字段
        • 3、cpus_ptr 字段
          • 4、mm、active_mm 字段
            • 5、 fs 字段
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档