程序的狀態及轉換

2022-06-08 21:06:20 字數 1397 閱讀 3983

目錄

引起程序狀態轉換的具體原因如下:

執行態→阻塞態:等待使用資源;如等待外設傳輸;等待人工干預。

阻塞態→就緒態:資源得到滿足;如外設傳輸結束;人工干預完成。

執行態→就緒態:執行時間片到;出現有更高優先權程序。

就緒態→執行態:cpu 空閒時選擇乙個就緒程序。

五態模型在三態模型的基礎上增加了建立態(new)和終止態(exit)。

引起程序狀態轉換的具體原因如下:

null→建立態:執行乙個程式,建立乙個子程序。

建立態→就緒態:當作業系統完成了程序建立的必要操作,並且當前系統的效能和虛擬記憶體的容量均允許。

執行態→終止態:當乙個程序到達了自然結束點,或是出現了無法克服的錯誤,或是被作業系統所終結,或是被其他有終止權的程序所終結。

執行態→就緒態:執行時間片到;出現有更高優先權程序。

執行態→等待態:等待使用資源;如等待外設傳輸;等待人工干預。

就緒態→終止態:未在狀態轉換圖中顯示,但某些作業系統允許父程序終結子程序。

等待態→終止態:未在狀態轉換圖中顯示,但某些作業系統允許父程序終結子程序。

終止態→null:完成善後操作

三態模型和五態模型都是假設所有程序都在記憶體中的事實上有序不斷的建立程序,當系統資源尤其是記憶體資源已經不能滿足程序執行的要求時,必須把某些程序掛起(suspend),對換到磁碟對換區中,釋放它占有的某些資源,暫時不參與低階排程。

引起程序掛起的原因是多樣的,主要有:

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

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

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

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

對換的需要。為了緩和記憶體緊張的情況,將記憶體中處於阻塞狀態的程序換至外存上。

七態模型在五態模型的基礎上增加了靜止就緒態(ready suspend)和靜止阻塞態(blocked suspend)。

程序狀態及轉換

對程序可以執行有很多種狀態,可以建立和銷毀,也可以更改優先權,程序狀態是程序某時某刻所處的模式或條件。程序的狀態也決定了將來的事件以及可能進入的狀態。其中 準備執行的程序處於就緒狀態。如果某個程序因為等待某個資源或者事件的傳送而不能執行,則進入阻塞狀態。就緒和阻塞狀態是最常見的程序狀態之一。只有位於...

程序的基本狀態及轉換

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

程序狀態轉換

1.就緒 執行 2.執行 就緒 3.執行 等待 4.等待 就緒 一 程序的三種基本狀態 程序在執行中不斷地改變其執行狀態。通常,乙個執行程序必須具有以下三種基本狀態。就緒 ready 狀態 當程序已分配到除cpu以外的所有必要的資源,只要獲得處理機便可立即執行,這時的程序狀態稱為就緒狀態。執行 ru...