常見調(diào)度算法

先來先服務(wù)(FCFS)調(diào)度算法
短作業(yè)優(yōu)先(SJF)調(diào)度算法
優(yōu)先級調(diào)度算法
高響應(yīng)比優(yōu)先調(diào)度算法
時間片輪轉(zhuǎn)調(diào)度算法
多級反饋隊列調(diào)度算法(集合了前幾種算法的優(yōu)點)

先來先服務(wù)(FCFS)調(diào)度算法

這個算法是操作系統(tǒng)中最簡單的調(diào)度算法捆探,顧名思義,就是誰先來誰先用處理機辞嗡,就和我們食堂排隊打飯一樣∠哿疲可以看的出來糜颠,這種算法是講究公平的,不管你是什么進程瑞凑,都得按照先來后到的順序來用處理機会喝。它適用于進程調(diào)度和作業(yè)調(diào)度陡叠。

雖然說這個算法體現(xiàn)了公平性玩郊,但是萬一先到達的進程或者是作業(yè)需要的用時很長,那么就會使得后面的作業(yè)或進程(特別是后面的作業(yè)是短作業(yè)或短進程的時候)等待很久枉阵,這樣就會大大的降低處理機調(diào)度以及處理機運行的效率译红。

所以說,這個算法雖然簡單并且公平兴溜,但是總體來講侦厚,對長作業(yè)或者長進程有利,而且效率比較低拙徽,特別是當(dāng)一個進程需要多次請求I/O的時候刨沦,會對后面排隊的進程造成很大的影響。

FCFS


短作業(yè)優(yōu)先(SJF)調(diào)度算法

雖然它叫短作業(yè)優(yōu)先算法斋攀,但它同樣適用于進程調(diào)度已卷。而且,從名字上來看淳蔼,這個調(diào)度算法是為短作業(yè)量身定做的,當(dāng)進行作業(yè)調(diào)度的時候裁眯,該調(diào)度算法選擇一個估計運行時間最短的作業(yè)進入內(nèi)存鹉梨,當(dāng)進行進程調(diào)度的時候,該算法從就緒隊列里面穿稳,挑一個估計運行時間最短的進程存皂,并將處理機分配給它。

當(dāng)然逢艘,這個名字我們也可以看出旦袋,這個算法,對長作業(yè)是很不利的它改,當(dāng)我們的就緒隊列里面有很多短作業(yè)的時候疤孕,我們的長作業(yè)就會很長時間都得不到調(diào)度(俗稱饑餓現(xiàn)象),同時不知道大家注意到?jīng)]有央拖,短不等于重要祭阀,如果說重要的作業(yè)正是那些長作業(yè),那么我們這個調(diào)度算法也就沒有那么重要了鲜戒。最后一點专控,就是我上面所說的,是估計運行時間遏餐,這個估計其實是用戶提供的估計時間伦腐,實際的運行時間,其實大家都不知道失都,所以說其實這個算法也不能真的保證可以實現(xiàn)短作業(yè)優(yōu)先柏蘑。

SJF


優(yōu)先級調(diào)度算法

在上一個算法中颖系,我提到重要性這一個詞,我們肯定是希望我們的處理機優(yōu)先處理比較重要的事情辩越,就像我們的人一樣嘁扼,肯定先處理重要的事情。

所以我們就有了優(yōu)先級調(diào)度的算法黔攒,這個算法可以優(yōu)先調(diào)度重要的進程或者作業(yè)趁啸。

如果說我們更仔細的考慮的話,我們可以將這個調(diào)度算法更細化督惰。

\1. 如果說考慮高優(yōu)先級能否搶占正在運行的進程不傅,我們可以將調(diào)度算法分為:

非剝奪式優(yōu)先級調(diào)度算法:它的思想就是,就算有個更高優(yōu)先級的進程出現(xiàn)赏胚,我也會先運行完當(dāng)前的進程

剝奪式優(yōu)先級調(diào)度算法:它的就相反访娶,當(dāng)有個更高優(yōu)先級的進程出現(xiàn),就暫停當(dāng)前運行的進程觉阅。

\2. 如果說根據(jù)進程創(chuàng)建后進程的優(yōu)先級是否可以改變崖疤,可以將優(yōu)先級分為兩種:

靜態(tài)優(yōu)先級: 優(yōu)先級在創(chuàng)建進程的時候就確定了,直到進程結(jié)束典勇,這個優(yōu)先級都不會改變

動態(tài)優(yōu)先級: 在進程運行的過程中劫哼,根據(jù)進程運行的情況來調(diào)整優(yōu)先級,比如說某個進程等待了很久割笙,就可以考慮把這個進程的優(yōu)先級調(diào)高权烧,也可以根據(jù)進程占有cpu時間的長短,等待cpu的長短等伤溉。

一般來說般码,我們設(shè)置優(yōu)先級可以根據(jù)以下原則:

(1)系統(tǒng)進程高于用戶進程。

(2)交互型進程高于非交互型進程乱顾,因為交互型進程需要被快速的響應(yīng)板祝,比如說我們的游戲。

(3)I/O型進程高于計算型進程糯耍,因為I/O設(shè)備的處理速度比cpu慢的多扔字,所以說我們?nèi)绻孖/O設(shè)備盡快開始工作,我們的系統(tǒng)的運行效率會大大提高温技。

優(yōu)先級調(diào)度算法


真題試做

某系統(tǒng)正在執(zhí)行三個進程P1革为,P2,和P3舵鳞,各個進程的計算(CPU)時間和I/O時間比例如下表所示震檩。

[圖片上傳失敗...(image-32af6-1664535201668)]

為了提高系統(tǒng)資源利用率,合理的進程優(yōu)先級設(shè)置應(yīng)該為()

A. P1>P2>P3

B. P3>P2>P1

C. P2>P1=P3

D. P1>P2=P3

解析:根據(jù)進程優(yōu)先級設(shè)置的規(guī)則,I/O型進程的優(yōu)先級大于計算型進程抛虏,所以博其,正確的優(yōu)先級設(shè)置應(yīng)為P3>P2>P1,所以選B迂猴。


高響應(yīng)比優(yōu)先調(diào)度算法

這個調(diào)度算法慕淡,只用于作業(yè)調(diào)度,它考慮了每個作業(yè)的等待時間和估計的運行時間沸毁,構(gòu)成我們的相應(yīng)比峰髓。響應(yīng)比如下:

響應(yīng)比計算公式

可以看到當(dāng)?shù)却龝r間都相同的時候,我們的要求服務(wù)時間越短息尺,我們的響應(yīng)比越高携兵,這個時候,就有點像我們的短作業(yè)優(yōu)先調(diào)度算法搂誉。

當(dāng)要求服務(wù)的時間都相同的時候徐紧,等待時間越長,那我們的響應(yīng)比就越高炭懊,此時就像我們的先來先服務(wù)算法一樣并级。

同時,可以注意到的是凛虽,如果說我們某個作業(yè)的等待時間很長(長作業(yè))死遭,那么這個作業(yè)的響應(yīng)比就會提高,也就說凯旋,不會出現(xiàn)長作業(yè)饑餓的現(xiàn)象。

所以才有人說钉迷,高相應(yīng)比優(yōu)先調(diào)度算法是先來先服務(wù)和短作業(yè)優(yōu)先兩種算法的融合。

高響應(yīng)比優(yōu)先調(diào)度算法


時間片輪轉(zhuǎn)調(diào)度算法

這個算法是在之前介紹分時系統(tǒng)的時候提到過。

簡單的介紹一下這個算法的流程:進程按照到達時間進行排隊魂毁,然后調(diào)度程序每次都選隊列的第一個進程執(zhí)行声旺,但是每次每個運行的進程僅僅只能運行一個時間片,當(dāng)時間片完了后舰蟆,當(dāng)前進程釋放處理機趣惠,如果說當(dāng)前進程沒有完成的話,那么這個進程就會到等待隊列的末尾身害,繼續(xù)等待下一次時間片

可以看到的是味悄,時間片的大小對我們的系統(tǒng)性能影響很大。如果時間片足夠大到恰好所有進程都可以在一個時間片內(nèi)執(zhí)行完塌鸯,那么這個算法就和我們之前說的先來先服務(wù)調(diào)度算法沒有什么區(qū)別了侍瑟。

如果說時間片很小,那么處理機就會頻繁的在進程之間切換。這樣真正留給進程運行的時間就會變少涨颜。

但時間片的長度也不是固定的费韭,通常我們都是按照:系統(tǒng)響應(yīng)時間,就緒隊列中的進程數(shù)庭瑰,系統(tǒng)的處理能力這幾個因素來確定時間片的大小星持。

時間片輪轉(zhuǎn)調(diào)度算法


多級反饋隊列調(diào)度算法

這個算法相比與之前的算法,就比較高級了弹灭,它綜合了時間片輪轉(zhuǎn)調(diào)度算法和優(yōu)先級調(diào)度算法督暂,可以達到動態(tài)調(diào)整進程優(yōu)先級和時間片大小的目的。

多級反饋隊列調(diào)度算法

它的調(diào)度機制如下:

(1)設(shè)置多個就緒隊列鲤屡。在系統(tǒng)中設(shè)置多個就緒隊列损痰,并為每個隊列賦予不同的優(yōu)先級,從第一個開始逐個降低酒来。

(2)不同隊列進程中所賦予的執(zhí)行時間也不同卢未,優(yōu)先級越高,時間片越小堰汉。

(3)每個隊列都采用FCFS(先來先服務(wù))算法辽社。輪到該進程執(zhí)行時,若在該時間片內(nèi)完成翘鸭,便撤離操作系統(tǒng)滴铅,否則調(diào)度程序?qū)⑵滢D(zhuǎn)入第二隊列的末尾等待調(diào)度,.......就乓。若進程最后被調(diào)到第N隊列中時汉匙,便采用時間輪轉(zhuǎn)片方式運行。

按隊列優(yōu)先級調(diào)度生蚁。調(diào)度按照優(yōu)先級最高隊列中各進程運行噩翠,僅當(dāng)?shù)谝魂犃锌臻e時才調(diào)度第二隊列進程執(zhí)行。若優(yōu)先級低隊列執(zhí)行中有優(yōu)先級高隊列進程執(zhí)行邦投,應(yīng)立刻將此進程放入隊列末尾伤锚,把處理機分配給新到高優(yōu)先級進程。

多級反饋隊列調(diào)度算法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末志衣,一起剝皮案震驚了整個濱河市屯援,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌念脯,老刑警劉巖狞洋,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異和二,居然都是意外死亡徘铝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惕它,“玉大人怕午,你說我怎么就攤上這事⊙推牵” “怎么了郁惜?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長甲锡。 經(jīng)常有香客問我兆蕉,道長,這世上最難降的妖魔是什么缤沦? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任虎韵,我火速辦了婚禮,結(jié)果婚禮上缸废,老公的妹妹穿的比我還像新娘包蓝。我一直安慰自己,他們只是感情好企量,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布测萎。 她就那樣靜靜地躺著,像睡著了一般届巩。 火紅的嫁衣襯著肌膚如雪硅瞧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天恕汇,我揣著相機與錄音腕唧,去河邊找鬼。 笑死瘾英,一個胖子當(dāng)著我的面吹牛四苇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播方咆,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蟀架!你這毒婦竟也來了瓣赂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤片拍,失蹤者是張志新(化名)和其女友劉穎煌集,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捌省,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡苫纤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卷拘。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡喊废,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出栗弟,到底是詐尸還是另有隱情污筷,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布乍赫,位于F島的核電站瓣蛀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雷厂。R本人自食惡果不足惜惋增,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望改鲫。 院中可真熱鬧诈皿,春花似錦、人聲如沸钩杰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讲弄。三九已至措左,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間避除,已是汗流浹背怎披。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓶摆,地道東北人凉逛。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像群井,于是被迫代替她去往敵國和親状飞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一书斜、處理機調(diào)度相關(guān)基本概念 1诬辈、調(diào)度方式和調(diào)度算法的若干準(zhǔn)則 1)面向用戶的準(zhǔn)則:周轉(zhuǎn)時間短(CPU執(zhí)行用時Ts、...
    e9f3ca3721bc閱讀 5,142評論 0 1
  • 先來先服務(wù)算法 先來先服務(wù)算法是最簡單的調(diào)度算法(FCFS)荐吉,也叫先進先出算法(FIFO) 優(yōu)點:易于理解并且易于...
    奮斗live閱讀 5,014評論 0 1
  • 調(diào)度算法是指:根據(jù)系統(tǒng)的資源分配策略所規(guī)定的資源分配算法焙糟。 一、FCFS——先來先服務(wù)和短作業(yè)(進程)優(yōu)先調(diào)度算法...
    支付寶成都團隊閱讀 17,003評論 5 8
  • 第三章样屠、處理機調(diào)度與死鎖 在多道程序環(huán)境下穿撮,內(nèi)存中存在著多個進程缺脉,其數(shù)目往往多于處理機數(shù)目,這就要求系統(tǒng)能按照...
    Xue先生的貓閱讀 4,811評論 0 3
  • 在操作系統(tǒng)中存在多種調(diào)度算法悦穿,其中有的調(diào)度算法適用于作業(yè)調(diào)度攻礼,有的調(diào)度算法適用于進程調(diào)度,有的調(diào)度算法兩者都適用咧党。...
    saviochen閱讀 1,913評論 0 9