處理機排程
(1)基本概念
(2)三個層次
高階排程(作業排程)
中級排程(記憶體排程)
低階排程(程序排程)
(3)三層排程的聯絡、對比
(4)補充知識
程序的「掛起態「
七狀態模型
當有一堆任務要處理,但由於資源有限,這些事情沒法同時處理。這就需要確定某種規則來決定處理這些任務的順序,這就是「排程」研究的問題。
在多道程式系統中,程序的數量往往是多於處理機的個數的,這樣不可能同時並行地處理各個程序。處理機排程,就是從就緒佇列中按照一定的演算法選擇乙個程序並將處理機分配給它執行,以實現程序的併發執行。
(1)高階排程
由於記憶體空間有限,有時無法將使用者提交的作業全部放入記憶體,因此就需要確定某種規則來決定將作業調入記憶體的順序。
高階排程(作業排程)。按一定的原則從外存上處於後備佇列的作業中挑選-乙個(或多個)作業,給他們分配記憶體等必要資源,並建立相應的程序(建立pcb),以使它(們)獲得競爭處理機的權利。
高階排程是輔存(外存)與記憶體之間的排程。每個作業只調入一次,調出一次。作業調入時會建立相應的pcb.作業調出時才撤銷pcb。高階排程主要是指調入的問題,因為只有調入的時機需要作業系統來確定,但調出的時機必然是作業執行結束才調出。
(2)中級排程
引入了虛擬儲存技術之後,可將暫時不能執行的程序調至外存等待。等它重新具備了執行條件且記憶體又稍有空閒時,再重新調入記憶體。這麼做的目的是為了提高記憶體利用率和系統吞吐量。
暫時調到外存等待的程序狀態為掛起狀態。值得注意的是,pcb並不會一 起調到外存, 而是會常駐記憶體。pcb中會記錄程序資料在外存中的存放位置,程序狀態等資訊,作業系統通過記憶體中的pcb 來保持對各個程序的監控、管理。被掛起的程序pcb會被放到的掛起佇列中。
中級排程(記憶體排程),就是要決定將哪個處於掛起狀態的程序重新調入記憶體。
乙個程序可能會被多次調出、調入記憶體,因此中級排程發生的頻率要比高階排程更高。
(3)低階排程
低階排程(程序排程),其主要任務是按照某種方法和策略從就緒佇列中選取-乙個程序,將處理機分配給它。
程序排程是作業系統中最基本的一種排程, 在一般的作業系統中都必須配置程序排程。
程序排程的頻率很高,一般幾十毫秒一次。
暫時調到外存等待的程序狀態為掛起狀態(掛起態, suspend)
掛起態又可以進一步細分為就緒掛起、阻塞掛起兩種狀態
五狀態模型------>七狀態模型
注意「掛起」和「阻塞」的區別,兩種狀態都是暫時不能獲得cpu的服務掛起態是將程序映像調到外存去了,而阻塞態下程序映像還在記憶體中。有的作業系統會把就緒掛起、阻塞掛起分為兩個掛起佇列,甚至會根據阻塞原因不同再把阻塞掛起程序進一步細分為多個佇列。
處理機排程的概念,層次
按照某種演算法選擇乙個程序將處理機分配給它 要做什麼 排程發生在 發生頻率 對程序狀態的影響 高階排程 作業排程 按照某種規則,從後備佇列中選擇合適的作業將其調入記憶體,並為其建立程序 外存 記憶體 面向作業 最低無 建立態 就緒態 中級排程 記憶體排程 按照某種規則,從掛起佇列中選擇合適的程序將其...
處理機排程的概念 層次
總結當有一堆任務要處理,但由於資源有限,這些事情沒法同時處理。這就需要確定某種規則來決定處理這些任務的順序,這就是 排程 研究的問題。在多道程式系統中,程序的數量往往是多於處理機的個數的,這樣不可能同時並行地處理各個程序。處理機排程,就是從就緒佇列中按照一定的演算法選擇乙個程序並將處理機分配給它執行...
作業系統 處理機排程的概念和層次
排程的三個層次 高階排程 作業排程 作業系統調入作業,把作業從外存調入記憶體,建立相應的pcb,作業執行結束才調出,只發生一次 中級排程 記憶體排程 引入虛擬儲存技術,將暫時不能執行的程序調至外存等待,等時間再調入記憶體,程序狀態為掛起狀態,pcb還是常駐記憶體 可能會發生多次 低階排程 程序排程 ...