cpu利用率:cpu忙碌的時間佔總時間的比例
利 用率
=忙碌的
時間總時
間利用率=\frac
利用率=總時
間忙碌的
時間系統吞吐量:單位時間完成作業或程序的數量
吞 吐量
=完成的
作業數量
總時
間吞吐量=\frac
吞吐量=總時
間完成的
作業數量
周轉時間:完成作業需要花費的總時間
周 轉時
間=作業
完成的時
間−作業
提交時間
周轉時間=作業完成的時間-
周轉時間=作
業完成的
時間−作
業提交時
間帶權周轉時間:體現了使用者的滿意度,帶權周轉時間越小,使用者滿意度越高
帶 權周
轉時間=
周轉時間
執行時間
帶權周轉時間=\frac
帶權周轉時間
=執行時
間周轉時
間等待時間:程序/作業等待被服務的時間
等 待時
間=作業
開始執行
的時間−
作業提交
時間
等待時間=作業開始執行的時間-
等待時間=作
業開始運
行的時間
−作業提
交時間
先到先服務排程演算法(fcfs: first come first serve)
最簡單的排程演算法,按先後順序依次進行排程。
程序進入ready狀態後會進入就緒佇列。每次從就緒佇列中選擇最先進入的程序分配cpu資源,直到該程序被阻塞或者執行完畢才讓出cpu資源給下乙個程序。
它是非搶占式的演算法。
優點:公平、演算法實現簡單
缺點:對長作業有利,對短作業不利。
短作業優先排程演算法(sjf: shortest job first)
是fcfs演算法的改進。它每次從就緒佇列中選擇估計執行時間最短的程序分配cpu資源,直到該程序被阻塞或者執行完畢才讓出cpu資源給下乙個程序。
它是非搶占式的演算法。
優點:最短的平均等待時間、平均周轉時間
缺點:不公平。對短作業有利對長作業不利。可能出現飢餓現象,導致長作業被餓死。
tips:有一種搶占式的sjf演算法,擁有更短的平均等待時間。
高響應比優先排程演算法(hrrn: highest response ratio next)
綜合考慮了作業的等待時間和執行時間。每次排程時先計算各個作業的響應比,然後選擇響應比最高的作業為其分配資源。
響 應比
=等待時
間+執行
時間執行
時間
響應比=\frac
響應比=執行
時間等待
時間+運
行時間
它是非搶占式的演算法。
優點:綜合考慮了作業的等待時間和執行時間,比較公平。
時間片輪轉排程演算法(rr: round robin)
比較簡單。每個程序會被分配乙個時間片。如果程序沒有在時間片內執行完,則會將其送入就緒佇列。即程序的執行態到就緒態的轉化。如果程序執行結束,就會主動放棄處理機。
它是搶占式的演算法。
優點:公平,響應快,適用於分時作業系統。
缺點:高頻率的程序切換會有一定開銷;不考慮程序的優先順序
tips: 時間片太大會導致其退化為fcfs演算法;時間片太小會導致頻繁的程序切換,導致資源浪費
為每個程序分配優先順序。首先執行擁有最高優先順序的程序,以此類推。具有相同優先順序的程序則以fcfs演算法進行執行。
優先順序分類:靜態優先順序+動態優先順序
靜態優先順序在建立程序時固定。動態優先順序則會根據情況動態調整。比如程序在就緒佇列中等待了很長時間,可以適當地提公升優先順序。
系統程序優先順序》使用者程序優先順序
前台程序優先順序》後台程序優先順序
i/o型程序優先順序》計算型程序優先順序
優點:可以區分緊急程度、重要程度,適用於實時作業系統。
缺點:如果有源源不斷的高優先順序程序,則可能導致低優先順序業務發生飢餓。
設定多級的就緒佇列。各優先順序佇列優先順序從高到低,時間片從小到大。
新程序到來時先進入第一級佇列,按照fcfs原則分配時間片。如果用完時間片程序還沒有結束,則程序進入下乙個優先順序佇列的隊尾。
僅當較高優先順序的隊列為空,才排程較低優先順序的佇列中的程序執行。如果程序執行時有新程序進入較高優先順序的佇列,則搶先執行新程序,並把被搶先的程序投入原佇列的末尾。
它是搶占式的演算法。
優點:對各種型別的程序相對公平;每個新到達的程序可以得到很快的響應;短程序用較少時間完成。
作業系統 程序排程及其演算法
儲存處理機資訊 按某種演算法選取程序 把處理器分配給程序 排隊器。把就緒程序排成乙個或者幾個佇列 分派器。把程序從就緒佇列中取出來,然後把處理機給他 非搶占式 搶占式把就緒程序排成乙個佇列,把cpu分配給隊首程序,執行一定的時間,執行完畢就分配給另乙個新的隊首程序,每隔一定的時間就執行乙個程序 一旦...
程序排程演算法 作業系統筆記
1 先來先服務 first come first service,fcfs 排程演算法按照程序進入就緒佇列的先後順序選擇可以占用處理器的程序。這是一種不可搶占方式的排程演算法,優點是實現簡單,缺點是後來的程序等待cpu的時間較長。它現今主要用作輔助排程法 例如結合在優先順序排程演算法中使用,當有兩個...
作業系統的程序排程演算法
作業系統的程序排程也稱 dispatcher,其實簡單來說作業系統的程序排程不外乎人類社會的兩大原則 先來後到和優先順序,乙個良好的任務排程演算法主要體現在以下幾個方面 公平的保證每個程序得到合理的cpu時間 高效的使cpu保持忙碌狀態即總有程序在cpu上執行 使互動使用者的響應時間盡可能短 周轉時...