簡述操作系統進程的三種基本狀態
操作系統里進程一般具有三種基本狀態,下面由學習啦小編為大家整理了簡述操作系統進程的三種基本狀態的相關知識,希望對大家有幫助!
簡述操作系統進程的三種基本狀態
進程的三種基本狀態:
(1) 就緒狀態:進程已獲得除CPU外的所有必要資源,只等待CPU時的狀態。一個系統會將多個處于就緒狀態的進程排成一個就緒隊列。
(2) 執行狀態:進程已獲CPU,正在執行。單處理機系統中,處于執行狀態的進程只一個;多處理機系統中,有多個處于執行狀態的進程。
(3) 阻塞狀態:正在執行的進程由于某種原因而暫時無法繼續執行,便放棄處理機而處于暫停狀態,即進程執行受阻。(這種狀態又稱等待狀態或封鎖狀態)
通常導致進程阻塞的典型事件有:請求I/O,申請緩沖空間等。
一般,將處于阻塞狀態的進程排成一個隊列,有的系統還根據阻塞原因不同把這些阻塞集成排成多個隊列。
在一些系統中,進程還有一種很重要的狀態是:掛起狀態(是該進程暫時不接受調度)。
補充:操作系統進程的其它狀態簡述
掛起狀態
在不少系統中進程只有上述三種狀態,但在另一些系統中,又增加了一些新狀態,最重要的是掛起狀態。引入掛起狀態的原因有:
(1) 終端用戶的請求。當終端用戶在自己的程序運行期間發現有可疑問題時,希望暫時使自己的程序靜止下來。亦即,使正在執行的進程暫停執行;若此時用戶進程正處于就緒狀態而未執行,則該進程暫不接受調度,以便用戶研究其執行情況或對程序進行修改。我們把這種靜止狀態稱為掛起狀態。
(2) 父進程請求。有時父進程希望掛起自己的某個子進程,以便考查和修改該子進程,或者協調各子進程間的活動。
(3) 負荷調節的需要。當實時系統中的工作負荷較重,已可能影響到對實時任務的控制時,可由系統把一些不重要的進程掛起,以保證系統能正常運行。
(4) 操作系統的需要。操作系統有時希望掛起某些進程,以便檢查運行中的資源使用情況或進行記賬。
創建狀態
創建一個進程一般要通過兩個步驟
(1) 為一個新進程創建PCB,并填寫必要的管理信息.
(2) 把該進程轉入就緒狀態并插入就緒隊列之中。當一個新進程被創建時,系統已為其分配了PCB,填寫了進程標識等信息,但由于該進程所必需的資源或其它信息,如主存資源尚未分配等,一般而言,此時的進程已擁有了自己PCB,但進程自身還未進入主存,即創建工作尚未完成,進程還不能被調度運行,其所處的狀態就是創建狀態。 引入創建狀態,是為了保證進程的調度必須在創建工作完成后進行,以確保對進程控制塊操作的完整性。同時,創建狀態的引入,也增加了管理的靈活性,操作系統可以根據系統性能或主存容量的限制,推遲創建狀態進程的提交。對于處于創建狀態的進程,獲得了其所必需的資源,以及對其PCB初始化工作完成后,進程狀態便可由創建狀態轉入就緒狀態。
終止狀態
等待操作系統進行善后處理,然后將其PCB清零,并將PCB空間返還系統。當一個進程到達了自然結束點,或是出現了無法克服的錯誤,或是被操作系統所終結,或是被其他有終止權的進程所終結,它將進入終止狀態。進入終止態的進程以后不能再執行,但在操作系統中依然保留一個記錄,其中保存狀態碼和一些計時統計數據,供其它進程收集。一旦其它進程完成了對終止狀態進程的信息提取之后,操作系統將刪除該進程。