三態模型:在多道程序系統中,進程在處理器上交替運行,狀態也不斷地發生變化。進程通常有3種基本狀態:運行、就緒和阻塞。
(1)
運行:當一個進程在處理機上運行時,則稱該進程處於運行狀態。處於此狀態的進程的數目小於等於處理器的數目,對於單處理機系統,處於運行狀態的進程只有一個。在沒有其餘進程能夠執行時(如全部進程都在阻塞狀態),一般會自動執行系統的空閒進程。
(2)
就緒:當一個進程得到了除處理機之外的一切所需資源,一旦獲得處理機便可運行,則稱此進程處於就緒狀態。就緒進程能夠按多個優先級來劃分隊列。例如,當一個進程因爲時間片用完而進入就緒狀態時,排入低優先級隊列;當進程由I/O操做完成而進入就緒狀態時,排入高優先級隊列。
(3)
阻塞:也稱爲等待或睡眠狀態,一個進程正在等待某一事件發生(例如請求I/O而等待I/O完成等)而暫時中止運行,這時即便把處理機分配給進程也沒法運行,故稱該進程處於阻塞狀態。
五態模型:對於一個實際的系統,進程的狀態及其轉換更爲複雜。引入
新建態和
終止態構成了進程的五態模型。
新建態: 對應於進程剛剛被建立時沒有被提交的狀態,並等待系統完成建立進程的全部必要信息。 進程正在建立過程當中,還不能運行。操做系統在建立狀態要進行的工做包括分配和創建進程控制塊表項、創建資源表格(如打開文件表)並分配資源、加載程序並創建地址空間表等。建立進程時分爲兩個階段,第一個階段爲一個新進程建立必要的管理信息,第二個階段讓該進程進入就緒狀態。因爲有了新建態,操做系統每每能夠根據系統的性能和主存容量的限制推遲新建態進程的提交。
終止態:進程已結束運行,回收除進程控制塊以外的其餘資源,並讓其餘進程從進程控制塊中收集有關信息(如記賬和將退出代碼傳遞給父進程)。相似的,進程的終止也可分爲兩個階段,第一個階段等待操做系統進行善後處理,第二個階段釋放主存。
因爲進程的不斷建立,系統資源特別是主存資源已不能知足全部進程運行的要求。這時,就必須將某些進程掛起,放到磁盤對換區,暫時不參加調度,以平衡系統負載;進程掛起的緣由多是系統故障,或者是用戶調試程序,也多是須要檢查問題。
活躍就緒:是指進程在主存而且可被調度的狀態。
靜止就緒(掛起就緒):是指進程被對換到輔存時的就緒狀態,是不能被直接調度的狀態,只有當主存中沒有活躍就緒態進程,或者是掛起就緒態進程具備更高的優先級,系統將把掛起就緒態進程調回主存並轉換爲活躍就緒。
活躍阻塞:是指進程已在主存,一旦等待的事件產生便進入活躍就緒狀態。
靜止阻塞:是指進程對換到輔存時的阻塞狀態,一旦等待的事件產生便進入靜止就緒狀態。