進程的基本狀態

進程的三種基本狀態:運行,就緒,阻塞
運行狀態:這是指進程已經獲得CPU,其程序正在執行狀態。
就緒狀態:這是指進程已經處於準備好運行的狀態,即進程已經分配到所需資源,除了CPU,只要獲得CPU便可立即執行。
阻塞狀態:指正在執行的進程由於某些事件(如I/O請求,申請緩存區失敗)而暫時無法運行,進程受到阻塞。再滿足請求時進程會進入就緒狀態等待系統調用。阻塞狀態有時也稱爲等待狀態或封鎖狀態。通常系統將處於阻塞狀態的進程排成一個隊列,稱爲阻塞隊列。


三種基本狀態的轉換:

進程在運行過程中會經常發生狀態的轉換。
處於就緒狀態的進程,在調度程序爲之分配了CPU之後便可執行,相應的,其狀態就由就緒狀態轉變爲執行狀態;
正在執行的進程如果因爲分配給它的時間片已用完而被剝奪CPU暫停執行時,其狀態便由執行狀態轉變爲就緒狀態;
如果因爲發生某事件,致使當前進程的執行受阻(例如訪問臨界資源,臨界資源被佔用),其狀態便由執行狀態轉變爲阻塞狀態。
如下圖所示:



五種基本狀態的轉換:

五種狀態只是在三種基本狀態上引入了創建狀態和終止狀態,這是爲了滿足進程控制塊對數據及操作的完整性要求以及增強管理的靈活性。

創建狀態:進程是由創建而產生。引入創建狀態是爲了保證進程的調度必須在創建工作完成後進行,以確保對進程控制塊的完整性。對於處於創建狀態的進程,當其獲得了所需資源以及對其PCB的初始化工作完成後,便可由創建狀態轉入就緒狀態。

終止狀態:當進程到達了自然結束點,或是出現了無法克服的錯誤,或是被操作系統所終結,或是被其他有終止權的進程所終結,它將進入終止狀態。進入終止狀態的進程以後不能在執行。終止有兩個步驟,首先,是等待操作系統進行善後處理,最後將其PCB清零,並將PCB空間返還系統。

如下圖所示:






引入掛起狀態並且有創建和終止狀態的進程狀態圖:









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章