【5 操作系统调度】
5 操作系統(tǒng)調(diào)度
- 1. 調(diào)度機(jī)制
- 1.1 長(zhǎng)期、中期、短期調(diào)度
- 2. 單核調(diào)度策略
- 2.1 經(jīng)典調(diào)度
- 2.2 優(yōu)先級(jí)調(diào)度
- 2.3 公平共享調(diào)度
- 2.4 實(shí)時(shí)調(diào)度
- 3. 多核調(diào)度策略
- 3.1 負(fù)載分擔(dān)
- 3.2 協(xié)同調(diào)度
- 3.3 兩級(jí)調(diào)度
- 3.4 負(fù)載追蹤與負(fù)載均衡
1. 調(diào)度機(jī)制
1.1 長(zhǎng)期、中期、短期調(diào)度
進(jìn)程調(diào)度機(jī)制負(fù)責(zé)進(jìn)程在這些狀態(tài)間的轉(zhuǎn)換。進(jìn)程調(diào)度根據(jù)職責(zé)的不同,具體分為長(zhǎng)期、中期、短期調(diào)度。
- 長(zhǎng)期調(diào)度的觸發(fā)間隔較長(zhǎng),它粗粒度地決定是否應(yīng)該將一個(gè)新的進(jìn)程納人調(diào)度管理,負(fù)責(zé)增加系統(tǒng)中可被調(diào)度的進(jìn)程的數(shù)量。
- 中期調(diào)度的觸發(fā)相對(duì)頻繁,它輔助換頁(yè)機(jī)制,負(fù)責(zé)限制系統(tǒng)中可被調(diào)度的進(jìn)程的數(shù)量。
- 短期調(diào)度的觸發(fā)最為頻繁,它負(fù)責(zé)細(xì)粒度地調(diào)度進(jìn)程的執(zhí)行,做出相應(yīng)的調(diào)度決策。
2. 單核調(diào)度策略
2.1 經(jīng)典調(diào)度
- 先到先得(FIFO / FCFS):
選取運(yùn)行隊(duì)列中的第一個(gè)任務(wù),將其移出運(yùn)行隊(duì)列并執(zhí)行;當(dāng)一個(gè)任務(wù)執(zhí)行完后,它會(huì)被再次放入運(yùn)行隊(duì)列的隊(duì)尾。- 缺點(diǎn):
- 在長(zhǎng)短任務(wù)混合的場(chǎng)景下對(duì)短任務(wù)不友好。
調(diào)度時(shí)會(huì)選擇運(yùn)行時(shí)間最短的任務(wù)執(zhí)行。
- 缺點(diǎn):
- 必須預(yù)知任務(wù)的運(yùn)行時(shí)間。
- 其表現(xiàn)嚴(yán)重依賴于任務(wù)到達(dá)時(shí)間點(diǎn)
- 缺點(diǎn):
- 長(zhǎng)任務(wù)饑餓。
- 需要預(yù)知任務(wù)的運(yùn)行時(shí)間。
非搶占式調(diào)度:調(diào)度器必須等一個(gè)任務(wù)執(zhí)行完或者主動(dòng)退出執(zhí)行才能升始下—個(gè)調(diào)度。
搶占式調(diào)度:任務(wù)到達(dá)系統(tǒng)時(shí)會(huì)進(jìn)行調(diào)度,有可能會(huì)中斷當(dāng)前正在執(zhí)行的任務(wù),轉(zhuǎn)而執(zhí)行其他任務(wù)。
- 時(shí)間片輪轉(zhuǎn)(RR):
需要為任務(wù)設(shè)置時(shí)間片,限定任務(wù)每次執(zhí)行的時(shí)間。當(dāng)前任務(wù)執(zhí)行完時(shí)間片后,就切換到運(yùn)行隊(duì)列中的下一個(gè)任務(wù)。- 缺點(diǎn)
- 在任務(wù)運(yùn)行時(shí)間相似的場(chǎng)景下平均周轉(zhuǎn)時(shí)間高。
響應(yīng)時(shí)間:指的是從用戶發(fā)起請(qǐng)求到任務(wù)響應(yīng)用戶所需的時(shí)間。
時(shí)間片:每個(gè)請(qǐng)求一次可以占用多長(zhǎng)時(shí)間的資源。
2.2 優(yōu)先級(jí)調(diào)度
優(yōu)先級(jí):會(huì)根據(jù)重要程度給每個(gè)請(qǐng)求分配優(yōu)先級(jí),優(yōu)先級(jí)高的請(qǐng)求可以優(yōu)先使用資源。
- 多級(jí)隊(duì)列(MLQ):
- 每個(gè)任務(wù)會(huì)被分配預(yù)先設(shè)置好的優(yōu)先級(jí),每個(gè)優(yōu)先級(jí)對(duì)應(yīng)一個(gè)隊(duì)列,任務(wù)會(huì)被存儲(chǔ)在對(duì)應(yīng)的優(yōu)先級(jí)隊(duì)列中。如果優(yōu)先級(jí)不同的任務(wù)同時(shí)處于預(yù)備狀態(tài),那么調(diào)度器應(yīng)該傾向于調(diào)度優(yōu)先級(jí)較高的任務(wù),因此一個(gè)任務(wù)必須等到所有優(yōu)先級(jí)比它高的任務(wù)調(diào)度完才可以被調(diào)度。處于相同優(yōu)先級(jí)隊(duì)列的任務(wù)。它們內(nèi)部的調(diào)度方式?jīng)]有統(tǒng)一標(biāo)準(zhǔn),可以針對(duì)性地為不同隊(duì)列采用不同調(diào)度策略,例如FCPS策略或RR策略。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-w69jd02I-1661672910708)(https://img-blog.csdnimg.cn/6375960d780b4c1cb786b051f79a5fbd.png)] - 缺點(diǎn):
-
低優(yōu)先級(jí)任務(wù)饑餓 [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-CYLJOcEC-1661672910709)(https://img-blog.csdnimg.cn/2fe2d6fca3bf48be968a6d1e42e39286.png)]
-
優(yōu)先級(jí)反轉(zhuǎn):
- 每個(gè)任務(wù)會(huì)被分配預(yù)先設(shè)置好的優(yōu)先級(jí),每個(gè)優(yōu)先級(jí)對(duì)應(yīng)一個(gè)隊(duì)列,任務(wù)會(huì)被存儲(chǔ)在對(duì)應(yīng)的優(yōu)先級(jí)隊(duì)列中。如果優(yōu)先級(jí)不同的任務(wù)同時(shí)處于預(yù)備狀態(tài),那么調(diào)度器應(yīng)該傾向于調(diào)度優(yōu)先級(jí)較高的任務(wù),因此一個(gè)任務(wù)必須等到所有優(yōu)先級(jí)比它高的任務(wù)調(diào)度完才可以被調(diào)度。處于相同優(yōu)先級(jí)隊(duì)列的任務(wù)。它們內(nèi)部的調(diào)度方式?jīng)]有統(tǒng)一標(biāo)準(zhǔn),可以針對(duì)性地為不同隊(duì)列采用不同調(diào)度策略,例如FCPS策略或RR策略。
優(yōu)先級(jí)反轉(zhuǎn):
?假設(shè)現(xiàn)在有3個(gè)任務(wù)A、B、C,它們的優(yōu)先級(jí)為A>B>C。任務(wù)C在運(yùn)行時(shí)持有一把鎖,然后它被高優(yōu)先級(jí)的任務(wù)A搶占了(任務(wù)C的鎖沒(méi)有被釋放)。此時(shí)任務(wù)A恰巧也想申請(qǐng)任務(wù)C持有的鎖,但是申請(qǐng)失敗,因此進(jìn)人阻塞狀態(tài)等待任務(wù)C放鎖。此時(shí),任務(wù)B、C都處于可以運(yùn)行的狀態(tài),由于任務(wù)B的優(yōu)先級(jí)高于C,因此B優(yōu)先運(yùn)行。綜合觀察該情況,就會(huì)發(fā)現(xiàn)任務(wù)B好像優(yōu)先級(jí)高于任務(wù)A,先于任務(wù)A執(zhí)行。這一問(wèn)題稱為優(yōu)先級(jí)反轉(zhuǎn)。
優(yōu)先級(jí)繼承:
?任務(wù)A通過(guò)將自己的優(yōu)先級(jí)轉(zhuǎn)移給占有鎖的任務(wù)C,讓任務(wù)C優(yōu)先執(zhí)行并放鎖。之后,任務(wù)A可在任務(wù)C放鎖后以搶占的方式立即執(zhí)行,從而避免了優(yōu)先級(jí)反轉(zhuǎn)的問(wèn)題。
- 多級(jí)反饋隊(duì)列(MLFQ):
- 短任務(wù)擁有更高的優(yōu)先級(jí)
- 低優(yōu)先級(jí)的任務(wù)采用更長(zhǎng)的時(shí)間片
- 定時(shí)地將所有任務(wù)的優(yōu)先級(jí)提升至最高
2.3 公平共享調(diào)度
這類調(diào)度器會(huì)量化任務(wù)對(duì)系統(tǒng)資源的占有比例,從而實(shí)現(xiàn)對(duì)資源的公平調(diào)度。我們將以份額(share)來(lái)量化每個(gè)任務(wù)對(duì)CPU時(shí)間的使用。
- 彩票調(diào)度
- 步幅調(diào)度
2.4 實(shí)時(shí)調(diào)度
根據(jù)任務(wù)超過(guò)截至?xí)r間所造成的后果來(lái)分類:
- 硬實(shí)時(shí)任務(wù):
該類任務(wù)必須在截止時(shí)間前完成,否則系統(tǒng)無(wú)法承擔(dān)任務(wù)處理超過(guò)截止時(shí)間的后果。 - 軟實(shí)時(shí)任務(wù):
該類任務(wù)可以偶爾超過(guò)截止時(shí)間完成,其結(jié)果是可接受的。
根據(jù)被觸發(fā)的時(shí)間來(lái)分類:
- 周期任務(wù):
指到達(dá)系統(tǒng)時(shí)間遵循一定周期的任務(wù)。 - 偶發(fā)任務(wù):
指不會(huì)周期性地到達(dá)系統(tǒng)的任務(wù),且還要滿足連續(xù)兩個(gè)相同偶發(fā)任務(wù)到達(dá)系統(tǒng)的時(shí)間間隔有最小值,即系統(tǒng)不會(huì)在同—時(shí)刻處理兩個(gè)相同的偶發(fā)任務(wù)。 - 非周期任務(wù):
指到達(dá)系統(tǒng)時(shí)間隨機(jī)的任務(wù)。
實(shí)時(shí)操作系統(tǒng)的特點(diǎn)是確定性,即實(shí)時(shí)任務(wù)的完成時(shí)間應(yīng)該是有明確上界的。
實(shí)時(shí)調(diào)度策略:
- 速度單調(diào)(RM):
該調(diào)度策略需要預(yù)知任務(wù)的周期T,并且根據(jù)周期靜態(tài)地為每個(gè)任務(wù)分配一個(gè)優(yōu)先級(jí),任務(wù)的周期越短,意味著其截止時(shí)間要求越迫切,則其優(yōu)先級(jí)越高。RM策略還支持搶占調(diào)度,高優(yōu)先級(jí)的任務(wù)可以搶占低優(yōu)先級(jí)的任務(wù)執(zhí)行。 - 最早截至?xí)r間優(yōu)先(EDF):
任務(wù)的截止時(shí)間越近則優(yōu)先級(jí)越高。
3. 多核調(diào)度策略
3.1 負(fù)載分擔(dān)
?多核共享—個(gè)全局運(yùn)行隊(duì)列。當(dāng)一個(gè)CPU核心需要調(diào)度任務(wù)時(shí),根據(jù)給定的調(diào)度策略,決定全局運(yùn)行隊(duì)列中下一個(gè)由它執(zhí)行的任務(wù)。給定的調(diào)度策略可以是單核調(diào)度中的任一策略。
3.2 協(xié)同調(diào)度
?盡可能讓一組任務(wù)并行執(zhí)行,避免調(diào)度器同時(shí)調(diào)度有依賴關(guān)系的兩組任務(wù),同時(shí)避免關(guān)聯(lián)任務(wù)(傾向于同時(shí)執(zhí)行的—系列任務(wù),比如需要相互通信的任務(wù))執(zhí)行效率降低的問(wèn)題。
- 群組調(diào)度:
將關(guān)聯(lián)任務(wù)設(shè)置為一組(gang),并以組為單位調(diào)度任務(wù)在多個(gè)CPU核心上執(zhí)行,使它們的開(kāi)始時(shí)間和結(jié)束時(shí)間接近相同。
3.3 兩級(jí)調(diào)度
?全局調(diào)度器會(huì)使得任務(wù)在不同CPU核心上切換執(zhí)行,造成切換開(kāi)銷。為了減少開(kāi)銷,每個(gè)任務(wù)應(yīng)盡可能只在一個(gè)CPU核心上進(jìn)行調(diào)度。因此,新的調(diào)度策略改為每個(gè)CPU核心都引人一個(gè)本地調(diào)度器,并用它管理對(duì)應(yīng)核心上執(zhí)行的任務(wù)。這種調(diào)度策略使用全局調(diào)度器和本地調(diào)度器,構(gòu)成了層級(jí)化結(jié)構(gòu),—般稱之為兩級(jí)調(diào)度(two level scheduling)。
3.4 負(fù)載追蹤與負(fù)載均衡
?通過(guò)追蹤每個(gè)CPU核心當(dāng)前的負(fù)載情況,將處于高負(fù)載的CPU核心管理的任務(wù)遷移到低負(fù)載的CPU核心上,盡可能地保證每個(gè)核心的負(fù)載大致相同。
- 調(diào)度實(shí)體粒度負(fù)載追蹤
- 負(fù)載均衡
總結(jié)
以上是生活随笔為你收集整理的【5 操作系统调度】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 婚宴座位图html5,婚宴酒席座位安排图
- 下一篇: 在Windows 7 Media Cen