重要指標(吞吐量,周轉時間,cpu利用率,公平平衡)
非搶占式的先來先服務演算法(fcfs):按照程序就緒的先後順序使用cpu
特點:公平,實現簡單,但是長程序後面的短程序需要等待很長時間,不利於使用者體驗。
非搶占式的最短作業優先(sjf):具有最短完成時間的程序優先執行
最短剩餘時間優先(srtn):sjf搶占式版本,即當乙個新就緒的程序比當前執行程序具有更短完成時間時,系統搶占當前程序,選擇新就緒的程序執行。
短作業優先排程演算法特點:改善短作業的周轉時間,但如果源源不斷有短任務到來,可能使長的任務長時間得不到執行,產生飢餓現象。
最高相應比優先演算法(hrrn):是乙個綜合演算法,排程時,首先計算每個程序的響應比r,之後總是選擇r最高的程序執行。
響應比r=(等待時間+處理時間)/處理時間
重要指標(響應時間,公平平衡)
時間片輪轉排程演算法: 每個程序被分配乙個時間片,允許該程序在該時間段執行,如果在時間片結束時該程序還在執行,則剝奪cpu並分配給另乙個程序,如果該程序在時間片結束前阻塞或結束,則cpu立即進行切換。
當時間片選擇太長,其降級為先來先服務演算法,引起對短的互動請求響應時間長
當時間片選擇太短,會導致頻繁的程序切換,浪費cpu時間。
通常選擇為20ms~50ms.
對程序表中不同程序的大小差異較大的有利,而對程序都是相同大小的不利。
虛擬輪轉法:主要基於時間片輪轉法進行改進,解決在cpu排程中對於i/o密集型程序的不友好。其設定了乙個輔助佇列,對於i/o型程序執行完乙個時間片之後,則進入輔助佇列,cpu排程時總是先檢查輔助佇列是否為空,如果不為空總是優先排程輔助佇列裡的程序,直到為空,才排程就緒佇列的程序。
最高優先順序排程演算法:選擇優先順序最高的程序優先執行。
優先順序可以靜態不變,也可以動態調整
優先數決定優先順序
就緒佇列可以按照優先順序組織
實現簡單,但不公平,可能導致優先順序低的程序產生飢餓現象。
可能產生優先順序反轉問題(基於優先順序的搶占式演算法),即乙個低優先順序程序持有乙個高優先順序程序所需要的資源,使得高優先順序程序等待低優先順序程序執行。
多級反饋佇列排程演算法:
設定多個就緒佇列,並為各個佇列賦予不同的優先順序。第乙個佇列的優先順序最高,依次遞減優先順序。
對於各個佇列程序執行時間片的大小也不同,優先順序越高的佇列,分配到的時間片越少。
當第一級隊列為空時,再第二級佇列進行排程,依次類推,各級佇列按照時間片輪轉方式進行排程。
當乙個新程序建立後,首先把它放入第一佇列的末尾。按照fcfs原則排隊等待排程。當輪到該程序執行時,如它在該時間片完成,便可準備撤離系統,如果它在乙個時間片結束時尚未完成,則排程程式便將該程序轉入第二佇列的末尾,再同樣地按照fcfs原則等待排程執行。依次類推。
多級佇列排程演算法視覺化介面 多級反饋佇列排程演算法
多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。多級反饋佇列排程演算法即能使高優先順序的作業得到響應又能使短作業 程序 迅速完成。對比一下fcfs與高優先響應比排程演算法的缺陷 多級 假設為n級 反饋佇列排程演算法可以如下原理 1 設有n個佇列 q1,q...
多級反饋佇列排程演算法
多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。多級反饋佇列排程演算法即能使高優先順序的作業得到響應又能使短作業 程序 迅速完成。對比一下fcfs與高優先響應比排程演算法的缺陷 多級 假設為n級 反饋佇列排程演算法可以如下原理 1 設有n個佇列 q1,q...
多級反饋佇列排程演算法
多級反饋佇列排程演算法是一種cpu處理機排程演算法,unix作業系統採取的便是這種排程演算法。多級反饋佇列排程演算法即能使高優先順序的作業得到響應又能使短作業 程序 迅速完成。對比一下fcfs與高優先響應比排程演算法的缺陷 多級 假設為n級 反饋佇列排程演算法可以如下原理 1 設有n個佇列 q1,q...