亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種進(jìn)程調(diào)度方法

文檔序號(hào):9564499閱讀:646來(lái)源:國(guó)知局
一種進(jìn)程調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及l(fā)inux進(jìn)程調(diào)度技術(shù)領(lǐng)域,特別是涉及一種進(jìn)程調(diào)度方法。
【背景技術(shù)】
[0002]目前,隨著linux操作系統(tǒng)的發(fā)展,系統(tǒng)的應(yīng)用范圍越來(lái)越廣,從大型服務(wù)器到便攜式嵌入式設(shè)備,都對(duì)Linux操作系統(tǒng)的進(jìn)程調(diào)度提出了不同的需求。對(duì)于不同的應(yīng)用場(chǎng)景,其進(jìn)程調(diào)度的需求是不同的。在大型服務(wù)器上更強(qiáng)調(diào)任務(wù)的公平性,而在桌面環(huán)境下則更追求交互任務(wù)的優(yōu)先響應(yīng)。
[0003]BFS是一個(gè)進(jìn)程調(diào)度器,是專門為linux桌面環(huán)境所設(shè)計(jì)的內(nèi)核調(diào)度器,已有的BFS調(diào)度器采用的進(jìn)程調(diào)度方法是采用給進(jìn)程分配不同的優(yōu)先級(jí)組,從高到低調(diào)度不同的優(yōu)先級(jí)組,組內(nèi)則按照進(jìn)程的deadline調(diào)度。已有的BFS調(diào)度器將進(jìn)程分為4個(gè)大類,即realtime、SCHED_IS0、SCHED_N0RMAL 和 SCHED_IDELPR0,并將所有進(jìn)程分配了 103 個(gè)優(yōu)先級(jí)。但是采用現(xiàn)有的BFS調(diào)度器進(jìn)行進(jìn)程調(diào)度,優(yōu)先級(jí)越多,低優(yōu)先級(jí)進(jìn)程等待調(diào)度的時(shí)間就越長(zhǎng),而且BFS調(diào)度器分配給進(jìn)程的時(shí)間片有些不合理,每個(gè)進(jìn)程的時(shí)間片是由優(yōu)先級(jí)預(yù)先分配好的,不能實(shí)時(shí)調(diào)整,這樣都導(dǎo)致系統(tǒng)的整體響應(yīng)速度很低。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的是提供一種進(jìn)程調(diào)度方法,以實(shí)現(xiàn)提高系統(tǒng)的整體響應(yīng)速度。
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明提供一種進(jìn)程調(diào)度方法,該方法包括:
[0006]將linux系統(tǒng)內(nèi)的所有進(jìn)程任務(wù)分為多個(gè)優(yōu)先級(jí);其中,實(shí)時(shí)進(jìn)程任務(wù)的優(yōu)先級(jí)高于交互進(jìn)程任務(wù)的優(yōu)先級(jí),交互進(jìn)程任務(wù)的優(yōu)先級(jí)高于普通進(jìn)程任務(wù)的優(yōu)先級(jí);
[0007]將每一個(gè)優(yōu)先級(jí)里面的所有進(jìn)程任務(wù)作為一個(gè)進(jìn)程任務(wù)組,對(duì)每個(gè)優(yōu)先級(jí)里面的進(jìn)程任務(wù)組設(shè)定組時(shí)間片,進(jìn)行組間調(diào)度;
[0008]若進(jìn)程任務(wù)組的組時(shí)間片用完,將組內(nèi)剩余進(jìn)程任務(wù)加入到比當(dāng)前優(yōu)先級(jí)低一級(jí)的優(yōu)先級(jí)里面的進(jìn)程任務(wù)組中。
[0009]優(yōu)選的,所述對(duì)每個(gè)優(yōu)先級(jí)里面的進(jìn)程任務(wù)組設(shè)定組時(shí)間片,進(jìn)行組間調(diào)度之后,還包括:
[0010]每個(gè)進(jìn)程任務(wù)組的進(jìn)程任務(wù)按照默認(rèn)時(shí)間片進(jìn)行組內(nèi)調(diào)度,按照默認(rèn)時(shí)間片進(jìn)行調(diào)度完成之后,再按照deadline調(diào)度方式對(duì)進(jìn)程任務(wù)組進(jìn)行組內(nèi)調(diào)度。
[0011]優(yōu)選的,所述默認(rèn)時(shí)間片=組間時(shí)間片/組內(nèi)進(jìn)程數(shù)。
[0012]優(yōu)選的,每一個(gè)優(yōu)先級(jí)對(duì)應(yīng)相應(yīng)的一組進(jìn)程任務(wù)組。
[0013]優(yōu)選的,所述將linux系統(tǒng)內(nèi)的所有進(jìn)程任務(wù)分為多個(gè)優(yōu)先級(jí),包括:
[0014]將linux系統(tǒng)內(nèi)所有進(jìn)程任務(wù)分為三個(gè)大類,所述三個(gè)大類為SCHED_REALHME、SCHED_10 和 SCHED_N0RMAL ;其中,SCHED_REALHME 映射有 50 個(gè)優(yōu)先級(jí),SCHED_10 映射有 1個(gè)優(yōu)先級(jí),SCHED_N0RMAL映射有一個(gè)優(yōu)先級(jí),所述三個(gè)大類包括53個(gè)優(yōu)先級(jí)。
[0015]優(yōu)選的,所述SCHED_REALHME對(duì)應(yīng)實(shí)時(shí)進(jìn)程任務(wù),SCHED_REALTIME的優(yōu)先級(jí)最高;所述SCHED_1對(duì)應(yīng)交互進(jìn)程任務(wù),SCHED_1的優(yōu)先級(jí)排第二 ;所述SCHED_NORMAL對(duì)應(yīng)普通進(jìn)程任務(wù),SCHED_NORMAL的優(yōu)先級(jí)最低。
[0016]優(yōu)選的,每個(gè)優(yōu)先級(jí)有一個(gè)隊(duì)列queue,隊(duì)列queue用于存儲(chǔ)對(duì)應(yīng)優(yōu)先級(jí)的進(jìn)程任務(wù),所有的隊(duì)列queue的狀態(tài)映射到一個(gè)位圖文件bitmap上;其中,所述隊(duì)列queue為所述進(jìn)程任務(wù)組。
[0017]優(yōu)選的,若所述隊(duì)列queue中存在可被調(diào)度的進(jìn)程,所述隊(duì)列queue對(duì)應(yīng)的位圖文件bitmap上的位設(shè)置為1。
[0018]本發(fā)明所提供的一種進(jìn)程調(diào)度方法,將linux系統(tǒng)內(nèi)的所有進(jìn)程任務(wù)分為多個(gè)優(yōu)先級(jí);其中,實(shí)時(shí)進(jìn)程任務(wù)的優(yōu)先級(jí)尚于交互進(jìn)程任務(wù)的優(yōu)先級(jí),交互進(jìn)程任務(wù)的優(yōu)先級(jí)尚于普通進(jìn)程任務(wù)的優(yōu)先級(jí);每一個(gè)優(yōu)先級(jí)里面的所有進(jìn)程任務(wù)作為一個(gè)進(jìn)程任務(wù)組,對(duì)每個(gè)優(yōu)先級(jí)里面的進(jìn)程任務(wù)組設(shè)定組時(shí)間片,進(jìn)行組間調(diào)度;若進(jìn)程任務(wù)組的組時(shí)間片用完,將組內(nèi)剩余進(jìn)程任務(wù)加入到比當(dāng)前優(yōu)先級(jí)低一級(jí)的優(yōu)先級(jí)里面的進(jìn)程任務(wù)組中。可見(jiàn),將系統(tǒng)內(nèi)進(jìn)程分為多個(gè)優(yōu)先級(jí),實(shí)時(shí)進(jìn)程任務(wù)的優(yōu)先級(jí) > 交互進(jìn)程任務(wù)的優(yōu)先級(jí) > 普通進(jìn)程任務(wù)的優(yōu)先級(jí),不同優(yōu)先級(jí)的任務(wù)分組,各組設(shè)定組時(shí)間片,進(jìn)行組間調(diào)度,若組時(shí)間片用完則將組內(nèi)剩余任務(wù)加入到低一個(gè)優(yōu)先級(jí)的組中。在調(diào)度的過(guò)程中,是從高優(yōu)先級(jí)到低優(yōu)先級(jí)遍歷進(jìn)行,優(yōu)先調(diào)度高優(yōu)先級(jí)的組,并設(shè)定組時(shí)間片,若組中的進(jìn)程用完該組時(shí)間片后,仍有進(jìn)程未運(yùn)行完,則將剩余進(jìn)程加入到下一優(yōu)先級(jí)組中,從而讓低優(yōu)先級(jí)的組可以與高優(yōu)先級(jí)的組競(jìng)爭(zhēng),增加了公平性,如此考慮了 linux系統(tǒng)桌面環(huán)境下進(jìn)程調(diào)度時(shí),優(yōu)先滿足交互式任務(wù),減少了優(yōu)先級(jí)的數(shù)目,從而減少低優(yōu)先級(jí)分組的等待時(shí)間,增加公平性,即組間調(diào)度中低優(yōu)先級(jí)隊(duì)列有機(jī)會(huì)和高優(yōu)先級(jí)隊(duì)列競(jìng)爭(zhēng),增加了公平性,所以該方法保證交互式任務(wù)優(yōu)先響應(yīng),同時(shí)又增加了公平性,提高了系統(tǒng)的整體響應(yīng)速度。
【附圖說(shuō)明】
[0019]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0020]圖1為本發(fā)明所提供的一種進(jìn)程調(diào)度方法的流程圖;
[0021]圖2為任務(wù)進(jìn)程優(yōu)先級(jí)與隊(duì)列queue對(duì)應(yīng)關(guān)系圖;
[0022]圖3為組間調(diào)度示意圖;
[0023]圖4為組內(nèi)調(diào)度示意圖。
【具體實(shí)施方式】
[0024]本發(fā)明的核心是提供一種進(jìn)程調(diào)度方法,以實(shí)現(xiàn)提高系統(tǒng)的整體響應(yīng)速度。
[0025]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0026]請(qǐng)參考圖1,圖1為本發(fā)明所提供的一種進(jìn)程調(diào)度方法的流程圖,該方法應(yīng)用于BFS調(diào)度器,該方法包括:
[0027]S11:將linux系統(tǒng)內(nèi)的所有進(jìn)程任務(wù)分為多個(gè)優(yōu)先級(jí);其中,實(shí)時(shí)進(jìn)程任務(wù)的優(yōu)先級(jí)高于交互進(jìn)程任務(wù)的優(yōu)先級(jí),交互進(jìn)程任務(wù)的優(yōu)先級(jí)高于普通進(jìn)程任務(wù)的優(yōu)先級(jí);
[0028]其中,進(jìn)程任務(wù)組將linux系統(tǒng)內(nèi)的所有進(jìn)程任務(wù)分為多個(gè)優(yōu)先級(jí)的過(guò)程為將linux系統(tǒng)內(nèi)所有進(jìn)程任務(wù)分為三個(gè)大類,進(jìn)程任務(wù)組三個(gè)大類為SCHED_REALHME、SCHED_10 和 SCHED_N0RMAL ;其中,SCHED_REALHME 映射有 50 個(gè)優(yōu)先級(jí),SCHED_10 映射有 1個(gè)優(yōu)先級(jí),SCHED_N0RMAL映射有一個(gè)優(yōu)先級(jí),進(jìn)程任務(wù)組三個(gè)大類包括53個(gè)優(yōu)先級(jí)。系統(tǒng)內(nèi)進(jìn)程分為多個(gè)優(yōu)先級(jí),實(shí)時(shí)進(jìn)程任務(wù)的優(yōu)先級(jí) > 交互進(jìn)程任務(wù)的優(yōu)先級(jí) > 普通進(jìn)程任務(wù)的優(yōu)先級(jí);
[0029]其中,進(jìn)程任務(wù)組SCHED_REALHME對(duì)應(yīng)實(shí)時(shí)進(jìn)程任務(wù),SCHED_REALTIME的優(yōu)先級(jí)最高;進(jìn)程任務(wù)組SCHED_10對(duì)應(yīng)交互進(jìn)程任務(wù),SCHED_10的優(yōu)先級(jí)排第二 ;進(jìn)程任務(wù)組SCHED_N0RMAL對(duì)應(yīng)普通進(jìn)程任務(wù),SCHED_N0RMAL的優(yōu)先級(jí)最低。
[0030]S12:將每一個(gè)優(yōu)先級(jí)里面的所有進(jìn)程任務(wù)作為一個(gè)進(jìn)程任務(wù)組,對(duì)每個(gè)優(yōu)先級(jí)里面的進(jìn)程任務(wù)組設(shè)定組時(shí)間片,進(jìn)行組間調(diào)度;
[0031]其中,每一個(gè)優(yōu)先級(jí)對(duì)應(yīng)相應(yīng)的一組進(jìn)程任務(wù)組。組間調(diào)度時(shí),設(shè)定組時(shí)間片,對(duì)于超時(shí)的進(jìn)程降到下一個(gè)優(yōu)先級(jí)。
[0032]其中,對(duì)每個(gè)優(yōu)先級(jí)里面的進(jìn)程任務(wù)組設(shè)定組時(shí)間片,進(jìn)行組間調(diào)度之后,每個(gè)進(jìn)程任務(wù)組的進(jìn)程任務(wù)按照默認(rèn)時(shí)間片進(jìn)行組內(nèi)調(diào)度,按照默認(rèn)時(shí)間片進(jìn)行調(diào)度完成之后,再按照截止時(shí)間調(diào)度方式即deadline調(diào)度方式對(duì)進(jìn)程任務(wù)組進(jìn)行組內(nèi)調(diào)度。進(jìn)程任務(wù)組默認(rèn)時(shí)間片=組間時(shí)間片/組內(nèi)進(jìn)程數(shù),組內(nèi)進(jìn)程數(shù)即為組內(nèi)進(jìn)程任務(wù)的數(shù)目。組內(nèi)調(diào)度時(shí),優(yōu)先米用公平調(diào)度,然后米用deadline調(diào)度。
[0033]其中,每個(gè)優(yōu)先級(jí)有一個(gè)隊(duì)列queue,隊(duì)列queue用于存儲(chǔ)對(duì)應(yīng)優(yōu)先級(jí)的進(jìn)程任務(wù),所有的隊(duì)列queue的狀態(tài)映射到一個(gè)位圖文件bitmap上;其中,隊(duì)列queue為進(jìn)程任務(wù)組,隊(duì)列queue指代的就是進(jìn)程任務(wù)組。若隊(duì)列queue中存在可被調(diào)度的進(jìn)程,隊(duì)列queue對(duì)應(yīng)的位圖文件bitmap上的位設(shè)置為1。
[0034]S13:若進(jìn)程任務(wù)組的組時(shí)間片用完,將組內(nèi)剩余進(jìn)程任務(wù)加入到比當(dāng)前優(yōu)先級(jí)低一級(jí)的優(yōu)先級(jí)里面的進(jìn)程任務(wù)組中。
[0035]具體的,S11至S13的執(zhí)行者均為BFS調(diào)度器。以上方法針對(duì)桌面環(huán)境的進(jìn)程調(diào)度,將進(jìn)程分為3個(gè)大類,共53個(gè)優(yōu)先級(jí),不同的優(yōu)先級(jí)對(duì)應(yīng)不同的隊(duì)列queue,所有的queue的狀態(tài)映射到位圖bitmap上對(duì)應(yīng)的位。
[0036]BFS調(diào)度器從高優(yōu)先級(jí)到低優(yōu)先級(jí)遍歷bitmap,優(yōu)先調(diào)度高優(yōu)先級(jí)的組,并設(shè)定組時(shí)間片。若組中的進(jìn)程用完該組時(shí)間片后,仍有進(jìn)程未運(yùn)行完,則將剩余進(jìn)程加入到下一優(yōu)先級(jí)組中,從而讓低優(yōu)先級(jí)的組可以與高優(yōu)先級(jí)的組競(jìng)爭(zhēng),增加了公平性。
[0037]而組內(nèi)則優(yōu)先采用公平調(diào)度,其次采用deadline調(diào)度。即組內(nèi)進(jìn)程默認(rèn)平分組時(shí)間片,當(dāng)進(jìn)程的deadline即截止時(shí)間小于默認(rèn)時(shí)間片時(shí),優(yōu)先調(diào)度deadline最小的進(jìn)程,從而在兼顧進(jìn)程公平性的同時(shí)優(yōu)先保證deadline進(jìn)程調(diào)度。
[0038]具體的,BFS調(diào)度器首先將系統(tǒng)內(nèi)進(jìn)程即進(jìn)程任務(wù)分為多個(gè)優(yōu)先級(jí)
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1