操作系統(tǒng)-進(jìn)程調(diào)度任務(wù)、機(jī)制揩晴、及方式

進(jìn)程調(diào)度的任務(wù)

  1. 保存處理機(jī)的現(xiàn)場(chǎng)信息勋陪。括當(dāng)前進(jìn)程的現(xiàn)場(chǎng)信息,如程序計(jì)數(shù)器硫兰,多個(gè)通用寄存器中的內(nèi)容等诅愚。
  2. 按照某種算法選取進(jìn)程。調(diào)度程序按照某種算法從就緒隊(duì)列中選取一個(gè)進(jìn)程劫映,將其狀態(tài)改為運(yùn)行狀態(tài)违孝,并準(zhǔn)備把處理機(jī)分配給它刹前。
  3. 把處理器分配給進(jìn)程。由分派程序把處理器分配給該進(jìn)程雌桑,此時(shí)需要將選中進(jìn)程的進(jìn)程控制塊內(nèi)有關(guān)處理機(jī)現(xiàn)場(chǎng)的信息裝入處理器相應(yīng)的各個(gè)寄存器中喇喉,把處理器的控制權(quán)交給該進(jìn)程,讓它從上次的斷點(diǎn)處恢復(fù)運(yùn)行

進(jìn)程調(diào)度的機(jī)制

進(jìn)程調(diào)度機(jī)制

為了實(shí)現(xiàn)進(jìn)程調(diào)度校坑,在進(jìn)程調(diào)度機(jī)制中拣技,應(yīng)具有如下三個(gè)基本部分:

  1. 排隊(duì)器
    為了提高進(jìn)程調(diào)度的效率,應(yīng)實(shí)現(xiàn)將系統(tǒng)中所有的就緒進(jìn)程按照一定的策略排成一個(gè)或多個(gè)隊(duì)列耍目,以便調(diào)度程序能盡快地找到它膏斤。以后每當(dāng)有一個(gè)進(jìn)程轉(zhuǎn)變成就緒狀態(tài)時(shí),排隊(duì)器便將它插入到就緒隊(duì)列邪驮。
  2. 分派器
    分派器依據(jù)進(jìn)程調(diào)度程序所選定的程序莫辨,將其從就緒隊(duì)列中取出,然后進(jìn)行從分派器到新選出進(jìn)程間的上下文切換毅访,將處理機(jī)分配給新選出的進(jìn)程衔掸。
  3. 上下文切換器
    • 在對(duì)處理機(jī)進(jìn)行上下文切換時(shí),會(huì)發(fā)生兩步對(duì)上下文切換的操作:
      1. OS保存當(dāng)前進(jìn)程上下文俺抽,即把當(dāng)前進(jìn)程的處理機(jī)寄存器內(nèi)容保存到該進(jìn)程的進(jìn)程控制塊內(nèi)的相應(yīng)單元,再裝入分派程序的上下文较曼,以便分派程序的運(yùn)行
      2. 移出分派程序的上下文磷斧,而把新選進(jìn)程的CPU現(xiàn)場(chǎng)信息裝入到處理機(jī)的各個(gè)相應(yīng)的寄存器中,以便新選進(jìn)程運(yùn)行

在進(jìn)行上下文切換時(shí)捷犹,需要執(zhí)行大量的load和store等操作指令弛饭,以保存寄存器的內(nèi)容


進(jìn)程調(diào)度方式

  • 非搶占式

    • 機(jī)制
      一旦把處理機(jī)分配給某個(gè)進(jìn)程后,就讓它一直運(yùn)行下去萍歉,絕不會(huì)因?yàn)闀r(shí)鐘中斷或其他原因去搶占當(dāng)前正在運(yùn)行的處理機(jī)侣颂,直到該進(jìn)程完成,或因?yàn)榘l(fā)生某事件而被阻塞時(shí)枪孩,才會(huì)把處理機(jī)分配給其它進(jìn)程

    • 引起調(diào)度的因素
      1.進(jìn)程執(zhí)行完畢或因某事件而使其無(wú)法再繼續(xù)運(yùn)行
      2.正在執(zhí)行的進(jìn)程因提出I/O請(qǐng)求而暫停執(zhí)行
      3.在進(jìn)程通信或者同步過(guò)程中憔晒,執(zhí)行了某種原語(yǔ)操作,如BLOCK原語(yǔ)

    • 優(yōu)缺點(diǎn):實(shí)現(xiàn)簡(jiǎn)單蔑舞,系統(tǒng)開(kāi)銷(xiāo)小拒担,適用于大多數(shù)批處理系統(tǒng),但它不能用于分時(shí)系統(tǒng)和大多數(shù)實(shí)時(shí)系統(tǒng)

  • 搶占式

    • 機(jī)制
      允許調(diào)度程序按照某種原則攻询,去暫停某個(gè)正在執(zhí)行的進(jìn)程从撼,將已分配給該進(jìn)程的處理機(jī)重新分配給另一進(jìn)程
    • 原則
      1.優(yōu)先權(quán)原則:允許優(yōu)先級(jí)高的新到進(jìn)程搶占當(dāng)前進(jìn)程的處理機(jī)
      2.短進(jìn)程優(yōu)先原則:允許新到的短進(jìn)程(新到達(dá)進(jìn)程比正在執(zhí)行進(jìn)程尚需運(yùn)行的時(shí)間明顯短)可以搶占當(dāng)前長(zhǎng)進(jìn)程的處理機(jī)
      3.時(shí)間片原則:各進(jìn)程按時(shí)間片輪轉(zhuǎn)運(yùn)行時(shí),正在執(zhí)行的進(jìn)程一個(gè)時(shí)間片用完钧栖,便停止該進(jìn)程的執(zhí)行而重新進(jìn)行調(diào)度

調(diào)度算法:

  1. 輪轉(zhuǎn)調(diào)度算法(round robin, RR)

    • 機(jī)制
      根據(jù)FCFS策略低零,將所有就緒進(jìn)程排成一個(gè)就緒隊(duì)列婆翔,并設(shè)置每隔一段時(shí)間產(chǎn)生一次中斷,激活系統(tǒng)中的進(jìn)程調(diào)度程序掏婶,完成一次調(diào)度啃奴,將CPU分配給隊(duì)首進(jìn)程,令其執(zhí)行气堕。若在時(shí)間片用完之前纺腊,正在運(yùn)行的進(jìn)程便已完成,就立刻激活調(diào)度程序茎芭,將它從就緒隊(duì)列中刪除揖膜,再開(kāi)始下一個(gè)循環(huán)。若時(shí)間片用完梅桩,進(jìn)程尚未執(zhí)行完畢壹粟,則調(diào)度程序就將其送至隊(duì)列的末尾。
    • 關(guān)鍵
      時(shí)間片的選人薨佟:若太小趁仙,意味著會(huì)頻繁地執(zhí)行進(jìn)程調(diào)度和進(jìn)程上下文切換,這無(wú)疑會(huì)增加系統(tǒng)開(kāi)銷(xiāo)垦页。若太長(zhǎng)雀费,極端情況下,每個(gè)進(jìn)程都在一個(gè)時(shí)間片內(nèi)執(zhí)行完成痊焊,則算法退化為FCFS算法盏袄,無(wú)法滿足短作業(yè)和交互式用戶(hù)需求
  2. 優(yōu)先級(jí)調(diào)度算法

    • 類(lèi)型
      靜態(tài)優(yōu)先級(jí):在創(chuàng)建進(jìn)程時(shí)確定,在進(jìn)程整個(gè)運(yùn)行期間保持不變
      動(dòng)態(tài)優(yōu)先級(jí):創(chuàng)建進(jìn)程時(shí)賦一個(gè)初始值薄啥,隨進(jìn)程推進(jìn)或等待時(shí)間增加而改變
    • 機(jī)制
      把處理機(jī)分配給就緒隊(duì)列中優(yōu)先級(jí)最高的進(jìn)程辕羽。若為非搶占式優(yōu)先級(jí)算法,一旦把處理機(jī)分配給就緒隊(duì)列中優(yōu)先級(jí)最高的進(jìn)程后垄惧,該進(jìn)程便一直執(zhí)行下去直至完成刁愿,或者因該進(jìn)程發(fā)生某事件而放棄處理機(jī)時(shí),系統(tǒng)方可將處理機(jī)重新分配給另一優(yōu)先級(jí)最高的進(jìn)程到逊。若為搶占式優(yōu)先級(jí)算法铣口,在進(jìn)程執(zhí)行期間,只要來(lái)了一個(gè)優(yōu)先級(jí)更高的進(jìn)程觉壶,調(diào)度程序就將處理機(jī)分配給新到的優(yōu)先級(jí)最高的進(jìn)程枷踏。
    • 關(guān)鍵
      優(yōu)先級(jí)的確定與維護(hù)
  3. 多隊(duì)列調(diào)度算法

    • 機(jī)制
      該算法將系統(tǒng)中的就緒隊(duì)列從一個(gè)拆分為若干個(gè),將不同類(lèi)型或性質(zhì)的進(jìn)程固定分配到不同的就緒隊(duì)列掰曾,不同的就緒隊(duì)列采用不同的調(diào)度算法旭蠕,一個(gè)就緒隊(duì)列中的進(jìn)程可以設(shè)置不同的優(yōu)先級(jí),不同的就緒隊(duì)列本身也可以設(shè)置不同的優(yōu)先級(jí)。
    • 優(yōu)點(diǎn)
      彌補(bǔ)了低級(jí)調(diào)度算法固定掏熬,單一佑稠,無(wú)法滿足系統(tǒng)中不同用戶(hù)對(duì)進(jìn)程調(diào)度策略的不同要求的缺點(diǎn)。同時(shí)在多處理機(jī)系統(tǒng)中旗芬,該算法由于安排了多個(gè)就緒隊(duì)列舌胶,因此,很方便為每個(gè)處理機(jī)設(shè)置一個(gè)單獨(dú)的就緒隊(duì)列疮丛,這樣幔嫂,不僅對(duì)每個(gè)處理機(jī)的調(diào)度可以實(shí)施不同的調(diào)度策略,對(duì)于一個(gè)含有多個(gè)線程的進(jìn)程而言誊薄,可以根據(jù)要求將其所有線程分配在一個(gè)就緒隊(duì)列履恩,全部在一個(gè)處理機(jī)上執(zhí)行。再者呢蔫,對(duì)于一組需要相互合作的進(jìn)程或線程而言切心,也可以將它們分配在一組處理機(jī)所對(duì)應(yīng)的多個(gè)就緒隊(duì)列,使得他們能同時(shí)獲得處理機(jī)并行執(zhí)行片吊。
  4. 多級(jí)反饋隊(duì)列(multileved feedback queue)調(diào)度算法

    • 機(jī)制
      1. 設(shè)置多個(gè)就緒隊(duì)列
        在系統(tǒng)中設(shè)置多個(gè)就緒隊(duì)列绽昏,并為每個(gè)隊(duì)列賦予不同的優(yōu)先級(jí),第一個(gè)隊(duì)列的優(yōu)先級(jí)最高俏脊,第二個(gè)次之全谤,其余隊(duì)列的優(yōu)先級(jí)逐個(gè)降低,該算法為不同隊(duì)列中進(jìn)程所賦予的執(zhí)行時(shí)間片的大小也各不相同爷贫,在優(yōu)先級(jí)越高的隊(duì)列中认然,其時(shí)間片就越小。如第二個(gè)隊(duì)列時(shí)間片比第一個(gè)的長(zhǎng)一倍......第i+1個(gè)隊(duì)列的時(shí)間片要比第i個(gè)的時(shí)間片長(zhǎng)一倍沸久。以下為示意圖:
        多級(jí)反饋隊(duì)列調(diào)度算法
      2. 每個(gè)隊(duì)列都采用FCFS算法
        每當(dāng)新進(jìn)程進(jìn)入內(nèi)存后,首先將它放入第一隊(duì)列的末尾余蟹,按FCFS原則等待調(diào)度卷胯。當(dāng)輪到該進(jìn)程執(zhí)行時(shí),如果它能在該時(shí)間片內(nèi)完成威酒,便可撤離系統(tǒng)窑睁,否則,即它在一個(gè)時(shí)間片結(jié)束時(shí)尚未完成葵孤,調(diào)度程序?qū)⑺D(zhuǎn)入至第二隊(duì)列的末尾等待調(diào)度担钮;依此類(lèi)推,當(dāng)進(jìn)程被將至第n隊(duì)列后尤仍,則在第n隊(duì)列采用RR方式運(yùn)行
      3. 按隊(duì)列優(yōu)先級(jí)調(diào)度
        調(diào)度程序首先調(diào)度最高優(yōu)先級(jí)隊(duì)列中的諸程序運(yùn)行箫津,且僅當(dāng)?shù)?~(i-1)所有隊(duì)列均為空時(shí),采取調(diào)度第i隊(duì)列中的程序運(yùn)行,若處理機(jī)正在處理的第i隊(duì)列中為某進(jìn)程服務(wù)時(shí)又有新進(jìn)程進(jìn)入任一優(yōu)先級(jí)較高的隊(duì)列苏遥,此時(shí)必須把正在運(yùn)行的進(jìn)程放回第i隊(duì)列的末尾饼拍,而把處理機(jī)分配給新到的高優(yōu)先級(jí)進(jìn)程

如有敘述錯(cuò)誤,歡迎指正~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末田炭,一起剝皮案震驚了整個(gè)濱河市师抄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌教硫,老刑警劉巖叨吮,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瞬矩,居然都是意外死亡茶鉴,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)丧鸯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蛤铜,“玉大人,你說(shuō)我怎么就攤上這事丛肢∥Х剩” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蜂怎,是天一觀的道長(zhǎng)穆刻。 經(jīng)常有香客問(wèn)我,道長(zhǎng)杠步,這世上最難降的妖魔是什么氢伟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮幽歼,結(jié)果婚禮上朵锣,老公的妹妹穿的比我還像新娘。我一直安慰自己甸私,他們只是感情好诚些,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著皇型,像睡著了一般诬烹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弃鸦,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天绞吁,我揣著相機(jī)與錄音,去河邊找鬼唬格。 笑死家破,一個(gè)胖子當(dāng)著我的面吹牛颜说,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播员舵,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼脑沿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了马僻?” 一聲冷哼從身側(cè)響起庄拇,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎韭邓,沒(méi)想到半個(gè)月后措近,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡女淑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年瞭郑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸭你。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屈张,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袱巨,到底是詐尸還是另有隱情阁谆,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布愉老,位于F島的核電站场绿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嫉入。R本人自食惡果不足惜焰盗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咒林。 院中可真熱鬧熬拒,春花似錦、人聲如沸垫竞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)件甥。三九已至捌议,卻和暖如春哼拔,著一層夾襖步出監(jiān)牢的瞬間引有,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工倦逐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留譬正,地道東北人宫补。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像曾我,于是被迫代替她去往敵國(guó)和親粉怕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

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

  • 進(jìn)程和線程 進(jìn)程線程的區(qū)別1抒巢、進(jìn)程是什么贫贝?是具有一定獨(dú)立功能的程序、它是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位蛉谜,重點(diǎn)...
    HeartGo閱讀 1,211評(píng)論 0 4
  • 第三章稚晚、處理機(jī)調(diào)度與死鎖 在多道程序環(huán)境下,內(nèi)存中存在著多個(gè)進(jìn)程型诚,其數(shù)目往往多于處理機(jī)數(shù)目客燕,這就要求系統(tǒng)能按照...
    Xue先生的貓閱讀 4,811評(píng)論 0 3
  • 1.內(nèi)存的頁(yè)面置換算法 (1)最佳置換算法(OPT)(理想置換算法):從主存中移出永遠(yuǎn)不再需要的頁(yè)面涵紊;如無(wú)這樣的...
    杰倫哎呦哎呦閱讀 3,254評(píng)論 1 9
  • 操作系統(tǒng)概論 操作系統(tǒng)的概念 操作系統(tǒng)是指控制和管理計(jì)算機(jī)的軟硬件資源傍妒,并合理的組織調(diào)度計(jì)算機(jī)的工作和資源的分配,...
    野狗子嗷嗷嗷閱讀 11,933評(píng)論 3 34
  • 2017年對(duì)我來(lái)說(shuō)是平凡是人生中第一個(gè)不平凡栖袋,這一年經(jīng)歷生死拍顷,經(jīng)歷高考,感受到親情的溫暖塘幅,也明白了現(xiàn)實(shí)的殘酷昔案。這一...
    望塵莫閱讀 149評(píng)論 0 1