程序的狀態
程序的生命週期管理
程序的狀態變化模型
程序掛起模型
程序的生命期管理
程序的建立
程序執行
程序等待
程序喚醒
程序結束
程序建立
引起程序建立的三個主要事件
程序初始化時 mit程序
使用者請求建立新的程序
正在執行的程序執行了建立程序的系統呼叫
(建立了程序控制塊)
程序執行
核心選擇乙個就緒的程序,讓他占用處理機並執行
程序等待
以下情況下 程序等待
請求並等待系統服務,無法馬上完成
啟動某種操作,無法馬上完成
需要的資料沒有到達
程序只能阻塞自己,因為只有程序自己知道何時需要等待某事的發生
程序喚醒
程序喚醒的原因:
被阻塞的程序需要的資源可以被滿足
被阻塞程序等待的事件發生
將該程序的pcb插入到就緒佇列
程序只能被別的程序喚醒 或者作業系統喚醒
程序結束
以下四種情形 程序結束
正常退出(自願)
錯誤退出(自願)
致命錯誤(強制的)
被其他程序所殺(強制的)
程序狀態變化模型
程序的三種基本狀態 (同時只會處在乙個狀態)
執行狀態: 正在處理機上執行
就緒狀態: 程序獲得了除了處理機之外的一切資源,一旦得到處理機即可執行
等待狀態(阻塞態): 乙個程序等待某件事情等暫時停止執行,等待某資源 或者事件
其他基本狀態:
建立狀態:正在建立 還沒有撞到就緒狀態之前的狀態
結束狀態:乙個程序正在從系統中小時時的狀態,這是因為程序結束或者由於其他原因所導致的。pcb徹底消失了 才算是完全結束了
程序掛起
為了充分利用系統資源,被掛起的程序不占用記憶體空間,他在磁碟上
阻塞掛起狀態: 程序在外寸並且等待某事件的出現
就緒掛起狀態: 程序在外存,但是只要進入記憶體,就能執行
掛起(suspend):把乙個程序從記憶體轉到外存;可能有以下幾種情況
●阻塞到阻塞掛起:沒有程序處於就緒狀態或就緒程序要求更多記憶體資源時,會進行這種轉換,以提交新程序或執行就緒程序; (把阻塞的程序掛起)
●就緒到就緒掛起:當有高優先順序阻塞(系統認為會很快就緒的)程序和低優先就緒程序時,系統會選擇掛起低優先順序就緒程序;(作業系統會把他認為的很久才喚醒的掛起)
●執行到就緒掛起:對搶先式分時系統當有高優先順序阻塞掛起程序因事件出現而進入就緒掛起時,系統可能會把執行程序轉到就緒掛起狀態;
在外存時的狀態轉換:
●陽塞掛起到就緒掛起:當有阻塞掛起程序因相關事件出現時,系統會把阻塞掛起程序轉換為就緒掛起程序。
解掛/啟用: 把乙個程序從外存轉換到記憶體
■就緒掛起到就緒:沒有就緒程序或掛起就緒程序優先順序高於就緒程序時,會進行這種轉換;
■阻塞掛起到阻塞:當乙個程序釋放足夠記憶體時,系統會把乙個高優先順序阻塞掛起(系統認為會很快出現所等待的事件)程序轉換為阻塞程序;
狀態佇列
■由作業系統來維護一組佇列,用來表示系統當中所有程序的當前狀態;
■不同的狀態分別用不同的佇列來表示就緒佇列、各種型別的阻塞佇列);
■每個程序的pcb都根據它的狀態加入到相應的佇列當中,當乙個程序的狀態發生變化時,它的pcb從乙個狀態佇列中脫離出來,加入到另外乙個佇列。
作業系統 程序狀態
程序從建立到執行,再到執行完畢銷毀的過程中,經歷了不同的程序狀態,程序狀態部分取決於程序當前的活動,可以將程序狀態分為 1 三狀態模型 2 五狀態模型 3 七狀態模型。包含程序三個最基本的狀態 就緒態 程序具備執行條件,等待分配處理器 執行態 程序占有處理器,正在執行 等待態 程序等待發生某個事件。...
作業系統程序狀態模型
作業系統中的程序有三個基本狀態,分別是 就緒 執行 阻塞 就緒 萬事俱備,只欠cpu 執行 正在執行 阻塞 程序因為等待某些事件的發生而處於等待狀態 這三個狀態合起來,就是作業系統的 三狀態程序模型 如下圖 然後我們可能會疑惑,程序難道天生就是就緒態嗎?而且程序執行完後又是什麼態呢?實際上,程序還具...
作業系統之程序的狀態
當程序已分配到除cpu以外的所有必要資源後,只要再獲得cpu,便可立即執行,程序這時的狀態稱為就緒狀態。在乙個系統中處於就緒狀態的程序可能有多個,通常將它們排成乙個佇列,稱為就緒佇列。程序已獲得cpu,其程式正在執行。在單處理機系統中,只有乙個程序處於執行狀態 在多處理機系統中,則有多個程序處於執行...