计算机操作系统——处理机调度算法
計(jì)算機(jī)操作系統(tǒng)——處理機(jī)調(diào)度算法
一、處理機(jī)調(diào)度的層次和調(diào)度算法的目標(biāo)
1.處理及調(diào)度的層次
主要用于:多道批處理系統(tǒng)
2.處理機(jī)調(diào)度算法目標(biāo)
處理機(jī)調(diào)度算法的共同目標(biāo)
(1)資源利用率 CPU的利用率: (2)公平性:讓所有進(jìn)程獲得合理的CPU時(shí)間,盡量不產(chǎn)生饑餓現(xiàn)象
(3)平衡性
(4)策略強(qiáng)制執(zhí)行
批處理系統(tǒng)的目標(biāo)
(1)平均周轉(zhuǎn)時(shí)間短
周轉(zhuǎn)時(shí)間=等待時(shí)間+執(zhí)行時(shí)間=完成時(shí)刻-到達(dá)時(shí)刻
平均周轉(zhuǎn)時(shí)間=各進(jìn)程周轉(zhuǎn)時(shí)間之和/進(jìn)程的個(gè)數(shù)
帶權(quán)周轉(zhuǎn)時(shí)間=周轉(zhuǎn)時(shí)間/CPU提供服務(wù)的時(shí)間
(2)系統(tǒng)吞吐量高 吞吐量:單位時(shí)間內(nèi)系統(tǒng)完成的作業(yè)數(shù),它與批處理作業(yè)的平均長度有關(guān)
(3)處理機(jī)利用率高
分時(shí)系統(tǒng)的目標(biāo)
(1)響應(yīng)時(shí)間按快
(2)均衡性
實(shí)時(shí)系統(tǒng)的目標(biāo)
(1)截止時(shí)間的保證
(2)可預(yù)測性
二、 非搶占式調(diào)度算法
1.先來先服務(wù)調(diào)度算法(FCFS,First-Come-First-Served)
- 算法規(guī)則:按照作業(yè)/進(jìn)程到達(dá)的先后順序進(jìn)行服務(wù)
- 優(yōu)點(diǎn):公平,實(shí)現(xiàn)簡單
- 缺點(diǎn):帶權(quán)周轉(zhuǎn)時(shí)間長,對長作業(yè)有利,短作業(yè)不利
例題詳解:(解題方式我習(xí)慣于用數(shù)軸表示,也可以畫表格,但是感覺不如數(shù)軸看著形象)
2.短作業(yè)優(yōu)先調(diào)度算法(SJF,Short-Job-First)
- 算法規(guī)則:最短的進(jìn)程/作業(yè)優(yōu)先得到服務(wù)
- 該算法也有搶占式
- 優(yōu)點(diǎn):減少了平均等待時(shí)間和平均周轉(zhuǎn)時(shí)間
- 缺點(diǎn):對短作業(yè)有利,長作業(yè)不利,容易產(chǎn)生饑餓現(xiàn)象;必須預(yù)知作業(yè)的運(yùn)行時(shí)間;人——機(jī)無法實(shí)現(xiàn)交互;未考慮作業(yè)的緊迫程度,不能保證緊迫性作業(yè)及時(shí)得到處理。
例題詳解:
3.高響應(yīng)比優(yōu)先調(diào)度算法(HRRN,Highest-Response-Ratio-Next)
- 算法規(guī)則:每次調(diào)度時(shí)先計(jì)算響應(yīng)比,選擇響應(yīng)比最高的進(jìn)行服務(wù)
- 優(yōu)點(diǎn):避免了長作業(yè)饑餓的問題,集合了SJF和FCFS的優(yōu)點(diǎn)
響應(yīng)比大的優(yōu)先調(diào)度(不值得等待的進(jìn)程優(yōu)先調(diào)度)
響應(yīng)比越小,等得越值得
例題詳解:
三、搶占式調(diào)度算法
進(jìn)程調(diào)度的機(jī)制:(1)排隊(duì)器(2)分派器(3)上下文切換器
進(jìn)程調(diào)度方式:搶占式、非搶占式
搶占式的剝奪原則:(1)優(yōu)先權(quán)原則 (2)短進(jìn)程優(yōu)先原則 (3)時(shí)間片原則
1.輪轉(zhuǎn)調(diào)度算法(時(shí)間片輪轉(zhuǎn))
輪轉(zhuǎn)調(diào)度算法:
(1)基本原理:將所有就緒進(jìn)程按FCFS排成一個(gè)就緒隊(duì)列,系統(tǒng)設(shè)置每隔一定時(shí)間便產(chǎn)生一次中斷,去激活進(jìn)程調(diào)度程序進(jìn)行調(diào)度,把CPU分配給隊(duì)首進(jìn)程,并令其執(zhí)行下一個(gè)時(shí)間片…
(2)切換機(jī)制:
a.若一個(gè)時(shí)間片尚未用完,正在運(yùn)行的進(jìn)程便已經(jīng)完成,就立即激活調(diào)度程序,將它從就緒隊(duì)列中刪除,再調(diào)度就緒隊(duì)列中隊(duì)首的進(jìn)程進(jìn)行,并啟動一個(gè)新的時(shí)間片。
b.在時(shí)間片用完時(shí),如果進(jìn)程尚未運(yùn)行完成,調(diào)度程序?qū)阉屯途w隊(duì)列的末尾。
時(shí)間片大小的確定:
(1)時(shí)間片太小:增加系統(tǒng)的開銷
(2)時(shí)間片太大:時(shí)間片輪轉(zhuǎn)便退化為FCFS算法,無法滿足交互式用戶需求
時(shí)間片輪轉(zhuǎn)調(diào)度算法常用于分時(shí)操作系統(tǒng),更注重“響應(yīng)時(shí)間”,因而此處不計(jì)算周轉(zhuǎn)時(shí)間
2.優(yōu)先級調(diào)度算法
(分為搶占式和非搶占式)
優(yōu)先級類型:
(1)靜態(tài)優(yōu)先級
(2)動態(tài)優(yōu)先級
3.多級反饋隊(duì)列調(diào)度算法
調(diào)度機(jī)制
- 首先設(shè)置多級就緒隊(duì)列
每個(gè)就緒隊(duì)列分配不同的時(shí)間片,優(yōu)先級高的為第一隊(duì)列,時(shí)間片最小,隨著就緒隊(duì)列級別的降低,時(shí)間片逐漸增大。 - 每個(gè)進(jìn)程按照先來先服務(wù)調(diào)度算法
一個(gè)進(jìn)程就緒后進(jìn)入第一級隊(duì)列末尾 - 當(dāng)有一個(gè)優(yōu)先級更高的進(jìn)程就緒時(shí),可以搶占CPU,被強(qiáng)占進(jìn)程回到原來一級的就緒隊(duì)列末尾。
- 當(dāng)?shù)谝患墑e隊(duì)列空時(shí),就去調(diào)度第二隊(duì)列,…以此類推。
- 當(dāng)時(shí)間片結(jié)束后,進(jìn)程放棄CPU,轉(zhuǎn)入下一級隊(duì)列。
多級反饋隊(duì)列示意圖:
總結(jié)
以上是生活随笔為你收集整理的计算机操作系统——处理机调度算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机组成原理——机器字长、指令字长、存
- 下一篇: 操作系统基本特性——并发、共享、虚拟、异