子進程

子進程

子進程是計算機術語。

基本介紹

  • 中文名:子進程
  • 釋義:另一進程所創建的進程
  • 對應詞:父進程
  • 舉例:檔案描述符
定義,特點,過程,

定義

子進程指的是由另一進程(對應稱之為父進程)所創建的進程。

特點

子進程繼承了對應的父進程的大部分屬性,如檔案描述符。在Unix中,子進程通常為系統調用fork的產物。在此情況下,子進程一開始就是父進程的副本,而在這之後,根據具體需要,子進程可以藉助exec調用來鏈式載入另一程式。

過程

一個進程可能下屬多個子進程,但最多只能有1個父進程,而若某一進程沒有父進程,則可知該進程很可能由核心直接生成。在Unix與類Unix系統中,進程ID為1的進程(即init進程)是在系統引導階段由核心直接創建的,且不會在系統運行過程中終止執行(可參見Linux啟動流程);而對於其他無父進程的進程,則可能是為在用戶空間完成各種後台任務而執行的。另外,在對應的父進程結束執行後,進程就會變成孤兒進程,但之後會立即由init進程“收養”為其子進程。
當某一子進程結束、中斷或恢復執行時,核心會傳送SIGCHLD信號予其父進程。在默認情況下,父進程會以SIG_IGN函式忽略之[1]。
某一子進程終止執行後,若其父進程未提前調用wait,則核心會持續保留子進程的退出狀態等信息,以使父進程可以wait獲取之[2] 。而因為在這種情況下,子進程雖已終止,但仍在消耗系統資源,所以其亦稱殭屍進程。wait常於SIGCHLD信號的處理函式中調用。

相關詞條

熱門詞條

聯絡我們