【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 頭文件中 第 629629629 ~ 130013001300 行定義 ;
一、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;總結
以上是生活随笔為你收集整理的【Linux 内核】进程管理 task_struct 结构体 ④ ( comm 字段 | 进程优先级字段 | cpus_ptr 字段 | mm、active_mm 字段 | fs 字段 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 内核】进程管理 task_
- 下一篇: 【Linux 内核】进程管理 task_