linux內(nèi)核的三種調(diào)度策略

linux內(nèi)核的三種調(diào)度策略

ID:18889143

大?。?17.50 KB

頁數(shù):13頁

時(shí)間:2018-09-26

linux內(nèi)核的三種調(diào)度策略_第1頁
linux內(nèi)核的三種調(diào)度策略_第2頁
linux內(nèi)核的三種調(diào)度策略_第3頁
linux內(nèi)核的三種調(diào)度策略_第4頁
linux內(nèi)核的三種調(diào)度策略_第5頁
資源描述:

《linux內(nèi)核的三種調(diào)度策略》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Linux內(nèi)核的三種調(diào)度策略:  1,SCHED_OTHER分時(shí)調(diào)度策略,2,SCHED_FIFO實(shí)時(shí)調(diào)度策略,先到先服務(wù)。一旦占用cpu則一直運(yùn)行。一直運(yùn)行直到有更高優(yōu)先級(jí)任務(wù)到達(dá)或自己放棄3,SCHED_RR實(shí)時(shí)調(diào)度策略,時(shí)間片輪轉(zhuǎn)。當(dāng)進(jìn)程的時(shí)間片用完,系統(tǒng)將重新分配時(shí)間片,并置于就緒隊(duì)列尾。放在隊(duì)列尾保證了所有具有相同優(yōu)先級(jí)的RR任務(wù)的調(diào)度公平Linux線程優(yōu)先級(jí)設(shè)置首先,可以通過以下兩個(gè)函數(shù)來獲得線程可以設(shè)置的最高和最低優(yōu)先級(jí),函數(shù)中的策略即上述三種策略的宏定義:  intsched_get_priority_max(intpolicy

2、);  intsched_get_priority_min(intpolicy); SCHED_OTHER是不支持優(yōu)先級(jí)使用的,而SCHED_FIFO和SCHED_RR支持優(yōu)先級(jí)的使用,他們分別為1和99,數(shù)值越大優(yōu)先級(jí)越高。設(shè)置和獲取優(yōu)先級(jí)通過以下兩個(gè)函數(shù)intpthread_attr_setschedparam(pthread_attr_t*attr,conststructsched_param*param);  intpthread_attr_getschedparam(constpthread_attr_t*attr,structsch

3、ed_param*param);param.sched_priority=51;//設(shè)置優(yōu)先級(jí)系統(tǒng)創(chuàng)建線程時(shí),默認(rèn)的線程是SCHED_OTHER。所以如果我們要改變線程的調(diào)度策略的話,可以通過下面的這個(gè)函數(shù)實(shí)現(xiàn)。intpthread_attr_setschedpolicy(pthread_attr_t*attr,intpolicy);上面的param使用了下面的這個(gè)數(shù)據(jù)結(jié)構(gòu):structsched_param{int__sched_priority;//所要設(shè)定的線程優(yōu)先級(jí)};我們可以通過下面的測(cè)試程序來說明,我們自己使用的系統(tǒng)的支持的優(yōu)先級(jí):

4、#include#include#include#includestaticintget_thread_policy(pthread_attr_t*attr){intpolicy;intrs=pthread_attr_getschedpolicy(attr,&policy);assert(rs==0);switch(policy){caseSCHED_FIFO:printf("policy=SCHED_FIFO");break;caseSCHED_RR:print

5、f("policy=SCHED_RR");break;caseSCHED_OTHER:printf("policy=SCHED_OTHER");break;default:printf("policy=UNKNOWN");break;}returnpolicy;}staticvoidshow_thread_priority(pthread_attr_t*attr,intpolicy){intpriority=sched_get_priority_max(policy);assert(priority!=-1);printf("max_p

6、riority=%d",priority);priority=sched_get_priority_min(policy);assert(priority!=-1);printf("min_priority=%d",priority);}staticintget_thread_priority(pthread_attr_t*attr){structsched_paramparam;intrs=pthread_attr_getschedparam(attr,¶m);assert(rs==0);printf("priority=%d

7、",param.__sched_priority);returnparam.__sched_priority;}staticvoidset_thread_policy(pthread_attr_t*attr,intpolicy){intrs=pthread_attr_setschedpolicy(attr,policy);assert(rs==0);get_thread_policy(attr);}intmain(void){pthread_attr_tattr;structsched_paramsched;intrs;rs=pthread_a

8、ttr_init(&attr);assert(rs==0);intpolicy=get_thread_policy(&attr);printf("Sh

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。