0
点赞
收藏
分享

微信扫一扫

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



文章目录

  • ​​一、task_struct 结构体字段分析​​
  • ​​1、comm 字段​​
  • ​​2、进程优先级字段​​
  • ​​3、cpus_ptr 字段​​
  • ​​4、mm、active_mm 字段​​
  • ​​5、 fs 字段​​



在 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、comm 字段



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

/*
* 进程名称
* 可执行文件名,不包括路径。
*
* - 一般情况下在 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​​ 字段 , 是 进程调度策略 中 , 与 优先级 相关的字段 ;

int       prio;
int static_prio;
int normal_prio;
unsigned int rt_priority;



3、cpus_ptr 字段



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

const cpumask_t     *cpus_ptr;



4、mm、active_mm 字段



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

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

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

struct mm_struct    *mm;
struct mm_struct *active_mm;



5、 fs 字段



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

/* Filesystem information: */
struct fs_struct *fs;



举报

相关推荐

0 条评论