大學(xué)二級學(xué)院網(wǎng)站建設(shè)必要性網(wǎng)站流量統(tǒng)計工具
這篇文章我們來看一下進程調(diào)度算法中的時間片輪轉(zhuǎn)、優(yōu)先級、多級反饋隊列算法
目錄
1.概述
2.時間片輪轉(zhuǎn)調(diào)度算法(RR,Round-Robin)
3.優(yōu)先級調(diào)度算法
4.多級反饋隊列調(diào)度算法
5.分析對比?
1.概述
首先,我們來看一下這篇文章的大體框架:
學(xué)習(xí)算法的大體思路如下:
- 算法思想
- 算法規(guī)則
- 這種調(diào)度算法是用于作業(yè)調(diào)度還是進程調(diào)度?
- 搶占式?非搶占式?
- 優(yōu)點和缺點
- 是否會導(dǎo)致饑餓(饑餓:某進程/作業(yè)長期得不到服務(wù))
2.時間片輪轉(zhuǎn)調(diào)度算法(RR,Round-Robin)
算法思想總結(jié):
下面看一道例題:?
?
3.優(yōu)先級調(diào)度算法
算法思想小結(jié):?
下面看一道例題:?
補充:
就緒隊列未必只有一個,可以按照不同優(yōu)先級來組織。另外,也可以把優(yōu)先級高的進程排在更靠近隊頭的位置
根據(jù)優(yōu)先級是否可以動態(tài)改變,可將優(yōu)先級分為靜態(tài)優(yōu)先級和動態(tài)優(yōu)先級兩種。
- 靜態(tài)優(yōu)先級:創(chuàng)建進程時確定,之后一直不變。
- 動態(tài)優(yōu)先級:創(chuàng)建進程時有一個初始值,之后會根據(jù)情況動態(tài)地調(diào)整優(yōu)先級。
如何合理地設(shè)置類進程的優(yōu)先級?
通常:
- 系統(tǒng)進程優(yōu)先級高于用戶進程
- 前臺進程優(yōu)先級高于后臺進程
- 操作系統(tǒng)更偏好l/O型進程(或稱I/O繁忙型進程)
I/O設(shè)備和CPU可以并行工作。如果優(yōu)先讓I/O繁忙型進程優(yōu)先運行的話,則越有可能讓I/O設(shè)備盡早地投入工作,則資源利用率、系統(tǒng)吞吐量都會得到提升
注:與I/O型進程相對的是計算型進程(或稱CPU繁忙型進程)
如果采用的是動態(tài)優(yōu)先級,什么時候應(yīng)該調(diào)整?
可以從追求公平、提升資源利用率等角度考慮
- 如果某進程在就緒隊列中等待了很長時間,則可以適當(dāng)提升其優(yōu)先級
- 如果某進程占用處理機運行了很長時間,則可適當(dāng)降低其優(yōu)先級
- 如果發(fā)現(xiàn)一個進程頻繁地進行I/O操作,則可適當(dāng)提升其優(yōu)先級
4.多級反饋隊列調(diào)度算法
算法的提出:
FCFS算法的優(yōu)點是公平;SJF算法的優(yōu)點是能盡快處理完短作業(yè),平均等待/周轉(zhuǎn)時間等參數(shù)很優(yōu)秀;時間片輪轉(zhuǎn)調(diào)度算法可以讓各個進程得到及時的響應(yīng);優(yōu)先級調(diào)度算法可以靈活地調(diào)整各種進
程被服務(wù)的機會。
能否對其他算法做個折中權(quán)衡?得到一個綜合表現(xiàn)優(yōu)秀平衡的算法呢?
能,這就是多級反饋隊列調(diào)度算法!
算法思想小結(jié):
下面看一道例題:?
5.分析對比?
注:比起早期的批處理操作系統(tǒng)來說,由于計算機造價大幅降低,因此之后出現(xiàn)的交互式操作系統(tǒng)(包括分時操作系統(tǒng)、實時操作系統(tǒng)等)更注重系統(tǒng)的響應(yīng)時間、公平性、平衡性等指標(biāo)。而這幾種算法恰好也能較好地滿足交互式系統(tǒng)的需求。因此這三種算法適合用于交互式系統(tǒng)。(比如UNIX使用的就是多級反饋隊列調(diào)度算法)
?
?
?
?
?
?
?