#include
#include
using namespace std;
const int process_number = 5;//程序數量
const int timeslice = 100;//時間片長度
const int min = -999;//最小優先順序
//程序狀態
enum process_state
;//程序控制塊
struct pcb
;//輸入pcb的資訊
pcb* get_process()
else
i++;
}return head;
}//判斷程序是否已執行完畢
int is_process_finish(pcb* p)
}//輸出優先順序排程時程序的狀態
void output_priority(pcb* p)
cout << endl;
p = p->next;}}
//執行程序
void cpu_execute(pcb* p)
}//判斷優先順序及狀態
if (selected < p->priority && p->state != finish)
p = p->next;
}//計算剩餘時間
if ((q->total_time - q->cpu_time) != 0)
}//優先順序排程
void priority_scheduling()
cout << "process finished, program exit." << endl;
system("pause");
exit(0);
}//設定cpu輪轉
void cpu_round(pcb* p)
p->count++;
p->round++;
p->state = execute;
}//獲取輪轉時下乙個pcb
pcb* get_next_process(pcb* p, pcb* head)
while (q && q->state == finish);
//若傳入的為空指標則取頭指標
if (q == null)
}return q;
}//更改pcb狀態
void change_state(pcb* p)
if (p->state == execute)
p = p->next;}}
//顯示時間片輪轉時的pcb
void output_round(pcb* p)
cout << endl;
p = p->next;}}
//時間片輪轉排程
void round_robin()
cout << "process finished, program exit." << endl;
system("pause");
exit(0);
}//選單
void menu()
int main()
return 0;
}
實驗三 程序排程模擬程式
實驗三 程序排程模擬程式 專業 商軟2班 姓名 郭明茵 學號 201406114204 一 實驗目的 用高階語言完成乙個程序排程程式,以加深對程序的概念及程序排程演算法的理解。二 實驗內容和要求 1.2.1例題 設計乙個有 n個程序併發執行的程序排程模擬程式。程序排程演算法 採用最高優先順序優先的排...
實驗三 程序排程模擬程式
實驗三程序排程模擬程式 1.1.實驗目的 用高階語言完成乙個程序排程程式,以加深對程序的概念及程序排程演算法的理解。1.2.實驗要求 1.2.1例題 設計乙個有 n個程序併發執行的程序排程模擬程式。程序排程演算法 採用最高優先順序優先的排程演算法 即把處理機分配給優先順序最高的程序 和先來先服務 若...
實驗三程序排程模擬程式
實驗目的 用高階語言完成乙個程序排程程式,以加深對程序的概念及程序排程演算法的理解。實驗要求 設計乙個有 n n不小於5 個程序併發執行的程序排程模擬程式。程序排程演算法 時間片輪轉法 排程演算法對n個程序進行排程。完成兩個演算法 簡單時間片輪轉法 多級反饋佇列排程演算法 的設計 編碼和除錯工作,完...