多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。
提高處理機的利用率、改善系統效能,很大程度上取決於處理機排程的效能。
處理機排程便成為os設計的中心問題之一。分配的任務由處理機排程程式完成。
作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述**排程。
又稱作業排程或長程排程(long-term scheduling),接納排程(admission scheduling)
主要在早期批處理階段,處理在外存上的作業。
決定外存後備佇列中的哪些作業調入記憶體;
為它們建立程序、分配必要的資源;
將新建立的程序排在就緒佇列上,準備執行。
作業排程決定的細節
在每次執行作業排程時,都須作出兩個決定:
系統執行並不一定存在高階排程
也稱為程序排程、微觀排程或短程排程(short-term scheduling)
決定記憶體就緒佇列中的哪個程序獲得處理機,進行分配工作。是最基本的一種排程,在三種基本os中都有。
程序排程方式
1)非搶占方式(non-preemptive mode)
一旦處理機分配給某程序,該程序一直執行。決不允許其他程序搶占已分配執行程序的處理機。
2)搶占方式(preemptive mode)
允許排程程式根據某種原則,暫停某個正在執行的程序,將處理機重新分配給另一程序。
排程程式的任務職能:排程和分派。
(1) 記錄系統中所有程序的有關情況 (pcb)
(2) 確定分配處理機的原則 (演算法)
(3) 分配處理機給程序 (儲存、更新cpu現場
(4) 從程序收回處理機 進場佇列處理)
又稱交換排程或中程排程(medium-term scheduling)
引入目的:提高記憶體利用率和系統吞吐量。根據條件將一些程序調出或再調入記憶體。
**排程比較
不論高階、中級或者低階排程,都涉及到程序佇列,由此形成了三類排程佇列模型。從這三種方式中體驗排程的過程。
常見情況:
分時系統。
通常僅設定程序排程,使用者鍵入的命令和資料,都直接送入記憶體。
排程物件:
處於就緒狀態的程序。
組織形式:
棧、樹或乙個無序鍊錶
用何種形式取決於os型別和採用的排程演算法。如:分時系統中把就緒程序組織成fifo佇列形式:按時間片輪轉方式執行。
每個程序在執行時按規定的時間片演算法,在給定時間片內任務有三種執**況:
程序排程什麼時候發生?或者說什麼時候需要程序排程程式執行去給cpu做選擇?
批處理系統中,還需要作業排程
引入中級排程後,程序的狀態變化:
中級排程使程序在上述狀態間變化,並使資料在內外存間互換。
什麼演算法是好演算法? :不同的情況和物件需求不同,適用的方式和演算法也不同。
周轉時間短:
針對批處理系統的效能指標。作業從提交到完成所經歷的時間。
cpu執行用時ts
總的等待時間tw = 在後備佇列中等待 + 就緒佇列上等待 + 阻塞佇列中等待(等待i/o操作用時)
周轉時間t=ts+tw
帶權周轉時間w= t/ts
平均周轉時間
平均帶權周轉時間
單位時間內所完成的作業數,跟作業本身(與作業平均長度密切相關)和排程演算法都有關係;
不同系統需求各有側重
批處理系統
分時系統
實時系統
處理機排程相關基本概念完
處理機排程 基本概念
處理機排程 多道程式環境下,動態的把處理機分配給就緒佇列中的乙個程序使之執行。作用 提高處理機的利用率 改善系統效能,很大程度上取決於處理機排程的效能。處理機排程的層次 作業進入系統駐留在外存的後備佇列上,再至調入記憶體執行完畢,可能要經歷下述 排程 1 高階排程 長程排程 作業排程 將外存的後備佇...
處理機排程的概念,層次
按照某種演算法選擇乙個程序將處理機分配給它 要做什麼 排程發生在 發生頻率 對程序狀態的影響 高階排程 作業排程 按照某種規則,從後備佇列中選擇合適的作業將其調入記憶體,並為其建立程序 外存 記憶體 面向作業 最低無 建立態 就緒態 中級排程 記憶體排程 按照某種規則,從掛起佇列中選擇合適的程序將其...
處理機排程的概念 層次
總結當有一堆任務要處理,但由於資源有限,這些事情沒法同時處理。這就需要確定某種規則來決定處理這些任務的順序,這就是 排程 研究的問題。在多道程式系統中,程序的數量往往是多於處理機的個數的,這樣不可能同時並行地處理各個程序。處理機排程,就是從就緒佇列中按照一定的演算法選擇乙個程序並將處理機分配給它執行...