#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個程序進行排程。完成兩個演算法 簡單時間片輪轉法 多級反饋佇列排程演算法 的設計 編碼和除錯工作,完...
實驗三 程序排程模擬程式
1.1.實驗目的 用高階語言完成乙個程序排程程式,以加深對程序的概念及程序排程演算法的理解。1.2.實驗要求 1.2.1例題 設計乙個有 n個程序併發執行的程序排程模擬程式。程序排程演算法 採用最高優先順序優先的排程演算法 即把處理機分配給優先順序最高的程序 和先來先服務 若優先順序相同 演算法。1...
實驗三 程序排程模擬程式
1.1.實驗目的 用高階語言完成乙個程序排程程式,以加深對程序的概念及程序排程演算法的理解。1.2.實驗要求 1.2.1例題 設計乙個有 n個程序併發執行的程序排程模擬程式。程序排程演算法 採用最高優先順序優先的排程演算法 即把處理機分配給優先順序最高的程序 和先來先服務 若優先順序相同 演算法。1...