王道操作系统考研笔记——2.2.0 交互式系统调度算法
2.2.0 交互式系統(tǒng)調(diào)度算法
知識總覽
2.2.0.1 時間片輪轉(zhuǎn)
| 英文名 | RR,Round-Robin |
| 算法思想 | 公平地、輪流地為各個進程服務(wù),讓每個進程在一定時間間隔內(nèi)都可以得到響應 |
| 算法規(guī)則 | 按照各進程到達就緒隊列的順序,輪流讓各個進程執(zhí)行一個時間片。若進程未在一個時間片內(nèi)執(zhí)行完,則剝奪處理機,將進程重新放到就緒隊列隊尾重新排隊 |
| 用于進程/作業(yè)調(diào)度 | 用于進程調(diào)度,只有作業(yè)放入內(nèi)存建立了相應的進程后,才能被分配處理機時間片 |
| 是否可搶占? | 若進程未能在時間片內(nèi)運行完,將被強行剝奪處理機使用權(quán),因此時間片輪轉(zhuǎn)調(diào)度算法屬于搶占式的算法。由時鐘裝置發(fā)出時鐘中斷來通知CPU時間片已到 |
| 優(yōu)缺點 | 優(yōu)點:公平;響應快,適用于分時操作系統(tǒng) 缺點:由于高頻率的進程切換,因此有一定開銷;不區(qū)分任務(wù)的緊急程度 |
| 是否會導致饑餓 | 否 |
例題:各進程到達就緒隊列的時間、需要的運行時間如下表所示。使用時間片輪轉(zhuǎn)調(diào)度算法,分析時間片大小分別是2、5時進程運行情況。
需要注意的是,如果時間片太大,使得每個進程都可以在一個時間片內(nèi)就完成,那么時間片輪轉(zhuǎn)調(diào)度算法就會退化為先來先服務(wù)調(diào)度算法,并且會增大進程響應時間,因此時間片不能太大。
另一方面,進程調(diào)度、切換是有時間代價的(保存、恢復允許環(huán)境),因此如果時間片太小,會導致進程切換過于頻繁,系統(tǒng)會花大量的時間來處理進程切換,從而導致實際用于進程執(zhí)行的時間比例減少,可見時間片也不能太小。
一般來說,設(shè)計時間片時要讓切換進程的開銷占比不超過1%。
2.2.0.2 優(yōu)先級調(diào)度算法
| 算法思想 | 隨著計算機的發(fā)展,特別是實時操作系統(tǒng)的出現(xiàn),越來越多的應用場景需要根據(jù)任務(wù)的緊急程度來決定處理順序 |
| 算法規(guī)則 | 各個作業(yè)/進程有各自的優(yōu)先級,調(diào)度時選擇優(yōu)先級最高的作業(yè)/進程 |
| 用于進程/作業(yè)調(diào)度 | 既可以用于作業(yè)調(diào)度,也可用于進程調(diào)度。甚至還會用于之后學習的I/O調(diào)度中 |
| 是否可搶占? | 搶占式、非搶占式都有。做題時的區(qū)別在于;非搶占式只需在進程主動放棄處理機時進行調(diào)度即可,非搶占式還需在就緒隊列變化時,檢查是否會發(fā)生搶占 |
| 優(yōu)缺點 | 優(yōu)點:用優(yōu)先級區(qū)分緊急程度、重要程度,適用于實時操作系統(tǒng),可靈活地調(diào)整對各種作業(yè)/進程的偏好程度。 缺點:若源源不斷地有高優(yōu)先級進程到來,則可能導致饑餓。 |
| 是否會導致饑餓 | 會 |
2.2.0.3 多級反饋隊列
讓我們回顧一下前面學習的各種調(diào)度算法:FCFS算法的優(yōu)點是公平;SJF算法的優(yōu)點是能盡快處理完短作業(yè),平均等待/周轉(zhuǎn)時間等參數(shù)很優(yōu)秀;而時間片輪轉(zhuǎn)調(diào)度算法可以讓各個進程得到及時的響應;優(yōu)先級調(diào)度算法可以靈活地調(diào)整各種進程被服務(wù)的機會。
綜上所述,我們能否對其他算法做一個折中權(quán)衡,得到一個綜合表現(xiàn)優(yōu)秀平衡的算法呢?根據(jù)這個想法,人們想出了多級反饋隊列調(diào)度算法。
2.2.0.4 小結(jié)
總結(jié)
以上是生活随笔為你收集整理的王道操作系统考研笔记——2.2.0 交互式系统调度算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为交换机链路聚合使用ENSP模拟器进行
- 下一篇: sdn框架的计算机网络管理,清华SDN实