C語言寫的作業系統短作業優先演算法

2021-08-20 02:21:18 字數 1221 閱讀 8324

短作業優先的演算法思想:

通過對執行時間的排序然後比較,執行時間短的程序優先執行,第乙個程序的開始時間等於到達時間,完成時間=開始時間+服務時間,當下乙個程序的開始時間》=該程序的完成時間時,下乙個程序的開始時間=上乙個程序的完成時間,周轉時間和帶權周轉時間根據公式可以得出

一下是演算法的原始碼:

#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畫乙個矩形也不是什麼難事 後來有一天準備照書實踐一下,仔細看了一下,原來問題不是一般的多 首...