1.評價調度算法的主要指標算法
週轉時間:進程進入就緒隊列直到進程執行結束所用的時間。spa
響應時間:進程進入就緒隊列後被到被CPU調度所用的時間。設計
2.常見的調度算法排序
FIFO:先來先服務算法--基本思想按照做業進入就緒隊列的順序,選擇先到的做業被CPU調度。假如做業的長度比較平均,效果不錯,可是隊列
若是長做業比較多先到就緒隊列就會致使響應時間、週轉時間比較長。屬於非搶佔策略進程
優勢:實現簡單;缺點:效果不怎樣好。class
SJF:短做業優先算法;在就緒隊列中按照做業長短排序,選出最短的做業執行,存在非搶佔和搶佔的兩種,對於非搶佔的計算機
在長做業執行狀況下,後到的短做業不能搶佔,週轉時間依舊很長。對於搶佔的,新來的短做業能夠和如今的做業的剩餘時間比較di
若是執行時間短,就能夠獲得CPU的執行權。週轉時間就會減少。時間
RR:輪轉法--出現的緣由是隨着計算機的發展,人機交互愈來愈重要,對於響應時間的要求越高,因此出現了輪轉法調度。
該算的思想:設置一個時間片,按照就緒隊列中順序,每一個做業有一個時間片,輪流執行隊列中的做業。時間片到達是由
時鐘中斷控制,時間到了切換到內核態由,OS調度下一個做業執行。週轉時間會比SJF長。
優勢:保證響應時間比較短。注意:時間片大小的選擇很關鍵;時間片太小,容易形成做業的頻繁切換,時間浪費週轉時間也長
時間片過長:該算法就退化成FIFO--先來先服務。
多優先級反饋隊列:一般前面介紹的算法效果對於週轉時間和響應時間是相互矛盾的,如今想設計一個策略兼顧輪轉法和SJF搶佔型
具體實現:OS維護多個優先級不一樣的隊列;每隊列隊列內部採用輪轉法調度。進程建立完成後,通用放在高優先級的隊列中,根據一次執行的結果
調整進程的優先級;假如:分配的時間片都被一直是CPU操做,則能夠判斷出該進程是CPU綁定的進程,對響應時間不敏感;能夠下降其優先級;
放入優先級低的隊列,假如分給的時間片沒用完就放棄CPU,則說明進程是IO綁定的,對響應時間敏感,因此優先級不變。
注意:這個過程一種是動態的,由於進程某段時間可能就在IO操做,後面可能一直是CPU操做,只要是用完CPU時間片,就要降級處理。