引言
本文爲第三篇,進程管理之五狀態模型,進程在操作系統裏邊是有多個狀態的,本文就是了解進程在操作系統中的多個狀態
1、進程的五個狀態
- 創建狀態
- 就緒狀態
- 阻塞狀態
- 執行狀態
- 終止狀態
2、進程處於這五種狀態時在做什麼
(1)就緒狀態
- 當進程被分配到除CPU以外的所有必要資源後,就處於就緒狀態
- 只要再獲得CPU的使用權,就可以裏立即運行
- 其它資源都準備好,只差CPU資源的狀態,就是就緒狀態
其它資源包括進程控制塊(PCB)、內存、棧空間、堆空間等
在操作系統裏邊,我們知道,多個程序可以併發的運行,這個時候就可能存在多個就緒狀態的進程,這些進程通常會排成一個隊列,這個隊列就稱爲就緒隊列,在就緒隊列裏邊有多個就緒的進程
(2)執行狀態
- 進程獲得CPU使用權,其程序正在執行,稱爲執行狀態
- 在單處理機(一個CPU只有一個核的情況),在某個時刻只能有一個進程是處於執行狀態
(3)阻塞狀態
進程由於某種原因,如:其它設備未就緒而無法繼續執行,從而放棄CPU的狀態,就稱爲阻塞狀態
比如說有個進程要請求打印機,但是由於打印機正處於被佔用的情況,進程收不到迴應,那麼就會處於阻塞狀態。當多個進程同時請求打印機時,也會處於阻塞狀態,此時也有阻塞隊列的概念
(4)創建狀態
創建狀態分爲兩步:
a、分配PCB
b、插入就緒隊列
創建進程時,擁有PCB,但其它資源尚未就緒的狀態稱爲創建狀態
(5)終止狀態
終止狀態也分爲兩步:
a、系統清理
b、歸還PCB
進程結束由系統清理或者歸還PCB的狀態稱爲終止狀態
3、就緒、阻塞、執行三種狀態之間的切換
當進程發生進程調度的時候,就會由就緒狀態變爲執行狀態,當某一個進程發生進程調度的時候就會獲取到CPU的資源,當執行狀態的進程的CPU資源用完了,它就會切換回就緒的狀態,插入到就緒隊列中,這裏的CPU資源用完指的是,分配給某一個進程執行CPU的時間用完了
當執行狀態的進程發生IO請求的時候就有可能變成阻塞狀態(前邊有說到請求打印機的例子)。當發生IO完成的時候,就會由阻塞狀態切換到就緒狀態
在快速變化的技術中尋找不變,纔是一個技術人的核心競爭力。知行合一,理論結合實踐