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