一级毛片免费不卡在线视频,国产日批视频免费在线观看,菠萝菠萝蜜在线视频免费视频,欧美日韩亚洲无线码在线观看,久久精品这里精品,国产成人综合手机在线播放,色噜噜狠狠狠综合曰曰曰,琪琪视频

實時調(diào)度算法

時間:2023-04-30 23:00:37 資料 我要投稿
  • 相關推薦

實時調(diào)度算法

EDF實時調(diào)度算

一、基本思想:

在該實驗中有兩個周期性任務A、B,A的周期時間為20ms,每個周期的處理時間為10ms;任務B的周期時間為50ms,每個周期的處理時間為25ms。 在t=0是,A1和B1同時到達,由于A1的截止時間比B1早,故調(diào)度A1執(zhí)行;在t=10時,A1完成,又調(diào)度B1執(zhí)行;在t=20時,A2到達,由于A2的截止時間比B2早,B1被中斷而調(diào)度A2執(zhí)行;在t=30時,A2完成,又重新調(diào)度B1執(zhí)行;在t=40時,A3到達,但B1的截止時間要比A3早,仍執(zhí)行B1,在t=45時,B1執(zhí)行完,再調(diào)度A3執(zhí)行;在t=55時,A3完成,調(diào)度B2執(zhí)行。該實驗將最早截止時間優(yōu)先算法用于搶占調(diào)度方式。在該實驗中,定義了兩個開關來判斷兩個任務是中斷還是調(diào)度執(zhí)行。

二、源程序代碼:

#include

int main()

{

int A,B;

int tA,tB,serveA,serveB; //進程的周期時間和處理時間

float m;

int i,j,a=0,b=0,ka=0,kb=0; //ka,kb為開關,i,j,a,b為進程下標

int numa=0,numb=0; //處理累計時間

printf("輸入進程A的周期時間和處理時間:");

scanf("%d%d",&tA,&serveA);

printf("輸入進程B的周期時間和處理時間:");

scanf("%d%d",&tB,&serveB);

m=(float)serveA/tA+(float)serveB/tB;

for(int T=0;T<=100;T++)

{

if(m-1>1e-6)

{

printf("超出CPU的處理能力!\n");

return 0;

}

if(numa==serveA) //進程A完成

{

numa=serveA+1;

printf("當T=%d時",T);

printf("進程A%d完成\n",a);

if(numb

{

printf(" 調(diào)度進程B%d\n",b);

kb=1;

}

ka=0;

}

if(numb==serveB)

{

numb=serveB+1;

printf("當T=%d時",T);

printf("進程B%d結(jié)束\n",b);

if(numa

{

printf(" 調(diào)度進程A%d\n",a);

ka=1;

}

kb=0;

}

if(T%tA==0 && T%tB==0)

{

A=B=T;

j=++a;

i=++b;

printf("當T=%d時,進程A%d和進程B%d同時到達,此時,",T,j,i); if(tA<=tB)

{

printf("調(diào)度進程A%d,中斷進程B%d\n",j,i);

ka=1;

kb=0;

}

else

{

printf("調(diào)度進程B%d,中斷進程A%d\n",i,j);

ka=0;

kb=1;

}

numa=numb=0;

}

if(T%tA==0&&T%tB!=0)

{

A=T;

printf("當T=%d時",T);

printf("進程A%d到達 ",++a); //不可能與進程A競爭處理器 numa=0;

if(numb

if(B+tB>A+tA) //若進程B最早截止時間大于進程A的 {

printf("進程A%d執(zhí)行。\n",a);

ka=1;

kb=0;

}

else //若進程B最早截止時間小于等于進程A的

printf("進程B%d繼續(xù)執(zhí)行。\n",b);

else //進程B完成

{

printf("進程A%d執(zhí)行。\n",a);

ka=1;

}

}

if(T%tA!=0&&T%tB==0)

{

B=T;

printf("當T=%d時",T);

printf("進程B%d到達,",++b); //不可能與進程B競爭處理器

numb=0;

if(numa

if(B+tB>=A+tA) //進程A的最早截止時間不小于B printf("進程A%d繼續(xù)執(zhí)行。\n",a);

else

{

printf("進程B%d執(zhí)行。\n",b);

kb=1;

ka=0;

}

else //進程A完成

{

printf("進程B%d執(zhí)行。\n",b);

kb=1; 實時調(diào)度算法 }

}

if(ka)

numa++;

if(kb)

numb++;

}

return 1;

}

三、實驗結(jié)果截圖:

【實時調(diào)度算法】相關文章:

動態(tài)車間調(diào)度算法04-27

基于UKF的測速定軌實時算法04-30

基于A*算法的實時航跡規(guī)劃方法研究05-01

車輛調(diào)度問題的混合算法04-28

車輛優(yōu)化調(diào)度算法研究初探04-27

多軸液壓聯(lián)動實時插補控制算法04-28

靶場彈道跟蹤實時數(shù)據(jù)平滑算法及實現(xiàn)05-02

雙通道角跟蹤體制實時校相算法研究05-02

光電圖像序列運動弱目標實時檢測算法04-28

基于Memetic算法的飛機著陸調(diào)度優(yōu)化04-27