歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux學習筆記_8_進程管理_1_進程的概念

Linux學習筆記_8_進程管理_1_進程的概念

日期:2017/3/1 13:36:43   编辑:關於Linux

一、程序與進程的區別

1、程序是靜態概念,本身作為一種軟件資源長期保存;而進程是程序的執行過程,它是動態概 念,有一定的生命期,是動態產生和消亡的。

2、程序和進程無一一對應關系。一個程序可以由多個進程共用;另一方面,一個進程在活動中有 可順序地執行若干個程序。

二、父進程【PPID】與子進程【PID】

1、子進程是由一個進程所產生的進程,產生這個 子進程的進程稱為父進程。

2、在Linux系統中,使用系統調用fork創建進程。 fork復制的內容包括父進程的數據和堆棧段以及父進程的進程環境。

3、父進程終止子進程自然終止。

4、兩種特殊情況

(1)父進程終止,子進程依然存在,子進程變成孤兒進程,其自動PPID指向init

(2)子進程死亡,父進程不知到,子進程變成僵屍進程

三、前台進程與後台進程

前台進程:

在Shell提示處敲入命令後,創建一個子進程【父進程是Shell】,運行命令,Shell等待命令退出,然後返回到對用戶給出提示符。這條命令與Shell異步運行,即在前台運行,用戶在 它完成之前不能執行另一個命令。

後台進程:

在Shell提示處敲入命令,若後隨一個&,Shell創建的子 進程運行此命令,但不用等待命令退出,而直接返回到對用戶給出提示。這條命令與Shell同步運行,即在後台運 行。後台進程必須是非交互式的。

如:find /home -name init > test/tmp.txt

四、進程狀態

就緒狀態:進程已經分配到資源,但因為 其它進程正占用 CPU,所以暫時不 能運行而等待分配 CPU的狀態。

等待狀態:因等待某種 事件而暫時不能運 行的狀態。

運行狀態:進程分配到 CPU,正在處理器 上運行。

\

五、進程狀態細化

用戶態運行:在CPU上執行用戶代碼

核心態運行:在CPU上執行核心代碼

在內存就緒:具備運行條件,只等調度程序為它分配CPU

在內存睡眠:因等待某一事件的發生,而在內存中排隊等待

在外存就緒:就緒進程被交換到外存上繼續處於就緒狀態

在外存睡眠:睡眠進程被交換到外存上繼續等待

在內存暫停:因調用stop程序而進入跟蹤暫停狀態,等待其父進程發送命令。

在外存暫停:處於跟蹤暫停態的進程被交換到外存上

創建態:新進程正在被創建、但尚未完畢的中間狀態

終止態:進程終止自己 \

Copyright © Linux教程網 All Rights Reserved