1. 程式人生 > >【Linux】程序控制塊PCD結構(tack_struct)

【Linux】程序控制塊PCD結構(tack_struct)

程式建立的程序具有父/子關係。因為一個程序能建立幾個子程序,而子程序之間有兄弟關係,在task_struct 結構中有幾個域來表示這種關系。在Linux 系統中,除了初始化程序init,其他程序都有一個父程序(Parent Process)。可以通過fork()或clone()系統呼叫來建立子程序,除了程序識別符號(PID)等必要的資訊外,子程序的task_struct 結構中的絕大部分的資訊都是從父程序中拷貝。系統有必要記錄這種“親屬”關係,使程序之間的協作更加方便,例如父程序給子程序傳送殺死(kill)訊號、父子程序通訊等。每個程序的task_struct 結構有許多指標,通過這些指標,系統中所有程序的
task_struct結構就構成了一棵程序樹,這棵程序樹的根就是初始化程序init的task_struct結構(init 程序是Linux 核心建立起來後人為建立的一個程序,是所有程序的祖先程序)。