1. 程式人生 > >程序的三種基本狀態及轉換

程序的三種基本狀態及轉換

.程序的三種基本狀態

    程序在執行中不斷地改變其執行狀態。通常,一個執行程序必須具有以下三種基本狀態。

就緒(Ready)狀態

    當程序已分配到除CPU以外的所有必要的資源,只要獲得處理機便可立即執行,這時的程序狀態稱為就緒狀態。

執行(Running)狀態
當程序已獲得處理機,其程式正在處理機上執行,此時的程序狀態稱為執行狀態。

阻塞(Blocked)狀態
正在執行的程序,由於等待某個事件發生而無法執行時,便放棄處理機而處於阻塞狀態。引起程序阻塞的事件可有多種,例如,等待I/O完成、申請緩衝區不能滿足、等待信件(訊號)等。

2.程序三種狀態間的轉換

程序狀態變遷圖    

    一個程序在執行期間,不斷地從一種狀態轉換到另一種狀態,它可以多次處於就緒狀態和執行狀態,也可以多次處於阻塞狀態。圖3_4描述了程序的三種基本狀態及其轉換。

 (1) 就緒→執行
處於就緒狀態的程序,當程序排程程式為之分配了處理機後,該程序便由就緒狀態轉變成執行狀態。

 (2) 執行→就緒
處於執行狀態的程序在其執行過程中,因分配給它的一個時間片已用完而不得不讓出處理機,於是程序從執行狀態轉變成就緒狀態。

 (3) 執行→阻塞
正在執行的程序因等待某種事件發生而無法繼續執行時,便從執行狀態變成阻塞狀態。

 (4) 阻塞→就緒
處於阻塞狀態的程序,若其等待的事件已經發生,於是程序由阻塞狀態轉變為就緒狀態。