短程序優先 SPF 排程演算法 C語言實現

2021-09-24 18:36:27 字數 1197 閱讀 3304

#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 程序控制資訊 程序在執行中存在三種基本狀態,分別是執行狀態 就緒狀態和阻塞狀態。主...