1.程序的三種基本狀態。
程序執行時的間斷性決定了程序在建立後到執行完這個生命週期中具有多種狀態。執行中的程序具有以下三種基本狀態。
就緒狀態。當程序已分配到出cpu以外的所有必要資源後,只要再獲得cpu,便可立即執行,程序這時的狀態稱為就緒狀態。在乙個系統中處於就緒狀態的程序可能有多個,通常將它們排成乙個佇列,稱為就緒佇列。
執行狀態。程序已經獲得cpu,其程式正在執行。在單處理機系統中,只有乙個程序處於執行狀態;在多處理機系統中,則有多個程序處於執行狀態。
阻塞狀態。正在執行的程序由於發生某事件而暫時無法繼續執行時,便放棄處理器而處於暫停狀態,亦即程序的執行受到阻塞,把這種暫停狀態稱為阻塞狀態,也稱為等待狀態。致使程序阻塞的典型事件有請求i/o,申請緩衝空間等,通常將這種處於阻塞狀態的程序也排成乙個佇列。有的系統也則根據阻塞原因的不同而把處於阻塞狀態的程序排成多個佇列。
處於就緒狀態的程序,在排程程式為之分配了處理機之後,該程序便可執行,相應地,程序就由就緒狀態轉變為執行狀態。正在執行的程序也稱為當前程序,如果因分配給它的時間片已用完而被暫停執行時,該程序便由執行狀態又恢復就緒狀態;如果因發生某事件而使程序的執行受阻,使之無法繼續執行,該程序將由執行狀態轉變為阻塞狀態。
2.掛起狀態。
不少作業系統中程序只有以上三種狀態,但在另一些系統中,又增加了一些新狀態,最重要的是掛起狀態。引入掛起狀態的原因有:
(1)中斷使用者的請求。當中斷使用者在自己的程式執行期間發現有可疑問題時,希望暫時使自己的程式靜止下來。即,使正在執行的程序暫停執行;若此時使用者程序正處於就緒狀態而未執行,則該程序暫不接受排程,以便使用者研究其執**況或對程式進行修改。我們把這種靜止狀態成為掛起狀態。
(2)父程序請求。有時父程序希望掛起自己的某個子程序,以便考察和修改該子程序,或者協調各子程序間的活動。
(3)負荷調節的需要。當實時系統中的工作負荷較重,已可能影響到對實時任務的控制時,可由系統把一些不重要的程序掛起,以保證系統能正常執行。
(4)作業系統的需要。作業系統有時希望掛起某些程序,以便檢查執行中的資源使用情況或進行記賬。
在引入掛起狀態後,又將增加從掛起狀態(靜止狀態)到非掛起狀態(活動狀態)的雙向轉換,也就增加了系統複雜度和開銷。
(1)活動就緒--->靜止就緒。當程序處於未被掛起的就緒狀態時,稱此為活動就緒狀態。當用掛起原語將該程序掛起後,該程序便轉變為靜止就緒狀態,處於就緒狀態的程序不再被排程執行。
(2)活動阻塞--->靜止阻塞。當程序處於未被掛起的阻塞狀態時,稱它是處於活動阻塞狀態。當用掛起原語將它掛起後,程序便轉變為靜止阻塞狀態。處於該狀態的程序在其所期待的事件出現後,將從靜止阻塞變為靜止就緒。
(3)靜止就緒--->活動就緒。處於靜止阻塞狀態的程序,若用啟用原語啟用後,該程序將轉變為活動就緒狀態。
(4)靜止阻塞--->活動阻塞。處於靜止阻塞狀態的程序,若用啟用原語啟用後,該程序將轉變為活動阻塞狀態。
3.建立狀態和終止狀態。
為了管理的需要,還存在兩種比較常見的程序狀態,即建立狀態和終止狀態。
(1)建立狀態。建立乙個程序一般要通過兩個步驟。首先,為乙個新程序建立pcb,填寫必要的管理資訊;其次,把該程序轉入就緒狀態並插入就緒佇列之中。當乙個新程序被建立時,系統已為其分配了pcb,填寫了程序標識等資訊,但由於該程序所必需的資源或其他資訊,如主存資源尚未分配等。此時的程序已擁有了自己的pcb,但程序自身還未進入主存,級建立工作尚未完成,程序還不能被排程執行,其所處的狀態就是建立狀態或初始狀態。
引入建立狀態是為了保證程序的排程必須在建立工作完成後進行,以確保對程序控制塊操作的完整性。同時,建立狀態的引入,也增加了管理的靈活性,作業系統可以根據系統效能或主存容量的限制,推遲建立狀態程序的提交。對於處於建立狀態的程序,獲得了其所必需的資源,以及對其pcb初始化工作完成後,程序狀態便可由建立狀態轉入就緒狀態。
(2)終止狀態。程序的終止也要通過兩個步驟。首先等待作業系統進行善後處理,然後將其pcb清零,並將pcb空間返還系統。當乙個程序到達了自然結束點,或是出現了無法客服的錯誤,或是被作業系統所終結,或是被其他有終止權的程序所終結,它都將進入終止狀態。進入終止狀態的程序不能再執行,但在作業系統中仍然保留乙個記錄,儲存了狀態碼和一些計時統計資料,供其他程序收集。一旦其他程序完成了對終止狀態程序的資訊提取之後,作業系統將刪除該程序。
4.程序的五種狀態及其切換。
程序管理 七 程序狀態與轉換
乙個程序的生命期可以劃分為一組狀態,這些狀態刻劃了整個程序。系統根據pcb 結構中的狀態值控制程序。在程序的生命期內,乙個程序至少具有三種基本狀態 執行狀態 等待狀態和就緒狀態。單cpu系統中,任一時刻處於執行狀態的程序只能有乙個。就緒狀態的程序已經得到除 cpu之外的其他資源,只要經由排程得到處理...
程序及其狀態
作業系統必須全方位地管理計算機系統中執行的程式 因此,作業系統為正在執行程式建立乙個管理實體 程序 程序是乙個具有一定獨立功能的程式關於某個資料集合的一次執行活動 程序是作業系統進行資源分配和排程的乙個獨立單位 乙個程序包括五個實體部分,分別是 os管理執行程式的 資料結構p 執行程式的 記憶體 c...
程序管理 四 程序的狀態以及轉換
簡要描述 該時刻實際占有著cpu 簡要描述 可以執行,但是由於其他程序正在執行而暫時停止 這種情況下,只不過是系統暫時沒有把cpu分配給它而已,一旦系統將cpu分配給它,它立馬就可以跑。簡要描述 除非外部事件發生否則就不能執行 當乙個程序不能執行的時候,它就會被阻塞。典型的例子就是等待可以使用的輸入...