C 高響應比優先演算法

2021-09-02 18:50:17 字數 1634 閱讀 1435

#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...

優先順序排程演算法和高響應比優先排程演算法

優先順序排程演算法是基於作業的緊迫程度,由外部賦予作業相應的優先順序,排程演算法是根據該優先順序進行排程的。這樣就可以保證緊迫性作業優先執行。高響應比優先排程演算法則是既考慮了作業等待的時間,又考慮了作業執行時間的排程演算法,因此既照顧了短作業,又不致使長作業的等待時間過長,從而改善了處理機的排程能...