#include#include#define num 20
/*0 2
3 54 4
6 58 2
-1 -1
*/// 不包含同時到達情況
// 必須排除位置資訊!!!!
void print(int a,int j)}}
int *arr_fin,*arr_turn,*min_w,min_m=0,*print_f;
double *arr_rig;
arr_fin=(int*)calloc(j-1,sizeof(int)); // 完成時間
arr_turn=(int*)calloc(j-1,sizeof(int)); // 周轉時間
arr_rig=(double*)calloc(j-1,sizeof(double)); // 帶權周轉時間
min_w = (int*)calloc(j-1,sizeof(int)); // 最小位置記錄點
print_f = (int*)calloc(j-1,sizeof(int)); // 輸出佇列
memset(arr_fin, 0, j-1);
memset(arr_turn, 0, j-1);
memset(arr_rig, 0.0, j-1);
memset(min_w, 0, j-1);
memset(print_f, 0, j-1);
int s = 0;
printf("各個作業完成時間為:\n"); // 短程序優先此時必須注意到達順序,沒法走捷徑
for(s=0;s=a[0][i])
}} // 接下來進行相加
min_w[min_m] = min_m; // min_m是在變化的,只需要儲存最終的變化
if(min!=100000)
// 情況2:上面情況不存在,那就按程式到達順序執行
if((arr_fin[s-1]}
}printf("\n");
for(s=0;sprintf("\n");
print(arr_fin,j); // 完成時間
printf("各個作業周轉時間為:\n");
for(s=0;sprintf("\n");
printf("各個作業帶權周轉時間為:\n");
for(s=0;sreturn 0;
}
程序排程 先來先服務和短程序優先排程演算法
系統中有5個程序p1,p2,p3,p4,p5如下。規定程序的優先數越小優先順序越高。試描述在採用先來先服務排程 短程序優先排程演算法時,各個程序的執行過程,並計算這5個程序的平均周轉時間。假設忽略程序的排程時間。答 先來先服務排程演算法執行過程如下 按到達先後p1,p2,p3,p4,p5依次執行 程...
作業系統 程序排程之短程序優先
1 什麼是程序排程 無論是在批處理系統還是分時系統中,使用者程序數一般都多於處理機數 這將導致它們互相爭奪處理機。另外,系統程序也同樣需要使用處理機。這就要求程序排程程式按一定的策略,動態地把處理機分配給處於就緒佇列中的某乙個程序,以使之執行。2 處理機排程分類 高階 中級和低階排程作業從提交開始直...
C語言模擬最高優先數優先程序排程演算法
本程序排程演算法採用最高優先數優先的排程演算法 即把處理機分配給優先數最高的程序 通過模擬排程程序的 pcb塊來排程程序。程序的 pcb塊包含以下四方面的內容 a 程序標示符 b 處理及狀態資訊 c 程序排程資訊 d 程序控制資訊 程序在執行中存在三種基本狀態,分別是執行狀態 就緒狀態和阻塞狀態。主...