您當(dāng)前位置: 主頁 > IT服務(wù) > 網(wǎng)絡(luò)服務(wù) >
實(shí)時(shí)進(jìn)程將得到優(yōu)先調(diào)用,實(shí)時(shí)進(jìn)程根據(jù)實(shí)時(shí)優(yōu)先級(jí)決定調(diào)度權(quán)值,分時(shí)進(jìn)程則通過nice和counter值決定權(quán)值,nice越小,counter越大,被調(diào)度的概率越大,也就是曾經(jīng)使用了 cpu 最少的進(jìn)程將會(huì)得到優(yōu)先調(diào)度。(it外包)
1、SCHED_OTHER 分時(shí)調(diào)度策略;
2、SCHED_FIFO 實(shí)時(shí)調(diào)度策略,先到先服務(wù);
3、SCHED_RR 實(shí)時(shí)調(diào)度策略,時(shí)間片輪轉(zhuǎn) 。
SHCED_RR 和 SCHED_FIFO 的不同:
當(dāng)采用 SHCED_RR 策略的進(jìn)程的時(shí)間片用完,系統(tǒng)將重新分配時(shí)間片,并置于就緒隊(duì)列尾。放在隊(duì)列尾保證了所有具有相同優(yōu)先級(jí)的RR任務(wù)的調(diào)度公平。
SCHED_FIFO 一旦占用 cpu 則一直運(yùn)行。一直運(yùn)行直到有更高優(yōu)先級(jí)任務(wù)到達(dá)或自己放棄。
如果有相同優(yōu)先級(jí)的實(shí)時(shí)進(jìn)程(根據(jù)優(yōu)先級(jí)計(jì)算的調(diào)度權(quán)值是一樣的)已經(jīng)準(zhǔn)備好,F(xiàn)IFO時(shí)必須等待該進(jìn)程主動(dòng)放棄后才可以運(yùn)行這個(gè)優(yōu)先級(jí)相同的任務(wù)。而RR可以讓每個(gè)任務(wù)都執(zhí)行一段時(shí)間。
相同點(diǎn):
RR 和 FIFO 都只用于實(shí)時(shí)任務(wù)。
創(chuàng)建時(shí)優(yōu)先級(jí)大于0(1-99)。
按照可搶占優(yōu)先級(jí)調(diào)度算法進(jìn)行。
就緒態(tài)的實(shí)時(shí)任務(wù)立即搶占非實(shí)時(shí)任務(wù)。
一、所有任務(wù)都采用Linux分時(shí)調(diào)度策略時(shí),
-創(chuàng)建任務(wù)指定采用分時(shí)調(diào)度策略,并指定優(yōu)先級(jí)nice值(-20~19)。
-將根據(jù)每個(gè)任務(wù)的nice值確定在cpu上的執(zhí)行時(shí)間(counter)。
-如果沒有等待資源,則將該任務(wù)加入到就緒隊(duì)列中。
-調(diào)度程序遍歷就緒隊(duì)列中的任務(wù),通過對(duì)每個(gè)任務(wù)動(dòng)態(tài)優(yōu)先級(jí)的計(jì)算(counter+20-nice)結(jié)果,選擇計(jì)算結(jié)果最大的一個(gè)去運(yùn)行,當(dāng)這 個(gè)時(shí)間片用完后(counter減至0)或者主動(dòng)放棄cpu時(shí),該任務(wù)將被放在就緒隊(duì)列末尾(時(shí)間片用完)或等待隊(duì)列(因等待資源而放棄cpu)中。
-此時(shí)調(diào)度程序重復(fù)上面計(jì)算過程,轉(zhuǎn)到第4步。
-當(dāng)調(diào)度程序發(fā)現(xiàn)所有就緒任務(wù)計(jì)算所得的權(quán)值都為不大于0時(shí),重復(fù)第2步。
二、所有任務(wù)都采用 FIFO 時(shí)
-創(chuàng)建進(jìn)程時(shí)指定采用 FIFO,并設(shè)置實(shí)時(shí)優(yōu)先級(jí) rt_priority(1-99)。
-如果沒有等待資源,則將該任務(wù)加入到就緒隊(duì)列中。
-調(diào)度程序遍歷就緒隊(duì)列,根據(jù)實(shí)時(shí)優(yōu)先級(jí)計(jì)算調(diào)度權(quán)值(1000+rt_priority),選擇權(quán)值最高的任務(wù)使用 cpu,該 FIFO 任務(wù)將一直占有 cpu 直到有優(yōu)先級(jí)更高的任務(wù)就緒(即使優(yōu)先級(jí)相同也不行)或者主動(dòng)放棄(等待資源)。
-調(diào)度程序發(fā)現(xiàn)有優(yōu)先級(jí)更高的任務(wù)到達(dá)(高優(yōu)先級(jí)任務(wù)可能被中斷或定時(shí)器任務(wù)喚醒,再或被當(dāng)前運(yùn)行的任務(wù)喚醒,等等),則調(diào)度程序立即在當(dāng)前任務(wù) 堆棧中保存當(dāng)前cpu寄存器的所有數(shù)據(jù),重新從高優(yōu)先級(jí)任務(wù)的堆棧中加載寄存器數(shù)據(jù)到cpu,此時(shí)高優(yōu)先級(jí)的任務(wù)開始運(yùn)行。重復(fù)第3步。
-如果當(dāng)前任務(wù)因等待資源而主動(dòng)放棄cpu使用權(quán),則該任務(wù)將從就緒隊(duì)列中刪除,加入等待隊(duì)列,此時(shí)重復(fù)第3步。
三、系統(tǒng)中既有分時(shí)調(diào)度,又有時(shí)間片輪轉(zhuǎn)調(diào)度和先進(jìn)先出調(diào)度時(shí)
-RR 調(diào)度和 FIFO 調(diào)度的進(jìn)程屬于實(shí)時(shí)進(jìn)程,以分時(shí)調(diào)度的進(jìn)程是非實(shí)時(shí)進(jìn)程。(網(wǎng)絡(luò)維護(hù)公司)
-當(dāng)實(shí)時(shí)進(jìn)程準(zhǔn)備就緒后,如果當(dāng)前 cpu 正在運(yùn)行非實(shí)時(shí)進(jìn)程,則實(shí)時(shí)進(jìn)程立即搶占非實(shí)時(shí)進(jìn)程。
-RR 進(jìn)程和 FIFO 進(jìn)程都采用實(shí)時(shí)優(yōu)先級(jí)做為調(diào)度的權(quán)值標(biāo)準(zhǔn),RR是FIFO的一個(gè)延伸。FIFO時(shí),如果兩個(gè)進(jìn)程的優(yōu)先級(jí)一樣,則這兩個(gè)優(yōu)先 級(jí)一樣的進(jìn)程具體執(zhí)行哪一個(gè)是由其在隊(duì)列中的位置決定的,這樣導(dǎo)致一些不公正性(優(yōu)先級(jí)是一樣的,為什么要讓你一直運(yùn)行?),如果將兩個(gè)優(yōu)先級(jí)一樣的任務(wù) 的調(diào)度策略都設(shè)為RR,則保證了這兩個(gè)任務(wù)可以循環(huán)執(zhí)行,保證了公平。
所有任務(wù)都采用RR調(diào)度策略時(shí)
-創(chuàng)建任務(wù)時(shí)指定調(diào)度參數(shù)為 RR,并設(shè)置任務(wù)的實(shí)時(shí)優(yōu)先級(jí)和nice值(nice值將會(huì)轉(zhuǎn)換為該任務(wù)的時(shí)間片的長(zhǎng)度)。
-如果沒有等待資源,則將該任務(wù)加入到就緒隊(duì)列中。(it外包公司)
-調(diào)度程序遍歷就緒隊(duì)列,根據(jù)實(shí)時(shí)優(yōu)先級(jí)計(jì)算調(diào)度權(quán)值 (1000+rt_priority) ,選擇權(quán)值最高的任務(wù)使用 cpu。
-如果就緒隊(duì)列中的 RR 任務(wù)時(shí)間片為0,則會(huì)根據(jù) nice 值設(shè)置該任務(wù)的時(shí)間片,同時(shí)將該任務(wù)放入就緒隊(duì)列的末尾。重復(fù)步驟3。
-當(dāng)前任務(wù)由于等待資源而主動(dòng)退出 cpu,則其加入等待隊(duì)列中。重復(fù)步驟3。
艾銻無限是中國(guó)領(lǐng)先IT外包服務(wù)商,專業(yè)為企業(yè)提供IT運(yùn)維外包、電腦維護(hù)、網(wǎng)絡(luò)維護(hù)、網(wǎng)絡(luò)布線、辦公設(shè)備維護(hù)、服務(wù)器維護(hù)、數(shù)據(jù)備份恢復(fù)、門禁監(jiān)控、網(wǎng)站建設(shè)等多項(xiàng)IT服務(wù)外包,服務(wù)熱線:400-650-7820 聯(lián)系電話:010-62684652 咨詢QQ1548853602 地址:北京市海淀區(qū)北京科技會(huì)展2號(hào)樓16D,用心服務(wù)每一天,為企業(yè)的發(fā)展提升更高的效率,創(chuàng)造更大的價(jià)值。
更多的IT外包信息盡在艾銻無限http://www.dyfgwiyq.cn
相關(guān)文章