批處理系統(tǒng)中采用的調(diào)度算法
重要指標(吞吐量,周轉(zhuǎn)時間,CPU利用率,公平平衡)
非搶占式的先來先服務(wù)算法(FCFS):按照進程就緒的先后順序使用CPU
特點:公平,實現(xiàn)簡單,但是長進程后面的短進程需要等待很長時間,不利于用戶體驗。
非搶占式的最短作業(yè)優(yōu)先(SJF):具有最短完成時間的進程優(yōu)先執(zhí)行
最短剩余時間優(yōu)先(SRTN):SJF搶占式版本,即當一個新就緒的進程比當前運行進程具有更短完成時間時,系統(tǒng)搶占當前進程,選擇新就緒的進程執(zhí)行。
短作業(yè)優(yōu)先調(diào)度算法特點:改善短作業(yè)的周轉(zhuǎn)時間,但如果源源不斷有短任務(wù)到來,可能使長的任務(wù)長時間得不到運行,產(chǎn)生饑餓現(xiàn)象。
最高相應(yīng)比優(yōu)先算法(HRRN):是一個綜合算法,調(diào)度時,首先計算每個進程的響應(yīng)比R,之后總是選擇R最高的進程執(zhí)行。
響應(yīng)比R=(等待時間+處理時間)/處理時間
交互系統(tǒng)中采用的調(diào)度算法
重要指標(響應(yīng)時間,公平平衡)
時間片輪轉(zhuǎn)調(diào)度算法: 每個進程被分配一個時間片,允許該進程在該時間段運行,如果在時間片結(jié)束時該進程還在運行,則剝奪CPU并分配給另一個進程,如果該進程在時間片結(jié)束前阻塞或結(jié)束,則CPU立即進行切換。
當時間片選擇太長,其降級為先來先服務(wù)算法,引起對短的交互請求響應(yīng)時間長
當時間片選擇太短,會導致頻繁的進程切換,浪費CPU時間。
通常選擇為20ms~50ms.
對進程表中不同進程的大小差異較大的有利,而對進程都是相同大小的不利。
虛擬輪轉(zhuǎn)法:主要基于時間片輪轉(zhuǎn)法進行改進,解決在CPU調(diào)度中對于I/O密集型進程的不友好。其設(shè)置了一個輔助隊列,對于I/O型進程執(zhí)行完一個時間片之后,則進入輔助隊列,CPU調(diào)度時總是先檢查輔助隊列是否為空,如果不為空總是優(yōu)先調(diào)度輔助隊列里的進程,直到為空,才調(diào)度就緒隊列的進程。
最高優(yōu)先級調(diào)度算法:選擇優(yōu)先級最高的進程優(yōu)先執(zhí)行。
優(yōu)先級可以靜態(tài)不變,也可以動態(tài)調(diào)整
優(yōu)先數(shù)決定優(yōu)先級
就緒隊列可以按照優(yōu)先級組織
實現(xiàn)簡單,但不公平,可能導致優(yōu)先級低的進程產(chǎn)生饑餓現(xiàn)象。
可能產(chǎn)生優(yōu)先級反轉(zhuǎn)問題(基于優(yōu)先級的搶占式算法),即一個低優(yōu)先級進程持有一個高優(yōu)先級進程所需要的資源,使得高優(yōu)先級進程等待低優(yōu)先級進程運行。
多級反饋隊列調(diào)度算法:
設(shè)置多個就緒隊列,并為各個隊列賦予不同的優(yōu)先級。第一個隊列的優(yōu)先級最高,依次遞減優(yōu)先級。
對于各個隊列進程執(zhí)行時間片的大小也不同,優(yōu)先級越高的隊列,分配到的時間片越少。
當?shù)谝患夑犃袨榭諘r,再第二級隊列進行調(diào)度,依次類推,各級隊列按照時間片輪轉(zhuǎn)方式進行調(diào)度。
當一個新進程創(chuàng)建后,首先把它放入第一隊列的末尾。按照FCFS原則排隊等待調(diào)度。當輪到該進程執(zhí)行時,如它在該時間片完成,便可準備撤離系統(tǒng),如果它在一個時間片結(jié)束時尚未完成,則調(diào)度程序便將該進程轉(zhuǎn)入第二隊列的末尾,再同樣地按照FCFS原則等待調(diào)度執(zhí)行。依次類推。
各種調(diào)度算法比較:
-
cpu
+關(guān)注
關(guān)注
68文章
11279瀏覽量
225025 -
算法
+關(guān)注
關(guān)注
23文章
4784瀏覽量
98076
發(fā)布評論請先 登錄
變頻器使用過程中的參數(shù)調(diào)試
Ubuntu系統(tǒng)音頻調(diào)試指南:解決錄音異常問題
C語言增量式PID的通用算法
RISC-V 算法原理及串口通信
CPU里真的有黃金:看完秒懂
信號發(fā)生器如何與波束賦形算法配合優(yōu)化?
DFT算法與FFT算法的優(yōu)劣分析
Aurix Development Studio 中是否有允許在 SCR 端添加調(diào)試編譯器選項的功能?
調(diào)試工具:Eclipse調(diào)試工具欄與窗口的深入分析
硬件調(diào)試:JLink 驅(qū)動配置與調(diào)試技巧
主板和CPU是一個東西嗎?有什么區(qū)別?
如何解決Air780EPM開發(fā)中的調(diào)試難題?深度解析高效調(diào)試方法
前端調(diào)試實踐
CPU中的調(diào)試算法有什么不同
評論