程序的狀態與轉換

2022-02-20 10:21:13 字數 984 閱讀 5435

程序在其生命週期內通常程序有以下三種狀態:

1) 執行狀態:程序正在處理機上執行。在單處理機環境下,每一時刻最多只有乙個程序處於執行狀態。

2) 就緒狀態:程序已處於準備執行的狀態,即程序獲得了除處理機之外的一切所需資源,一旦得到處理機即可執行。

3) 阻塞狀態,又稱等待狀態:程序正在等待某一事件而暫停執行,如等待某資源為可用(不包括處理機)或等待輸入/輸出完成。即使處理機空閒,該程序也不能執行。

注意區別就緒狀態和等待狀態:就緒狀態是指程序僅缺少處理機,只要獲得處理機資源就立即執行;而等待狀態是指程序需要其他資源(除了處理機)或等待某一事件。之所以把處理機和其他資源劃分開,是因為在分時系統的時間片輪轉機制中,每個程序分到的時間片是若干毫秒。也就是說,程序得到處理機的時間很短且非常頻繁,程序在執行過程中實際上是頻繁地轉換到就緒狀態的;而其他資源(如外設)的使用和分配或者某一事件的發生(如i/o操作的完成)對應的時間相對來說很長,程序轉換到等待狀態的次數也相對較少。這樣來看,就緒狀態和等待狀態是程序生命週期中兩個完全不同的狀態,需要加以區分。

就緒狀態 -> 執行狀態:處於就緒狀態的程序被排程後,獲得處理機資源(分派處理機時間片),於是程序由就緒狀態轉換為執行狀態。

執行狀態 -> 就緒狀態:處於執行狀態的程序在時間片用完後,不得不讓出處理機,從而程序由執行狀態轉換為就緒狀態。此外,在可剝奪的作業系統中,當有更高優先順序的程序就緒時,排程程度將正執行的程序轉換為就緒狀態,讓更高優先順序的程序執行。

執行狀態 -> 阻塞狀態:當程序請求某一資源(如外設)的使用和分配或等待某一事件的發生(如i/o操作的完成)時,它就從執行狀態轉換為阻塞狀態。程序以系統呼叫的形式請求作業系統提供服務,這是一種特殊的、由執行使用者態程式呼叫作業系統核心過程的形式。

阻塞狀態 -> 就緒狀態:當程序等待的事件到來時,如i/o操作結束或中斷結束時,中斷處理程式必須把相應程序的狀態由阻塞狀態轉換為就緒狀態。

程序的狀態與轉換

程序在其生命週期內,由於系統中各程序之間的相互制約關係及系統的執行環境的變化,使得程序的狀態 也在不斷的發生變化,即乙個程序會經歷若干種不同的狀態。通常程序有以下五種狀態,前三種是程序的基本狀態。1 執行狀態 程序正在處理機上執行。在單處理機環境下,每一時刻最多只有乙個程序處於執行狀態。2 就緒狀態...

程序的狀態與轉換

程序在其生命週期內通常程序有以下三種狀態 1 執行狀態 程序正在處理機上執行。在單處理機環境下,每一時刻最多只有乙個程序處於執行狀態。2 就緒狀態 程序已處於準備執行的狀態,即程序獲得了除處理機之外的一切所需資源,一旦得到處理機即可執行。3 阻塞狀態,又稱等待狀態 程序正在等待某一事件而暫停執行,如...

程序管理 七 程序狀態與轉換

乙個程序的生命期可以劃分為一組狀態,這些狀態刻劃了整個程序。系統根據pcb 結構中的狀態值控制程序。在程序的生命期內,乙個程序至少具有三種基本狀態 執行狀態 等待狀態和就緒狀態。單cpu系統中,任一時刻處於執行狀態的程序只能有乙個。就緒狀態的程序已經得到除 cpu之外的其他資源,只要經由排程得到處理...