#include#include"string"
using namespace std;
struct job ;
//1、其實這個結構體沒有考慮到到達時間的問題,統一認為處理時刻所有作業都已經到達。
//2、模擬多處理機的時候,不太了解怎麼實現非同步的操作。
const int max = 5; //允許的就緒佇列最大作業數
const int printer = 2; //印表機數量
const int tape = 4; //磁帶機數量
const int memory = 64; //主存容量。
//這些常量被用作判斷輸入的資料是否合法。
string search_name(job job_small, int count)
}for (int i = 0; i < count; i++) //end if
}//end if
} //end for
} //end for
for (int i = 0; i < count; i++)
}return name;
}void input()
if (job_small[i].printer > 2)
printf("錯誤:印表機數量不足,請重新輸入!\n");
if (job_small[i].tape > 4)
printf("錯誤:磁帶機數量不足,請重新輸入!\n");
cin >> job_small[i].name >> job_small[i].length >> job_small[i].printer >> job_small[i].tape >> job_small[i].runtime >> job_small[i].waittime;
job_memory = job_memory + job_small[i].length;
if (job_small[i].length > 0 && job_memory <= 64 && job_small[i].printer <= 2 && job_small[i].tape <= 4)
break;
}printf("\n");
if (job_small[i].name == "0")
break;
count++;
job_small[i].sfzx = 0; //將標誌位記為0,既未訪問過。
}job job[max]; //主結構體,負責作業的全部字段,也是最後負責輸出的結構體
for (int i = 0; i < count; i++)
//核心演算法
int index = 0; //做巢狀內迴圈的下標使用,千萬不能放在第乙個迴圈裡面,不然使得下標一直是0;
for (int m = 0; m < count; m++) //end if
}//end for
}//end for
printf("\n\n\n作業名稱\t作業長度\t需要印表機數目\t需要磁帶機數目\t服務時間\t等待時間\n");
for (int i = 0; i < count; i++)
}//end input
void main()
高響應比優先演算法實現程序排程模擬
一 實驗要求 1 用視覺化程式設計工具編制程式,在機器上調試執行,並通過上機考核。2 要求將功能集中在乙個介面中,介面設計美觀,功能完整,使用方便。二 設計題目 題目1 程序排程模擬程式 目的 熟悉程序排程演算法及其實現 內容 編寫乙個程式完成多道程式的排程 要求 只考慮1個cpu的資源,其他資源不...
高響應比排程演算法
code include stdio.h struct zgxyb zgxyb a 100 void input zgxyb p,int n void print zgxyb p,float arrivetime,float servicetime,float starttime,float fin...
優先順序排程演算法和高響應比優先排程演算法
優先順序排程演算法是基於作業的緊迫程度,由外部賦予作業相應的優先順序,排程演算法是根據該優先順序進行排程的。這樣就可以保證緊迫性作業優先執行。高響應比優先排程演算法則是既考慮了作業等待的時間,又考慮了作業執行時間的排程演算法,因此既照顧了短作業,又不致使長作業的等待時間過長,從而改善了處理機的排程能...