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