LINUX 進程源代碼分析
LINUX 進程源代碼分析
task_struct 數(shù)據(jù)結(jié)構(gòu)
表示進程的數(shù)據(jù)結(jié)構(gòu)是struct task_struct。task_struct 結(jié)構(gòu)是進程實體的核心,
Linux 內(nèi)核通過對該結(jié)構(gòu)的相關操作來控制進程,task_struct 結(jié)構(gòu)是一個進程存在的唯一
標志,也就是通常說的進程控制塊(PCB, Process Control Block)。Linux 將所有task_struct
結(jié)構(gòu)的指針存儲在task 數(shù)組中,數(shù)組的大小就是系統(tǒng)能容納的進程數(shù)目,默認為512。數(shù)
組的定義如下:
/* /include/linux/task.h */
#define NR_TASKS 512 /* task 數(shù)組的大小512 */
/* /kernel/sched.c */
struct task_struct *task[NR_TASKS]={&init_task,};
Linux 通過task 數(shù)組管理系統(tǒng)中所有的進程。系統(tǒng)定義了全局變量nr_tasks 記錄系統(tǒng)中進
程的數(shù)目。定義如下:
/* /kernel/fork.c */
int nr_tasks=0; /* 初始化為0 個進程在運行 */
附錄中列出了task_struct 結(jié)構(gòu)。它相當大,但是可以從邏輯上劃分為以下幾部分:
·進程狀態(tài)
·進程調(diào)度信息
非常好我支持^.^
(1) 100%
不好我反對
(0) 0%
下載地址
LINUX 進程源代碼分析下載
相關電子資料下載
- 提升VMware虛擬機運行速度的方法 701
- 兆芯正引入Linux首選內(nèi)核調(diào)度技術,優(yōu)化性能 48
- 矽速科技全新推出的高性價比 Linux SBC Longan Pi 3H 93
- 如何在zcu102板卡上創(chuàng)建pipeline呢? 55
- AMD Zen5架構(gòu)處理器曝光,預計2024年亮相 132
- 三星成功驗證CXL(Compute Express Link)內(nèi)存操作 84
- linux下Redis常用命令使用 66
- Linux內(nèi)核中RCU的用法 372
- 分級RCU的基礎知識 333
- Linux配置NFS文件共享詳解 122