短作業優先的演算法思想:
通過對執行時間的排序然後比較,執行時間短的程序優先執行,第乙個程序的開始時間等於到達時間,完成時間=開始時間+服務時間,當下乙個程序的開始時間》=該程序的完成時間時,下乙個程序的開始時間=上乙個程序的完成時間,周轉時間和帶權周轉時間根據公式可以得出
一下是演算法的原始碼:
#include //定乙個結構體struct sjf;
//定義乙個結構體陣列
sjf a[100];
//定義乙個輸入函式
void input(sjf *p,int n)
}//定義乙個輸出函式
void print(sjf *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int n)
printf("\nthe process's information:\n");
printf("\nname\tarrive\tservice\tstart\tfinish\tzz\tdqzz\n");
for(k=0;k<=n-1;k++)
}//按到達時間排序
void sort(sjf *p,int n)
else
p[k].finishtime=p[k].starttime+p[k].servicetime;
}} for(k=0;k<=n-1;k++)
}//短作業優先排程演算法
void sjff(sjf *p,int n)
else
p[m].finishtime=p[m].starttime+p[m].servicetime;
} int i=0;
for(int n=m+1;n<=n-1;n++)
//按服務時間排序
float min=p[m+1].servicetime;
int next=m+1;//m+1=n
for(int k=m+1;k
sjf *b=a;
scanf("%d",&n);input(a,n);
sjff(b,n);//呼叫sjff函式
}
作業系統短作業優先排程演算法
短作業優先排程演算法 sjf 是以作業的長度來計算優先順序,作業越短,優先度越高。作業的長短是作業的執行時間來衡量的。源程式c 編寫,由老師提供的參考 網上查詢 同學之間討論之後完善,非誠勿擾!includeusing namespace std struct node job 10 按服務時間排序...
作業系統 程序排程之短程序優先
1 什麼是程序排程 無論是在批處理系統還是分時系統中,使用者程序數一般都多於處理機數 這將導致它們互相爭奪處理機。另外,系統程序也同樣需要使用處理機。這就要求程序排程程式按一定的策略,動態地把處理機分配給處於就緒佇列中的某乙個程序,以使之執行。2 處理機排程分類 高階 中級和低階排程作業從提交開始直...
寫作業系統用的C語言和寫應用程式的C語言不是乙個
我以前看一本書,名叫 30天自製作業系統 大概翻了一下,感覺也不是太難 因為比如,它有一整章在講,c語言指標 c語言畫乙個矩形 你要是熟悉c語言的話,指標肯定理解 在沒有視窗的情況下,用turbo c 2.0畫乙個矩形也不是什麼難事 後來有一天準備照書實踐一下,仔細看了一下,原來問題不是一般的多 首...