一個進程被喚醒意味著進程變為就緒狀態。進程狀態反映進程執行過程的變化,進程被喚醒就是激活這個進程,意味著它變為就緒狀態,也表示該進程具備運行條件,等待系統分配處理器以便運行;但進入就緒狀態后并不馬上移至就緒隊列隊首,而是在隊尾參加排隊。
本教程操作環境:windows7系統、Dell G3電腦。
一個進程被喚醒意味著進程變為就緒狀態。
進程:并發執行的程序在執行過程中分配和管理資源的基本單位。
進程狀態反映進程執行過程的變化。這些狀態隨著進程的執行和外界條件的變化而轉換。
-
在三態模型中,進程狀態分為三個基本狀態,即運行態,就緒態,阻塞態。
-
在五態模型中,進程分為新建態、終止態,運行態,就緒態,阻塞態。
三態模型
一個進程從創建而產生至撤銷而消亡的整個生命期間,有時占有處理器執行,有時雖可運行但分不到處理器、有時雖有空閑處理器但因等待某個事件的發生而無法執行,這一切都說明進程和程序不相同,它是活動的且有狀態變化的,這可以用一組狀態加以刻畫。為了便于管理進程,一般來說,按進程在執行過程中的不同情況至少要定義三種不同的進程狀態:
(1)運行(running)態:進程占有處理器正在運行。
(2)就緒(ready)態:進程具備運行條件,等待系統分配處理器以便運行。
(3)等待(wait)態:又稱為阻塞(blocked)態或睡眠(sleep)態,指進程不具備運行條件,正在等待某個事件的完成。
通常,一個進程在創建后將處于就緒狀態。每個進程在執行過程中,任意時刻當且僅當處于上述三種狀態之一。同時,在一個進程執行過程中,它的狀態將會發生改變。引起進程狀態轉換的具體原因如下:
(1)運行態一一等待態:等待使用資源或某事件發生,如等待外設傳輸;等待人工干預。
(2)等待態一一就緒態:資源得到滿足或某事件己經發生,如外設傳輸結束;人工干預完成。
(3)運行態一一就緒態:運行時間片到,或出現有更高優先權進程。
(4)就緒態一一運行態:CPU空閑時被調度選中一個就緒進程執行。
五態模型
在一個實際的系統里進程的狀態及其轉換比上節敘述的復雜一些,例如,引入專門的新建態(new)和終止態(exit )。
引入新建態和終止態對于進程管理來說是非常有用的。新建態對應于進程剛剛被創建的狀態,創建1個進程要通過兩個步驟,首先,是為一個新進程創建必要的管理信息;然后,讓該進程進入就緒態。此時進程將處于新建態,它并沒有被提交執行,而是在等待操作系統完成創建進程的必要操作。必須指出的是,操作系統有時將根據系統性能或主存容量的限制推遲新建態進程的提交。
類似地,進程的終止也要通過兩個步驟,首先,是等待操作系統進行善后;然后,退出主存。當一個進程到達了自然結束點,或是出現了無法克服的錯誤,或是被操作系統所終結,或是被其他有終止權的進程所終結,它將進入終止態。進入終止態的進程以后不再執行,但依然保留在操作系統中等待善后。一旦其他進程完成了對終止態進程的信息抽取之后,操作系統將刪除該進程。引起進程狀態轉換的具體原因如下:
(1)NULL一一新建態:執行1個程序,創建一個子進程。
(2)新建態一一就緒態:當操作系統完成了進程創建的必要操作,并且當前系統的性能和內存的容量均允許。
(3)運行態一一終止態:當1個進程到達了自然結束點,或是出現了無法克服的錯誤,或是被操作系統所終結,或是被其他有終止權的進程所終結。
(4)終止態一一NULL:完成善后操作。
(5)就緒態一一終止態:未在狀態轉換圖中顯示,但某些操作系統允許父進程終結子進程。
(6)等待態一一終止態:未在狀態轉換圖中顯示,但某些操作系統允許父進程終結子進程。