最早截止時(shí)間優(yōu)先算法

最早截止時(shí)間優(yōu)先算法

ID:33824449

大?。?8.50 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2019-03-01

最早截止時(shí)間優(yōu)先算法_第1頁(yè)
最早截止時(shí)間優(yōu)先算法_第2頁(yè)
最早截止時(shí)間優(yōu)先算法_第3頁(yè)
最早截止時(shí)間優(yōu)先算法_第4頁(yè)
資源描述:

《最早截止時(shí)間優(yōu)先算法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、實(shí)時(shí)調(diào)度最早截止時(shí)間優(yōu)先算法一、設(shè)計(jì)思路最早截止時(shí)間算法是根據(jù)任務(wù)的開(kāi)始截止時(shí)間來(lái)確定任務(wù)的優(yōu)先級(jí),截止時(shí)間愈早,其優(yōu)先級(jí)愈高,我以書上的搶占式調(diào)度方式用于周期實(shí)時(shí)任務(wù)的例子來(lái)編寫程序,在該例中有兩個(gè)周期性任務(wù),我設(shè)計(jì)的可以輸入這兩個(gè)的周期時(shí)間和服務(wù)時(shí)間,然后比較它們的截止時(shí)間,哪個(gè)截止時(shí)間早就誰(shuí)先執(zhí)行,在單處理機(jī)情況下,必須滿足∑Ci/Pi<=1,我用的是C語(yǔ)言編寫的,只用到了一些簡(jiǎn)單的if語(yǔ)句for循環(huán)語(yǔ)句。二、運(yùn)行結(jié)果和功能1.輸入進(jìn)程A的周期時(shí)間和服務(wù)時(shí)間、B的周期時(shí)間和服務(wù)時(shí)間2.回車后執(zhí)行實(shí)時(shí)調(diào)度最早

2、截止時(shí)間優(yōu)先算法,可得到下列結(jié)果三、源程序代碼#includeintmain(){intA,B;//標(biāo)記進(jìn)程A,進(jìn)程B的到達(dá)時(shí)間intcycA,cycB,serveA,serveB;//進(jìn)程的周期時(shí)間和服務(wù)時(shí)間floatm;inti,j,a=0,b=0,ka=0,kb=0;//ka,kb為開(kāi)關(guān),i,j,a,b為進(jìn)程下標(biāo)intnuma=0,numb=0;//服務(wù)累計(jì)時(shí)間printf("輸入進(jìn)程A的周期時(shí)間,服務(wù)時(shí)間:");scanf("%d%d",&cycA,&serveA);printf("輸入

3、進(jìn)程B的周期時(shí)間,服務(wù)時(shí)間:");scanf("%d%d",&cycB,&serveB);m=(float)serveA/cycA+(float)serveB/cycB;for(intT=0;T<=100;T++){if(m-1>1e-6){printf("超出CPU的處理能力!");return0;}if(numa==serveA)//進(jìn)程A完成{numa=serveA+1;printf("當(dāng)T=%d時(shí)",T);printf("進(jìn)程A%d結(jié)束",a);if(numb

4、進(jìn)程b%d",b);kb=1;}ka=0;}if(numb==serveB){numb=serveB+1;printf("當(dāng)T=%d時(shí)",T);printf("進(jìn)程B%d結(jié)束",b);if(numa

5、A%d,阻塞進(jìn)程B%d",j,i);ka=1;kb=0;}else{printf("調(diào)用進(jìn)程B%d,阻塞進(jìn)程A%d",i,j);ka=0;kb=1;}numa=numb=0;}if(T%cycA==0&&T%cycB!=0){A=T;printf("當(dāng)T=%d時(shí)",T);printf("進(jìn)程A%d產(chǎn)生",++a);//不可能與進(jìn)程A競(jìng)爭(zhēng)處理器numa=0;if(numbA+cycA)//若進(jìn)程B最早截止時(shí)間大于進(jìn)程A的{printf("進(jìn)程A%d執(zhí)行。

6、",a);ka=1;kb=0;}else//若進(jìn)程B最早截止時(shí)間小于等于進(jìn)程A的printf("進(jìn)程B%d繼續(xù)執(zhí)行。",b);else//進(jìn)程B完成{printf("進(jìn)程A%d執(zhí)行。",a);ka=1;}}if(T%cycA!=0&&T%cycB==0){B=T;printf("當(dāng)T=%d時(shí)",T);printf("進(jìn)程B%d產(chǎn)生,",++b);//不可能與進(jìn)程B競(jìng)爭(zhēng)處理器numb=0;if(numa=A+cycA)//進(jìn)程A的最早截止時(shí)間不小于B

7、printf("進(jìn)程A%d繼續(xù)執(zhí)行。",a);else{printf("進(jìn)程B%d執(zhí)行。",b);kb=1;ka=0;}else//進(jìn)程A完成{printf("進(jìn)程B%d執(zhí)行。",b);kb=1;}}if(ka)numa++;if(kb)numb++;}return1;}

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。