進程的三態、五態模型【轉】


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM