文章目录
- 一、task_struct 结构体字段分析
- 1、files 字段
- 2、nsproxy 字段
- 3、信号处理相关字段
- 4、信号量和共享内存相关字段
在 Linux 内核 中 , " 进程控制块 " 是通过 task_struct
结构体 进行描述的 ; Linux 内核中 , 所有 进程管理 相关算法逻辑 , 都是基于 task_struct
结构体的 ;
task_struct
" 进程描述符 " 结构体在 linux-5.6.18includelinuxsched.h
头文件中 第
~
行定义 ;
一、task_struct 结构体字段分析
1、files 字段
files
字段 , 是一个指针 , 指向 " 打开的文件表 " ;
/* Open file information: */
struct files_struct *files;
2、nsproxy 字段
nsproxy
字段是 " 命名空间 " ;
/* Namespaces: */
struct nsproxy *nsproxy;
3、信号处理相关字段
下面的几个字段 , 都是 " 信号处理 " 相关字段 ;
代码语言:javascript复制 /* Signal handlers: */
struct signal_struct *signal;
struct sighand_struct __rcu *sighand;
sigset_t blocked;
sigset_t real_blocked;
/* Restored if set_restore_sigmask() was used: */
sigset_t saved_sigmask;
struct sigpending pending;
4、信号量和共享内存相关字段
下面的字段是用于 UNIX 系统环境下 , " 信号量 " 与 " 共享内存 " 相关字段 ;
代码语言:javascript复制#ifdef CONFIG_SYSVIPC
struct sysv_sem sysvsem;
struct sysv_shm sysvshm;
#endif