進程的狀態轉換

四種進程間的狀態轉換:

狀態轉換圖

進程的狀態轉換圖

1.就緒–>執行 2.執行–>就緒 3.執行–>等待  4.等待–>就緒

一、進程的三種基本狀態

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

就緒(Ready)狀態

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

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

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

二、進程三種狀態間的轉換

一個進程在運行期間,不斷地從一種狀態轉換到另一種狀態,它可以多次處於就緒狀態和執行狀態,也可以多次處於阻塞狀態。

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

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

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

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

轉自:http://tanteng.sinaapp.com/2011/10/state/

發佈了22 篇原創文章 · 獲贊 13 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章