目錄這章介紹了一些基本的排程策略,從周轉時間和響應時間兩個指標分別討論這些策略的優劣。
在進入正文之前首先了解周轉時間、響應時間如何計算。
\[t_=t_-t_
\\t_=t_-t_
\]周轉時間代表工作從到達和完成之間所花費時間,響應時間代表工作從到達和開始處理工作之間的時間花費。
介紹之前做出如下假設:
每個工作執行相同的時間
所有工作同時到達
一旦開始,每個工作都必須執行完成
所有工作都使用cpu,即沒有io操作
每個工作執行時間都是已知的。
假設:2 3 4 5
首先第乙個基本排程策略是先進先出。它是按照工作壓入順序處理工作,早壓入的工作總是比之後的工作先執行。但這種模式很依賴工作的壓入順序,工作處理的順序不同會導致周轉時間產生較大差異。例如:假設有兩個同時到達的工作a、b,a的處理的所需時間遠比b久。可以得出較短處理時間的工作b先處理遠比先處理a的周轉時間短。
假設:3 4 5
對於fifo的按工作壓入順序處理工作,sjf在多個工作達到時總是會選擇處理時間最短的工作處理,直到所有工作處理完畢。sjf能夠解決了fifo在工作選取上的不足。同fifo,sjf也存在不足,假設長工作總比短工作先到達,那麼sjf出現與fifo類似的護航問題(參考書本p50)。
假設:4 5
為sjf新增搶占機制,稱為stcf。與sjf不同的是stcf允許工作在沒有執行完成可以切換到其他工作執行。每當乙個工作到達時,總是檢查剩餘工作和新工作中誰的剩餘工作處理時間最少,然後排程該工作。被搶占工作必須等待搶占工作處理完成之後才能被重新排程。
假設:4 5
上面介紹的三種排程只是針對周轉時間進行處理,對於響應時間它們都存在著問題。輪轉是乙個很簡單的思想:在統一時間片內執行乙個工作,然後切換到執行佇列中的下乙個工作繼續工作。簡單一點就是工作都在交替執行一段時間。工作經過交替執行後響應時間遠比前三種模式短,但是輪轉的周轉時間又因為輪轉變得非常糟糕。
上述的幾個排程模式非常側重某乙個維度,sjf、stcf側重周轉時間,rr側重響應時間。所以需要乙個對周轉時間和響應時間都相對友好的排程模式,同時還需要放寬4、5條件。這些會在多級反饋佇列得到解決。
程序排程三 程序排程介紹
一 程序排程介紹 1 程序排程的產生 程序從使用資源方面可以分為如下兩類,不管是i o還是cpu受限類的程序,cpu都希望再盡可能短的時間 完成更多的工作,但另一方面,又希望盡可能的減少資源 i o或cpu 的消耗,這兩則之間存在矛盾,所以程序 的排程管理就是來協調兩者之間的衝突。型別別稱 描述示例...
程序排程 介紹
完全可操作的排程準則 a fully operational scheduling discipline 對作業系統中執行的程序 有時也叫工作任務 做出如下的假設 每乙個程序執行相同的時間。所有的程序同時到達。一旦開始,每個程序保持執行直到完成。所有的程序只是用 cpu 即它們不執行 io 操作 每...
7 程序排程演算法
程序排程演算法 基本排程演算法 1.先來先服務 fcfs 既可以作為作業排程演算法也可以作為程序排程演算法 按作業或者程序到達的先後順序依次排程 因此對於長作業比較有利。演算法優點 易於理解且實現簡單,只需要乙個佇列 fifo 且相當公平 演算法缺點 比較有利於長程序,而不利於短程序,有利於cpu ...