您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>Linux/uClinux/Unix編程>

LINUX 進(jìn)程源代碼分析

大?。?/span>75 人氣: 2010-02-09 需要積分:0
{$username}的空間

用戶級(jí)別:注冊(cè)會(huì)員

貢獻(xiàn)文章:

貢獻(xiàn)資料:

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%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?