作業系統之程序的狀態

2021-07-15 10:42:38 字數 1579 閱讀 1234

當程序已分配到除cpu以外的所有必要資源後,只要再獲得cpu,便可立即執行,程序這時的狀態稱為就緒狀態。在乙個系統中處於就緒狀態的程序可能有多個,通常將它們排成乙個佇列,稱為就緒佇列。

程序已獲得cpu,其程式正在執行。在單處理機系統中,只有乙個程序處於執行狀態; 在多處理機系統中,則有多個程序處於執行狀態。

正在執行的程序由於發生某事件而暫時無法繼續執行時,便放棄處理機而處於暫停狀態,亦即程序的執行受到阻塞,把這種暫停狀態稱為阻塞狀態,有時也稱為等待狀態或封鎖狀態。致使程序阻塞的典型事件有:請求i/o,申請緩衝空間等。通常將這種處於阻塞狀態的程序也排成乙個佇列。有的系統則根據阻塞原因的不同而把處於阻塞狀態的程序排成多個佇列。

三者的轉換圖如下

在不少系統中程序只有上述三種狀態,但在另一些系統中,又增加了一些新狀態,最重要的是掛起狀態。引入掛起狀態的原因有:

(1) 終端使用者的請求。當終端使用者在自己的程式執行期間發現有可疑問題時,希望暫時使自己的程式靜止下來。亦即,使正在執行的程序暫停執行;若此時使用者程序正處於就緒狀態而未執行,則該程序暫不接受排程,以便使用者研究其執**況或對程式進行修改。我們把這種靜止狀態稱為掛起狀態。  

(2) 父程序請求。有時父程序希望掛起自己的某個子程序,以便考查和修改該子程序,或者協調各子程序間的活動。

(3) 負荷調節的需要。當實時系統中的工作負荷較重,已可能影響到對實時任務的控制時,可由系統把一些不重要的程序掛起,以保證系統能正常執行。

(4) 作業系統的需要。作業系統有時希望掛起某些程序,以便檢查執行中的資源使用情況或進行記賬。

具有掛起狀態的轉換圖

建立乙個程序一般要通過一下兩個兩個步驟

(1) 為乙個新程序建立pcb,並填寫必要的管理資訊.

(2) 把該程序轉入就緒狀態並插入就緒佇列之中。當乙個新程序被建立時,系統已為其分配了pcb,填寫了程序標識等資訊,但由於該程序所必需的資源或其它資訊,如主存資源尚未分配等,一般而言,此時的程序已擁有了自己pcb,但程序自身還未進入主存,即建立工作尚未完成,程序還不能被排程執行,其所處的狀態就是建立狀態。 引入建立狀態,是為了保證程序的排程必須在建立工作完成後進行,以確保對程序控制塊操作的完整性。同時,建立狀態的引入,也增加了管理的靈活性,作業系統可以根據系統效能或主存容量的限制,推遲建立狀態程序的提交。對於處於建立狀態的程序,獲得了其所必需的資源,以及對其pcb初始化工作完成後,程序狀態便可由建立狀態轉入就緒狀態。

等待作業系統進行善後處理,然後將其pcb清零,並將pcb空間返還系統。當乙個程序到達了自然結束點,或是出現了無法克服的錯誤,或是被作業系統所終結,或是被其他有終止權的程序所終結,它將進入終止狀態。進入終止態的程序以後不能再執行,但在作業系統中依然保留乙個記錄,其中儲存狀態碼和一些計時統計資料,供其它程序收集。一旦其它程序完成了對終止狀態程序的資訊提取之後,作業系統將刪除該程序。

增加了建立狀態和終止狀態後,程序的三種基本狀態及轉換圖衍變為五種狀態及轉換關係圖

作業系統 程序狀態

程序從建立到執行,再到執行完畢銷毀的過程中,經歷了不同的程序狀態,程序狀態部分取決於程序當前的活動,可以將程序狀態分為 1 三狀態模型 2 五狀態模型 3 七狀態模型。包含程序三個最基本的狀態 就緒態 程序具備執行條件,等待分配處理器 執行態 程序占有處理器,正在執行 等待態 程序等待發生某個事件。...

作業系統 程序的狀態

程序的狀態 程序的生命週期管理 程序的狀態變化模型 程序掛起模型 程序的生命期管理 程序的建立 程序執行 程序等待 程序喚醒 程序結束 程序建立 引起程序建立的三個主要事件 程序初始化時 mit程序 使用者請求建立新的程序 正在執行的程序執行了建立程序的系統呼叫 建立了程序控制塊 程序執行 核心選擇...

作業系統程序狀態模型

作業系統中的程序有三個基本狀態,分別是 就緒 執行 阻塞 就緒 萬事俱備,只欠cpu 執行 正在執行 阻塞 程序因為等待某些事件的發生而處於等待狀態 這三個狀態合起來,就是作業系統的 三狀態程序模型 如下圖 然後我們可能會疑惑,程序難道天生就是就緒態嗎?而且程序執行完後又是什麼態呢?實際上,程序還具...