程序的狀態

2021-07-14 08:29:54 字數 2256 閱讀 7166

三態模型:在多道程式系統中,程序在處理器上交替執行,狀態也不斷地發生變化。程序一般有3種基本狀態:執行、就緒和阻塞。

(1)執行:當乙個程序在處理機上執行時,則稱該程序處於執行狀態。處於此狀態的程序的數目小於等於處理器的數目,對於單處理機系統,處於執行狀態的程序只有乙個。在沒有其他程序可以執行時(如所有程序都在阻塞狀態),通常會自動執行系統的空閒程序。

(2)就緒:當乙個程序獲得了除處理機以外的一切所需資源,一旦得到處理機即可執行,則稱此程序處於就緒狀態。就緒程序可以按多個優先順序來劃分佇列。例如,當乙個程序由於時間片用完而進入就緒狀態時,排入低優先順序佇列;當程序由i/o操作完成而進入就緒狀態時,排入高優先順序佇列。

(3)阻塞:也稱為等待或睡眠狀態,乙個程序正在等待某一事件發生(例如請求i/o而等待i/o完成等)而暫時停止執行,這時即使把處理機分配給程序也無法執行,故稱該程序處於阻塞狀態。

狀態的轉換

a)

就緒狀態->執行狀態:程序排程;

b)

執行狀態->活動就緒狀態:cpu時間片用完;

c)

執行狀態->活動阻塞狀態:等待時間(輸入輸出等操作);

d)

活動阻塞狀態->活動就緒狀態:時間發生(輸入輸出等操作完成);

e)

建立狀態->活動就緒狀態:建立之後接納該程序;

f)

執行狀態->終止狀態:完成了該程序;

g)

活動阻塞狀態->掛起阻塞狀態:掛起命令;

h)

掛起阻塞狀態->活動阻塞狀態:啟用命令;

i)

活動就緒狀態->掛起就緒狀態:掛起命令;

j)

掛起就緒狀態->活動就緒狀態:啟用命令;

k)

執行狀態->掛起就緒:掛起命令。

五態模型:對於乙個實際的系統,程序的狀態及其轉換更為複雜。引入新建態終止態構成了程序的五態模型。

新建態: 對應於程序剛剛被建立時沒有被提交的狀態,並等待系統完成建立程序的所有必要資訊。 程序正在建立過程中,還不能執行。作業系統在建立狀態要進行的工作包括分配和建立程序控制塊表項、建立資源**(如開啟檔案表)並分配資源、引導程式並建立位址空間表等。建立程序時分為兩個階段,第乙個階段為乙個新程序建立必要的管理資訊,第二個階段讓該程序進入就緒狀態。由於有了新建態,作業系統往往可以根據系統的效能和主存容量的限制推遲新建態程序的提交。

終止態:程序已結束執行,**除程序控制塊之外的其他資源,並讓其他程序從程序控制塊中收集有關資訊(如記帳和將退出**傳遞給父程序)。類似的,程序的終止也可分為兩個階段,第乙個階段等待作業系統進行善後處理,第二個階段釋放主存。

由於程序的不斷建立,系統資源特別是主存資源已不能滿足所有程序執行的要求。這時,就必須將某些程序掛起,放到磁碟對換區,暫時不參加排程,以平衡系統負載;程序掛起的原因可能是系統故障,或者是使用者除錯程式,也可能是需要檢查問題。

活躍就緒:是指程序在主存並且可被排程的狀態。

靜止就緒(掛起就緒):是指程序被對換到輔存時的就緒狀態,是不能被直接排程的狀態,只有當主存中沒有活躍就緒態程序,或者是掛起就緒態程序具有更高的優先順序,系統將把掛起就緒態程序調回主存並轉換為活躍就緒。

活躍阻塞:是指程序已在主存,一旦等待的事件產生便進入活躍就緒狀態。

靜止阻塞:是指程序對換到輔存時的阻塞狀態,一旦等待的事件產生便進入靜止就緒狀態。

程序的狀態

執行狀態 當乙個程序在處理機上執行時,則該程序處於執行狀態。處於次狀態的程序的數目小於等於處理器的數目,在單處理系統中,處於執行態的程序只有乙個。就緒狀態 當乙個程序獲得了除cpu以外的任何資源,一旦獲得cpu,便可立即執行,則該程序處於就緒狀態。乙個系統中處於就緒狀態的程序可能有多個,通常它們按優...

程序的狀態

程序是乙個動態的實體,所以它是有生命的,從建立到消亡,是乙個程序的整個生命週期。一般有三個狀態 1.就緒態 程序已經獲得所需的其他資源,正在申請處理器資源,準備開始執行,這種情況下,稱程序處於就緒態 2.阻塞態 休眠態或者等待態 程序需要等待所需資源而放棄處理器,或者是程序不擁有處理器而且其他資源也...

程序的狀態

為了弄清楚正在執行的程序是什麼意思,我們需要知道程序的不同的狀態。乙個程序可以有 7個狀態 在linux核心中,程序有時也叫作任務 下面的狀態在fs proc array.c檔案中定義 執行狀態 running 並不意味著程序一定在執行中,它表明程序要麼是在執行中要麼在執行佇列裡。睡眠狀態 slee...